From 1e002d5bd7db540b9cad98f3502c85839d16a9e9 Mon Sep 17 00:00:00 2001 From: RKWojs Date: Thu, 5 Jun 2025 11:32:35 +0200 Subject: [PATCH] Add request interception for getgeoidx API calls - Introduced a new script (inject.js) to override the fetch and XMLHttpRequest methods to capture requests to the "getgeoidx" endpoint. - Captured request body and URL, and sent the data to the extension via postMessage. - Added intercept.js to inject the new script into the page and listen for messages to forward captured data to the extension. --- js/background.js | 335 ++++++++++++++++++++--------------------------- js/core.js | Bin 1024 -> 0 bytes js/inject.js | 38 ++++++ js/intercept.js | 11 ++ 4 files changed, 193 insertions(+), 191 deletions(-) create mode 100644 js/inject.js create mode 100644 js/intercept.js diff --git a/js/background.js b/js/background.js index 6ecc1d8..b013a52 100644 --- a/js/background.js +++ b/js/background.js @@ -3,227 +3,180 @@ let headers = []; let stacja; let requestResult; let decodedData; -chrome.webRequest.onSendHeaders.addListener( - (res) => { - if (res.method == "POST") { - if (res.url.endsWith("getgeoidx") == true) { - console.log("new header") - //prevRequests.push(res); - headers.push(res.requestHeaders); - if (headers.length > 1) { - headers.shift(); - } - } - } - }, - { urls: ["*://*.tauron-dystrybucja.pl/*"] }, - ["requestHeaders"] -); - -chrome.webRequest.onBeforeRequest.addListener( - (res) => { - if (res.method == "POST") { - if (res.url.endsWith("getgeoidx") == true) { - console.log("new decoded data") - prevRequests.push(res); - let results = res.requestBody.raw[0].bytes; - var decoder = new TextDecoder("utf-8"); - decodedData = decoder.decode(new Uint8Array(results)); - port1.postMessage({ - command: "STARTED", - data: decodedData, - }); - - if (prevRequests.length > 1) { - prevRequests.shift(); - } - } - } else if (res.method == "GET") { - if ( - res.url.startsWith( - "https://pdse.tauron-dystrybucja.pl/backend/api/objdata/STACJE_SN_NN" - ) == true - ) { - stacja = res; - port1.postMessage({ command: "gotStacja" }); - } - } - }, - { urls: ["*://*.tauron-dystrybucja.pl/*"] }, - ["requestBody"] -); - let port1; -function connected(port) { - port1 = port; - port1.postMessage({ greeting: "hi there content script!" }); - port1.onMessage.addListener(function (m) { - if (m.response == "fetchStacja") { - console.log("fetching stacja"); - sendStacja(); - } - if (m.response == "getLines") { - getLines(); - } - if (m.response == "getChelmiec") { - getChelmiec(m.XMIN, m.YMIN, m.XMAX, m.YMAX); - } - if (m.response == "getLososina") { - getLososina(m.XMIN, m.YMIN, m.XMAX, m.YMAX); - } - if (m.response == "getNawojowa") { - getNawojowa(m.X, m.Y); - } - }); -} -chrome.runtime.onConnect.addListener(connected); +chrome.runtime.onMessage.addListener((msg, sender) => { + if (msg.command === "CAPTURED") { + decodedData = msg.data; + if (port1) { + port1.postMessage({ command: "STARTED", data: decodedData }); + } + } +}); + +chrome.runtime.onConnect.addListener((port) => { + port1 = port; + port1.postMessage({ greeting: "hi there content script!" }); + port1.onMessage.addListener((m) => { + if (m.response === "fetchStacja") { + console.log("fetching stacja"); + sendStacja(); + } + if (m.response === "getLines") { + getLines(); + } + if (m.response === "getChelmiec") { + getChelmiec(m.XMIN, m.YMIN, m.XMAX, m.YMAX); + } + if (m.response === "getLososina") { + getLososina(m.XMIN, m.YMIN, m.XMAX, m.YMAX); + } + if (m.response === "getNawojowa") { + getNawojowa(m.X, m.Y); + } + }); +}); function getLines() { - const URL = "https://pdse.tauron-dystrybucja.pl/backend/api/getgeoidx"; - fetch(URL, { - headers: { - "Content-Type": "application/json", - accept: "application/json, text/plain, */*", - tokenauthorization: headers[0][1].value, - userobjcfg: "default", - }, + const URL = "https://pdse.tauron-dystrybucja.pl/backend/api/getgeoidx"; + fetch(URL, { + headers: { + "Content-Type": "application/json", + accept: "application/json, text/plain, */*", + tokenauthorization: "", + userobjcfg: "default", + }, - referrerPolicy: "strict-origin-when-cross-origin", - body: decodedData, - contentType: "application/json", - method: "POST", - mode: "cors", - credentials: "include", - }) - .then((response) => response.json()) - .then((data) => { - port1.postMessage({ command: "linesResult", result: data }); - }); + referrerPolicy: "strict-origin-when-cross-origin", + body: decodedData, + contentType: "application/json", + method: "POST", + mode: "cors", + credentials: "include", + }) + .then((response) => response.json()) + .then((data) => { + port1.postMessage({ command: "linesResult", result: data }); + }); } sendStacja = function () { - fetch(stacja.url, { - headers: { - "Content-Type": "application/json", - accept: "application/json, text/plain, */*", - tokenauthorization: headers[0][1].value, - userobjcfg: "default", - }, + fetch(stacja.url, { + headers: { + "Content-Type": "application/json", + accept: "application/json, text/plain, */*", + tokenauthorization: headers[0][1].value, + userobjcfg: "default", + }, - referrerPolicy: "strict-origin-when-cross-origin", - body: null, - contentType: "application/json", - method: "GET", - mode: "cors", - credentials: "include", - }) - .then((response) => response.json()) - .then((data) => { - requestResult = data; - port1.postMessage({ command: "stacjaResult", result: data }); - }); + referrerPolicy: "strict-origin-when-cross-origin", + body: null, + contentType: "application/json", + method: "GET", + mode: "cors", + credentials: "include", + }) + .then((response) => response.json()) + .then((data) => { + requestResult = data; + port1.postMessage({ command: "stacjaResult", result: data }); + }); }; sendReq = function (word) { - console.log("Sent"); - console.log(prevRequests); - console.log(headers[0][1].value); - console.log("Sent!"); - fetch("https://pdse.tauron-dystrybucja.pl/backend/api/getgeoidx", { - headers: { - "Content-Type": "application/json", - accept: "application/json, */*", - tokenauthorization: headers[0][1].value, - userobjcfg: "default", - }, + console.log("Sent"); + console.log(prevRequests); + console.log(headers[0][1].value); + console.log("Sent!"); + fetch("https://pdse.tauron-dystrybucja.pl/backend/api/getgeoidx", { + headers: { + "Content-Type": "application/json", + accept: "application/json, */*", + tokenauthorization: headers[0][1].value, + userobjcfg: "default", + }, - referrerPolicy: "strict-origin-when-cross-origin", - body: '{"RB_FSC":"137,161,162,167,2,219,230,24,25,250,266,313,314,34,38,45,51,812,818,90,9950,9970,9980,9990,9991,9992,9993,9994,9999,3","X_MAX":"6705127.402055972","Y_MAX":"5491701.2425827375","X_MIN":"6703447.475837239","Y_MIN":"5490882.779127167","LEVEL":-1}', - contentType: "application/json", - method: "POST", - mode: "cors", - credentials: "include", - }) - .then((response) => response.json()) - .then((data) => console.log(data)); + referrerPolicy: "strict-origin-when-cross-origin", + body: '{"RB_FSC":"137,161,162,167,2,219,230,24,25,250,266,313,314,34,38,45,51,812,818,90,9950,9970,9980,9990,9991,9992,9993,9994,9999,3","X_MAX":"6705127.402055972","Y_MAX":"5491701.2425827375","X_MIN":"6703447.475837239","Y_MIN":"5490882.779127167","LEVEL":-1}', + contentType: "application/json", + method: "POST", + mode: "cors", + credentials: "include", + }) + .then((response) => response.json()) + .then((data) => console.log(data)); }; -chrome.contextMenus.create({ - title: "Więcej o stacji", - contexts: ["all"], // ContextType - onclick: sendStacja, // A callback function -}); function getChelmiec(XMIN, YMIN, XMAX, YMAX) { - let X = XMIN + Math.abs((XMAX - XMIN) / 2); - let Y = YMIN + Math.abs((YMAX - YMIN) / 2); + let X = XMIN + Math.abs((XMAX - XMIN) / 2); + let Y = YMIN + Math.abs((YMAX - YMIN) / 2); - let link = makeid(6); - console.log(link); + let link = makeid(6); + console.log(link); - fetch("https://sip.chelmiec.pl/rest/v1/links/", { - headers: { - accept: "*/*", - "accept-language": "pl-PL,pl;q=0.9", - "content-type": "application/x-www-form-urlencoded", - }, - referrer: "https://sip.chelmiec.pl/?link=" + link, - body: `name=${link}&config=99998poi100false99999info100true730ulice100true390ot_kuos_a100false400ot_ptut_a100false420ot_ptkm_a100false410ot_kuko_a100false440ot_busp_a100false430ot_bucm_a100false445ot_ptrk_a100false450ot_ptpl_a100false460ot_ptnz_a100false470ot_kumn_a100false480ot_swrs_l100false500ot_skdr_l100false510ot_skrp_l100false520ot_suln_l100false530ot_oipr_p100false540ot_oikm_p100false685gmina_zmiany_mpzp100true680gmina_aglomeracja100false30grupa_ortofotomapa100true0osm100false700ipmap_ewidencja_budynki_t100false50obreby_ewidencyjne100true40warstwa_studium_uwarunkowania_dociete100true320ot_ptlz_a100false330ot_ptzb_a100false340ot_pttr_a100false350ot_ptwp_a100false360ot_kupg_a100false370ot_kusc_a100false380ot_kusk_a100false490ot_swrm_l100false47grupa_mpzp100true45warstwa_studium_kierunk_dociete100true690ipmap_ewidencja_dzialki_egib100true240gdos_uzytkiekologiczne100false710punkt_adresowy100true100cbdgmapa_tereny_gornicze100false170gdos_rezerwaty100false180gdos_zespolyprzyrodniczokrajobrazowe100false190gdos_parkikrajobrazowe100false60mapa_plk_zaklady100false200gdos_obszarychronionegokrajobrazu100false70mapa_plk_stacje_przystanki100false80mapa_plk_linie_kolejowe100false210gdos_specjalneobszaryochrony100false90cbdgmapa_obszary_gornicze100false220gdos_obszaryspecjalnejochrony100false250gdos_pomnikiprzyrody100false120cbdgmapa_granice_zloz100false130cbdgmapa_osuwiska100false140cbdgmapa_ruchy_masowe100false150cbdgmapa_granice_osuwisk100false160cbdgmapa_osuwiska_centroidy100false260sozo_geoportal100false230gdos_stanowiskadokumentacyjne100false290mt_geoportal100false300pr_miip100false${X}${Y}7`, - method: "POST", - referrerPolicy: "same-origin", - }) - .then((response) => response.text()) - .then((str) => { - console.log("https://sip.chelmiec.pl/?link=" + link); - port1.postMessage({ command: "gminaResult", result: "https://sip.chelmiec.pl/?link=" + link }); - }); + fetch("https://sip.chelmiec.pl/rest/v1/links/", { + headers: { + accept: "*/*", + "accept-language": "pl-PL,pl;q=0.9", + "content-type": "application/x-www-form-urlencoded", + }, + referrer: "https://sip.chelmiec.pl/?link=" + link, + body: `name=${link}&config=99998poi100false99999info100true730ulice100true390ot_kuos_a100false400ot_ptut_a100false420ot_ptkm_a100false410ot_kuko_a100false440ot_busp_a100false430ot_bucm_a100false445ot_ptrk_a100false450ot_ptpl_a100false460ot_ptnz_a100false470ot_kumn_a100false480ot_swrs_l100false500ot_skdr_l100false510ot_skrp_l100false520ot_suln_l100false530ot_oipr_p100false540ot_oikm_p100false685gmina_zmiany_mpzp100true680gmina_aglomeracja100false30grupa_ortofotomapa100true0osm100false700ipmap_ewidencja_budynki_t100false50obreby_ewidencyjne100true40warstwa_studium_uwarunkowania_dociete100true320ot_ptlz_a100false330ot_ptzb_a100false340ot_pttr_a100false350ot_ptwp_a100false360ot_kupg_a100false370ot_kusc_a100false380ot_kusk_a100false490ot_swrm_l100false47grupa_mpzp100true45warstwa_studium_kierunk_dociete100true690ipmap_ewidencja_dzialki_egib100true240gdos_uzytkiekologiczne100false710punkt_adresowy100true100cbdgmapa_tereny_gornicze100false170gdos_rezerwaty100false180gdos_zespolyprzyrodniczokrajobrazowe100false190gdos_parkikrajobrazowe100false60mapa_plk_zaklady100false200gdos_obszarychronionegokrajobrazu100false70mapa_plk_stacje_przystanki100false80mapa_plk_linie_kolejowe100false210gdos_specjalneobszaryochrony100false90cbdgmapa_obszary_gornicze100false220gdos_obszaryspecjalnejochrony100false250gdos_pomnikiprzyrody100false120cbdgmapa_granice_zloz100false130cbdgmapa_osuwiska100false140cbdgmapa_ruchy_masowe100false150cbdgmapa_granice_osuwisk100false160cbdgmapa_osuwiska_centroidy100false260sozo_geoportal100false230gdos_stanowiskadokumentacyjne100false290mt_geoportal100false300pr_miip100false${X}${Y}7`, + method: "POST", + referrerPolicy: "same-origin", + }) + .then((response) => response.text()) + .then((str) => { + console.log("https://sip.chelmiec.pl/?link=" + link); + port1.postMessage({ command: "gminaResult", result: "https://sip.chelmiec.pl/?link=" + link }); + }); } function getLososina(XMIN, YMIN, XMAX, YMAX) { - let X = Number(XMIN) + Math.abs((XMAX - XMIN) / 2); - let Y = Number(YMIN) + Math.abs((YMAX - YMIN) / 2); + let X = Number(XMIN) + Math.abs((XMAX - XMIN) / 2); + let Y = Number(YMIN) + Math.abs((YMAX - YMIN) / 2); - let link = makeid(6); - console.log(link, X); + let link = makeid(6); + console.log(link, X); - fetch("http://195.116.43.211/app/modules/permanentLink/serwer/serwer_links.php", { - headers: { - accept: "*/*", - "accept-language": "pl-PL,pl;q=0.9", - "content-type": "application/x-www-form-urlencoded; charset=UTF-8", - "x-requested-with": "XMLHttpRequest" - }, - referrer: "http://195.116.43.211/", - body: `link=${link}&xml=%3Clink%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Eortofotomapa_2015%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Etrue%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Eortofotomapa%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Eock_gdos%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Epp_gdos%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Esozo_geoportal%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Enmt_cien_geoportal%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Emt_geoportal%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Epr_miip%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Estudium%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Eipplan_zasieg_planow%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Egmina_mrp_uzytkowanie_02%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Egmina_mrp_uzytkowanie_1%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Egmina_mrp_uzytkowanie_10%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Egmina_mrp_uzytkowanie_straty_10%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Egmina_mrp_uzytkowanie_straty_1%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Egmina_mrp_uzytkowanie_straty_02%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Egmina_mzp_glebokosc_10%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Egmina_mzp_glebokosc_1%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Egmina_mzp_glebokosc_02%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Egmina_mzp_kilometraz%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Egmina_mzp_obszar_zagrozenia_pow_rzeki_02%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Egmina_sopo_gis_osuwiska_pow%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Egmina_sopo_gis_osuwiska_lin%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Egmina_sopo_gis_zrodla%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Egmina_sopo_formy_szczeliny%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Egmina_sopo_gis_zglebienia%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Egmina_sopo_gis_rumosze%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Egmina_sopo_formy_nisze%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Egmina_sopo_gis_obszary_zagrozone%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Egmina_sopo_formy_rowy%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Egmina_sopo_gis_formy_czola%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Egmina_sopo_formy_progi%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Egmina_sopo_formy_progi_akum%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Egmina_mzp_obszar_zagrozenia_pow_rzeki_1%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Egmina_mzp_obszar_zagrozenia_pow_rzeki_10%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Eot_ptlz_a%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Eot_ptzb_a%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Eot_pttr_a%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Eot_ptwp_a%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Eot_oimk_a%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Eot_tcrz_a%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Eot_tcon_a%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Eot_kupg_a%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Eot_kusc_a%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Eot_kusk_a%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Eot_kuos_a%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Eot_ptut_a%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Eot_ptkm_a%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Eot_kuko_a%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Eot_bucm_a%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Eot_busp_a%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Eot_ptrk_a%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Eot_ptpl_a%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Eot_ptnz_a%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Eot_ptgn_a%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Eot_kumn_a%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Eot_oior_l%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Eot_busp_l%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Eot_swrs_l%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Eot_skdr_l%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Eot_skrp_l%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Eot_suln_l%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Eot_oipr_p%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Eot_oikm_p%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Egrupa_plan%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Egrupa_mpzp_dociete_2011030401%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Egrupa_mpzp_dociete_2012060101%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Egrupa_mpzp_dociete_2012060102%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Egrupa_mpzp_dociete_2012072501%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Egrupa_mpzp_dociete_2014021701%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Empzp_dociete_2014021702%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Egrupa_mpzp_dociete_2015071001%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Empzp_dociete_2015122901%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Egrupa_2016100701%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Ewarstwa_mpzp_2017070701_dociete%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Egrupa_2017092201%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Egrupa_2018032301%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Ewarstwa_mpzp_201807060101_dociete%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Egrupa_2020020702%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Egrupa_2020093001%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Egrupa_2020093002%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Egrupa_obreby%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Etrue%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Eipmap_ewidencja_dzialki_egib%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Eipmap_ewidencja_dzialki_lpis%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Eulice%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Ebudynki%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Etrue%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Epunkt_adresowy%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3Eundefined%3C%2Fposition%3E%3Cid%3Ewarstwa_info%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Etrue%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3Eundefined%3C%2Fposition%3E%3Cid%3Ewarstwa_poi%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Etrue%3C%2Fvisibility%3E%3C%2Flayer%3E%3Ctree%3E%3Cnode%3E%3Cid%3Ewarstwy_bazowe%3C%2Fid%3E%3Cchecked%3Etrue%3C%2Fchecked%3E%3C%2Fnode%3E%3Cnode%3E%3Cid%3Edzialki_budynki%3C%2Fid%3E%3Cchecked%3Etrue%3C%2Fchecked%3E%3C%2Fnode%3E%3Cnode%3E%3Cid%3Eemuia%3C%2Fid%3E%3Cchecked%3Efalse%3C%2Fchecked%3E%3C%2Fnode%3E%3Cnode%3E%3Cid%3Ezagospodarowanie_przestrzenne%3C%2Fid%3E%3Cchecked%3Efalse%3C%2Fchecked%3E%3C%2Fnode%3E%3Cnode%3E%3Cid%3Ewarstwy_mapy_ryz_pow%3C%2Fid%3E%3Cchecked%3Efalse%3C%2Fchecked%3E%3C%2Fnode%3E%3Cnode%3E%3Cid%3Ewarstwy_zagr_pow%3C%2Fid%3E%3Cchecked%3Efalse%3C%2Fchecked%3E%3C%2Fnode%3E%3Cnode%3E%3Cid%3Ewarstwy_tbd%3C%2Fid%3E%3Cchecked%3Efalse%3C%2Fchecked%3E%3C%2Fnode%3E%3Cnode%3E%3Cid%3Ewarstwy_tbd%3C%2Fid%3E%3Cchecked%3Efalse%3C%2Fchecked%3E%3C%2Fnode%3E%3Cnode%3E%3Cid%3Emiip%3C%2Fid%3E%3Cchecked%3Efalse%3C%2Fchecked%3E%3C%2Fnode%3E%3Cnode%3E%3Cid%3Egdos%3C%2Fid%3E%3Cchecked%3Efalse%3C%2Fchecked%3E%3C%2Fnode%3E%3Cnode%3E%3Cid%3Egeoportal%3C%2Fid%3E%3Cchecked%3Efalse%3C%2Fchecked%3E%3C%2Fnode%3E%3Cnode%3E%3Cid%3Epoi_kategoria_%3C%2Fid%3E%3Cchecked%3Efalse%3C%2Fchecked%3E%3C%2Fnode%3E%3C%2Ftree%3E%3Cx_pos%3E${X}%3C%2Fx_pos%3E%3Cy_pos%3E${Y}%3C%2Fy_pos%3E%3Czoom%3E4%3C%2Fzoom%3E%3C%2Flink%3E`, - method: "POST", - referrerPolicy: "same-origin", - "credentials": "omit" - }) - .then((response) => response.text()) - .then((str) => { - console.log("http://195.116.43.211/?link=" + link); - port1.postMessage({ command: "gminaResult", result: "http://195.116.43.211/?link=" + link }); - }); + fetch("http://195.116.43.211/app/modules/permanentLink/serwer/serwer_links.php", { + headers: { + accept: "*/*", + "accept-language": "pl-PL,pl;q=0.9", + "content-type": "application/x-www-form-urlencoded; charset=UTF-8", + "x-requested-with": "XMLHttpRequest" + }, + referrer: "http://195.116.43.211/", + body: `link=${link}&xml=%3Clink%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Eortofotomapa_2015%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Etrue%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Eortofotomapa%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Eock_gdos%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Epp_gdos%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Esozo_geoportal%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Enmt_cien_geoportal%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Emt_geoportal%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Epr_miip%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Estudium%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Eipplan_zasieg_planow%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Egmina_mrp_uzytkowanie_02%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Egmina_mrp_uzytkowanie_1%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Egmina_mrp_uzytkowanie_10%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Egmina_mrp_uzytkowanie_straty_10%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Egmina_mrp_uzytkowanie_straty_1%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Egmina_mrp_uzytkowanie_straty_02%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Egmina_mzp_glebokosc_10%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Egmina_mzp_glebokosc_1%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Egmina_mzp_glebokosc_02%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Egmina_mzp_kilometraz%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Egmina_mzp_obszar_zagrozenia_pow_rzeki_02%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Egmina_sopo_gis_osuwiska_pow%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Egmina_sopo_gis_osuwiska_lin%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Egmina_sopo_gis_zrodla%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Egmina_sopo_formy_szczeliny%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Egmina_sopo_gis_zglebienia%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Egmina_sopo_gis_rumosze%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Egmina_sopo_formy_nisze%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Egmina_sopo_gis_obszary_zagrozone%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Egmina_sopo_formy_rowy%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Egmina_sopo_gis_formy_czola%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Egmina_sopo_formy_progi%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Egmina_sopo_formy_progi_akum%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Egmina_mzp_obszar_zagrozenia_pow_rzeki_1%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Egmina_mzp_obszar_zagrozenia_pow_rzeki_10%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Eot_ptlz_a%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Eot_ptzb_a%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Eot_pttr_a%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Eot_ptwp_a%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Eot_oimk_a%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Eot_tcrz_a%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Eot_tcon_a%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Eot_kupg_a%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Eot_kusc_a%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Eot_kusk_a%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Eot_kuos_a%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Eot_ptut_a%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Eot_ptkm_a%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Eot_kuko_a%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Eot_bucm_a%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Eot_busp_a%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Eot_ptrk_a%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Eot_ptpl_a%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Eot_ptnz_a%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Eot_ptgn_a%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Eot_kumn_a%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Eot_oior_l%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Eot_busp_l%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Eot_swrs_l%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Eot_skdr_l%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Eot_skrp_l%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Eot_suln_l%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Eot_oipr_p%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Eot_oikm_p%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Egrupa_plan%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Egrupa_mpzp_dociete_2011030401%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Egrupa_mpzp_dociete_2012060101%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Egrupa_mpzp_dociete_2012060102%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Egrupa_mpzp_dociete_2012072501%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Egrupa_mpzp_dociete_2014021701%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Empzp_dociete_2014021702%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Egrupa_mpzp_dociete_2015071001%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Empzp_dociete_2015122901%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Egrupa_2016100701%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Ewarstwa_mpzp_2017070701_dociete%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Egrupa_2017092201%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Egrupa_2018032301%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Ewarstwa_mpzp_201807060101_dociete%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Egrupa_2020020702%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Egrupa_2020093001%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Egrupa_2020093002%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Egrupa_obreby%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Etrue%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Eipmap_ewidencja_dzialki_egib%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Eipmap_ewidencja_dzialki_lpis%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Eulice%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Ebudynki%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Etrue%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3E0%3C%2Fposition%3E%3Cid%3Epunkt_adresowy%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Efalse%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3Eundefined%3C%2Fposition%3E%3Cid%3Ewarstwa_info%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Etrue%3C%2Fvisibility%3E%3C%2Flayer%3E%3Clayer%3E%3Cposition%3Eundefined%3C%2Fposition%3E%3Cid%3Ewarstwa_poi%3C%2Fid%3E%3Copacity%3E100%3C%2Fopacity%3E%3Cvisibility%3Etrue%3C%2Fvisibility%3E%3C%2Flayer%3E%3Ctree%3E%3Cnode%3E%3Cid%3Ewarstwy_bazowe%3C%2Fid%3E%3Cchecked%3Etrue%3C%2Fchecked%3E%3C%2Fnode%3E%3Cnode%3E%3Cid%3Edzialki_budynki%3C%2Fid%3E%3Cchecked%3Etrue%3C%2Fchecked%3E%3C%2Fnode%3E%3Cnode%3E%3Cid%3Eemuia%3C%2Fid%3E%3Cchecked%3Efalse%3C%2Fchecked%3E%3C%2Fnode%3E%3Cnode%3E%3Cid%3Ezagospodarowanie_przestrzenne%3C%2Fid%3E%3Cchecked%3Efalse%3C%2Fchecked%3E%3C%2Fnode%3E%3Cnode%3E%3Cid%3Ewarstwy_mapy_ryz_pow%3C%2Fid%3E%3Cchecked%3Efalse%3C%2Fchecked%3E%3C%2Fnode%3E%3Cnode%3E%3Cid%3Ewarstwy_zagr_pow%3C%2Fid%3E%3Cchecked%3Efalse%3C%2Fchecked%3E%3C%2Fnode%3E%3Cnode%3E%3Cid%3Ewarstwy_tbd%3C%2Fid%3E%3Cchecked%3Efalse%3C%2Fchecked%3E%3C%2Fnode%3E%3Cnode%3E%3Cid%3Ewarstwy_tbd%3C%2Fid%3E%3Cchecked%3Efalse%3C%2Fchecked%3E%3C%2Fnode%3E%3Cnode%3E%3Cid%3Emiip%3C%2Fid%3E%3Cchecked%3Efalse%3C%2Fchecked%3E%3C%2Fnode%3E%3Cnode%3E%3Cid%3Egdos%3C%2Fid%3E%3Cchecked%3Efalse%3C%2Fchecked%3E%3C%2Fnode%3E%3Cnode%3E%3Cid%3Egeoportal%3C%2Fid%3E%3Cchecked%3Efalse%3C%2Fchecked%3E%3C%2Fnode%3E%3Cnode%3E%3Cid%3Epoi_kategoria_%3C%2Fid%3E%3Cchecked%3Efalse%3C%2Fchecked%3E%3C%2Fnode%3E%3C%2Ftree%3E%3Cx_pos%3E${X}%3C%2Fx_pos%3E%3Cy_pos%3E${Y}%3C%2Fy_pos%3E%3Czoom%3E4%3C%2Fzoom%3E%3C%2Flink%3E`, + method: "POST", + referrerPolicy: "same-origin", + "credentials": "omit" +}) + .then((response) => response.text()) + .then((str) => { + console.log("http://195.116.43.211/?link=" + link); + port1.postMessage({ command: "gminaResult", result: "http://195.116.43.211/?link=" + link }); + }); } function getNawojowa(X, Y) { - let link = `https://sip.gison.pl/nawojowa?zoom=18.45&lat=${X}&lng=${Y}`; - console.log(link); - port1.postMessage({ command: "gminaResult", result: link }) + let link = `https://sip.gison.pl/nawojowa?zoom=18.45&lat=${X}&lng=${Y}`; + console.log(link); + port1.postMessage({ command: "gminaResult", result: link }) } function makeid(length) { - let result = ""; - const characters = - "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; - const charactersLength = characters.length; - let counter = 0; - while (counter < length) { - result += characters.charAt(Math.floor(Math.random() * charactersLength)); - counter += 1; - } - return result; + let result = ""; + const characters = + "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; + const charactersLength = characters.length; + let counter = 0; + while (counter < length) { + result += characters.charAt(Math.floor(Math.random() * charactersLength)); + counter += 1; + } + return result; } diff --git a/js/core.js b/js/core.js index 06d7405020018ddf3cacee90fd4af10487da3d20..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 GIT binary patch literal 0 HcmV?d00001 literal 1024 ScmZQz7zLvtFd70QH3R?z00031 diff --git a/js/inject.js b/js/inject.js new file mode 100644 index 0000000..22bb23e --- /dev/null +++ b/js/inject.js @@ -0,0 +1,38 @@ +(function() { + const origFetch = window.fetch; + window.fetch = async function(input, init = {}) { + const url = typeof input === "string" ? input : input.url; + if (url.endsWith("getgeoidx")) { + let body = init.body || null; + if (body instanceof ArrayBuffer) { + body = new TextDecoder().decode(new Uint8Array(body)); + } else if (body instanceof Blob) { + body = await new Response(body).text(); + } else if (body != null && typeof body !== "string") { + try { body = JSON.stringify(body); } catch(e) { body = String(body); } + } + window.postMessage({ type: "ZMS_CAPTURE", url, body }, "*"); + } + return origFetch.apply(this, arguments); + }; + + // patch XMLHttpRequest to catch getgeoidx + const origOpen = XMLHttpRequest.prototype.open; + const origSend = XMLHttpRequest.prototype.send; + XMLHttpRequest.prototype.open = function(method, url, ...rest) { + this._zms_url = url; + return origOpen.call(this, method, url, ...rest); + }; + XMLHttpRequest.prototype.send = function(body) { + if (this._zms_url && this._zms_url.endsWith("getgeoidx")) { + let captured = body; + if (body instanceof ArrayBuffer) { + captured = new TextDecoder().decode(new Uint8Array(body)); + } else if (body != null && typeof body !== "string") { + try { captured = JSON.stringify(body); } catch(e) { captured = String(body); } + } + window.postMessage({ type: "ZMS_CAPTURE", url: this._zms_url, body: captured }, "*"); + } + return origSend.call(this, body); + }; +})(); diff --git a/js/intercept.js b/js/intercept.js new file mode 100644 index 0000000..6c1ffd5 --- /dev/null +++ b/js/intercept.js @@ -0,0 +1,11 @@ +// inject into page +const s = document.createElement("script"); +s.src = chrome.runtime.getURL("js/inject.js"); +(document.head||document.documentElement).appendChild(s); + +// listen for page→extension +window.addEventListener("message", e => { + if (e.source === window && e.data?.type === "ZMS_CAPTURE") { + chrome.runtime.sendMessage({ command: "CAPTURED", data: e.data.body }); + } +});