{
  "version": 3,
  "sources": ["/cdn/shop/t/107/assets/panel-led-v4.af04-dynamic-fallback-distance.js?fs1rr41=20261008r1"],
  "sourcesContent": ["/* ============================================================================\r\n * PANEL LED V4 \u2014 R32 AF04\r\n * DYNAMIC DATA-DRIVEN SCHEMATIC FALLBACK DISTANCE\r\n * Version: PANEL-V4-R36-H-R8-06A-PRIMARY-DATA-DRIVEN-GEOMETRY-TRUTH-V1\r\n *\r\n * NEW ASSET \u2014 DO NOT REPLACE panel-led-v4.ui.js\r\n *\r\n * DATA SOURCES\r\n * 1) 64 exact templates:\r\n *    window.GDX_PANEL_V4_R32_SETUP_TRUTH_LIBRARY.entriesByTemplate\r\n * 2) 8 legacy/deferred templates:\r\n *    window.GDX_PANEL_LED_V4_P33_CANONICAL_SCHEMATIC_ENGINE\r\n *    + active product facts\r\n *\r\n * GUARANTEES\r\n * - Every visible light has a data-derived angle and distance.\r\n * - Camera has a data-derived distance.\r\n * - Exact truth rows also show band and height.\r\n * - Node positions encode the same distance data.\r\n * - Desktop and mobile use the same canonical 0\u2013100 coordinates.\r\n * - CDN visibility/load/error architecture is untouched.\r\n * - Ranking, scoring, products, commerce, NORA, compare, share are untouched.\r\n * ========================================================================== */\r\n(function (window, document) {\r\n  \"use strict\";\r\n\r\n  var VERSION = \"PANEL-V4-R36-H-R8-06A-PRIMARY-DATA-DRIVEN-GEOMETRY-TRUTH-V1\";\r\n  window.CANFOTO_FS1R_R41_CURRENT_CR02_DECOUPLED = true;\r\n  var READY_KEY = \"GDX_PANEL_V4_AF04_DYNAMIC_FALLBACK_DISTANCE_READY\";\r\n  var STYLE_ID = \"gdx-panel-v4-af04-dynamic-fallback-distance-style\";\r\n  var HOST_SELECTOR = '[data-gdx-panel-r30a-setup-visual=\"1\"]';\r\n  var CARD_SELECTOR = '[data-gdx-panel-r30a-schematic-card=\"1\"]';\r\n  var CANVAS_ATTR = \"data-gdx-panel-af04-distance-canvas\";\r\n  var METRICS_ATTR = \"data-gdx-panel-af04-distance-metrics\";\r\n  var ENHANCED_ATTR = \"data-gdx-panel-af04-dynamic-distance\";\r\n  var SOURCE_ATTR = \"data-gdx-panel-af04-distance-source\";\r\n  var CR02_SLOT_SELECTOR = '[data-gdx-r33-cr02-compact-schema-slot=\"1\"]';\r\n  var CR02_RENDERED_ATTR = \"data-gdx-r33-cr02-compact-schema-rendered\";\r\n  var CR02_SIGNATURE_ATTR = \"data-gdx-r33-cr02-compact-schema-signature\";\r\n  var CR02_SOURCE_ATTR = \"data-gdx-r33-cr02-compact-schema-source\";\r\n\r\n  if (window[READY_KEY]) return;\r\n  window[READY_KEY] = true;\r\n\r\n  var state = {\r\n    observer: null,\r\n    scheduled: false,\r\n    scanCount: 0,\r\n    enhanceCount: 0,\r\n    exactCount: 0,\r\n    derivedCount: 0,\r\n    compactRenderCount: 0,\r\n    compactExactCount: 0,\r\n    compactDerivedCount: 0,\r\n    skippedCount: 0,\r\n    lastScanAt: \"\",\r\n    lastErrors: []\r\n  };\r\n\r\n  function clean(value) {\r\n    return String(value == null ? \"\" : value)\r\n      .replace(/\\u00a0/g, \" \")\r\n      .replace(/\\u202f/g, \" \")\r\n      .replace(/\\s+/g, \" \")\r\n      .trim();\r\n  }\r\n\r\n  function esc(value) {\r\n    return clean(value).replace(/[&<>\"']/g, function (char) {\r\n      return ({\r\n        \"&\": \"&amp;\",\r\n        \"<\": \"&lt;\",\r\n        \">\": \"&gt;\",\r\n        '\"': \"&quot;\",\r\n        \"'\": \"&#39;\"\r\n      })[char];\r\n    });\r\n  }\r\n\r\n  function clamp(value, min, max) {\r\n    return Math.max(min, Math.min(max, Number(value || 0)));\r\n  }\r\n\r\n  function finite(value) {\r\n    return Number.isFinite(Number(value));\r\n  }\r\n\r\n  function fmtNumber(value, maxDigits) {\r\n    var number = Number(value);\r\n    if (!Number.isFinite(number)) return \"\";\r\n\r\n    return number.toLocaleString(\"tr-TR\", {\r\n      minimumFractionDigits: Number.isInteger(number) ? 0 : 1,\r\n      maximumFractionDigits: maxDigits == null ? 2 : maxDigits\r\n    });\r\n  }\r\n\r\n  function fmtM(value) {\r\n    return finite(value) ? fmtNumber(value, 2) + \" m\" : clean(value);\r\n  }\r\n\r\n  function fmtAngle(value) {\r\n    return finite(value) ? fmtNumber(value, 1) + \"\u00B0\" : clean(value);\r\n  }\r\n\r\n  function normalizeKey(value) {\r\n    return clean(value)\r\n      .toLocaleLowerCase(\"tr-TR\")\r\n      .replace(/[^a-z0-9\u011F\u00FC\u015F\u0131\u00F6\u00E7]+/g, \"-\")\r\n      .replace(/-+/g, \"-\")\r\n      .replace(/^-|-$/g, \"\");\r\n  }\r\n\r\n  function truthLibrary() {\r\n    return window.GDX_PANEL_V4_R32_SETUP_TRUTH_LIBRARY || null;\r\n  }\r\n\r\n  function truthEntries() {\r\n    var library = truthLibrary();\r\n    return library && library.entriesByTemplate\r\n      ? library.entriesByTemplate\r\n      : {};\r\n  }\r\n\r\n  function p33Engine() {\r\n    return window.GDX_PANEL_LED_V4_P33_CANONICAL_SCHEMATIC_ENGINE || null;\r\n  }\r\n\r\n  function productList() {\r\n    var root = window.GDX_PANEL_LED_V4 || {};\r\n    return root.state && Array.isArray(root.state.products)\r\n      ? root.state.products\r\n      : [];\r\n  }\r\n\r\n  function findProduct(productKey) {\r\n    var target = normalizeKey(productKey);\r\n    if (!target) return null;\r\n\r\n    return productList().find(function (product) {\r\n      var candidates = [\r\n        product && product.key,\r\n        product && product.handle,\r\n        product && product.id,\r\n        product && product.title,\r\n        product && product.smartTitle,\r\n        product && product.shortTitle\r\n      ].map(normalizeKey).filter(Boolean);\r\n\r\n      return candidates.some(function (candidate) {\r\n        return candidate === target ||\r\n          candidate.indexOf(target) > -1 ||\r\n          target.indexOf(candidate) > -1;\r\n      });\r\n    }) || null;\r\n  }\r\n\r\n  function usecaseForTemplate(templateKey) {\r\n    var key = clean(templateKey);\r\n\r\n    if (/^product_ecommerce_/.test(key)) return \"product_photo_video\";\r\n    if (/^youtube_reels_social_/.test(key)) return \"content_creation_social\";\r\n    if (/^interview_talking_head_/.test(key)) return \"interview_podcast_stream\";\r\n    if (/^clinic_aesthetic_dental_/.test(key)) return \"clinical_aesthetic_medical\";\r\n    if (/^rgb_creative_video_/.test(key)) return \"rgb_creative_fx\";\r\n    if (/^studio_professional_/.test(key)) return \"product_photo_video\";\r\n    if (/^mobile_outdoor_/.test(key)) return \"interview_podcast_stream\";\r\n    if (/^starter_budget_practical_/.test(key)) return \"content_creation_social\";\r\n\r\n    var appState = window.GDX_PANEL_LED_V4 &&\r\n      window.GDX_PANEL_LED_V4.state\r\n        ? window.GDX_PANEL_LED_V4.state\r\n        : {};\r\n\r\n    return clean(appState.subKey) || \"content_creation_social\";\r\n  }\r\n\r\n  function parseDistanceMid(value) {\r\n    if (finite(value)) return Number(value);\r\n\r\n    var matches = clean(value)\r\n      .replace(\",\", \".\")\r\n      .match(/\\d+(?:\\.\\d+)?/g);\r\n\r\n    if (!matches || !matches.length) return 1.2;\r\n\r\n    var numbers = matches.map(Number).filter(Number.isFinite);\r\n    if (!numbers.length) return 1.2;\r\n    if (numbers.length === 1) return numbers[0];\r\n\r\n    return (numbers[0] + numbers[1]) / 2;\r\n  }\r\n\r\n  function roleClass(role, colorMode) {\r\n    var value = (\r\n      clean(role) + \" \" + clean(colorMode)\r\n    ).toLocaleLowerCase(\"tr-TR\");\r\n\r\n    if (/rgb|arka|kenar|fon/.test(value)) return \"is-rgb\";\r\n    if (/dolgu|fill/.test(value)) return \"is-fill\";\r\n    if (/destek|\u00FCst/.test(value)) return \"is-support\";\r\n    return \"is-key\";\r\n  }\r\n\r\n  function exactPhysicalCoordinate(light, index) {\r\n    if (finite(light && light.xM) && finite(light && light.yM)) {\r\n      return {\r\n        x: Number(light.xM),\r\n        y: Number(light.yM)\r\n      };\r\n    }\r\n\r\n    var distance = Number(light && light.distanceM || 0);\r\n    var angle = Number(light && light.angleDeg || 0);\r\n    var radians = angle * Math.PI / 180;\r\n    var sign = index === 0 ? -1 : 1;\r\n\r\n    return {\r\n      x: sign * distance * Math.sin(radians),\r\n      y: -distance * Math.cos(radians)\r\n    };\r\n  }\r\n\r\n  function normalizeExactCoordinates(lights, camera) {\r\n    var physicalLights = lights.map(function (light, index) {\r\n      var point = exactPhysicalCoordinate(light, index);\r\n      return {\r\n        light: light,\r\n        xM: point.x,\r\n        yM: point.y\r\n      };\r\n    });\r\n\r\n    var cameraPoint = {\r\n      xM: finite(camera && camera.xM) ? Number(camera.xM) : 0,\r\n      yM: finite(camera && camera.yM)\r\n        ? Number(camera.yM)\r\n        : -Number(camera && camera.distanceM || 1.6)\r\n    };\r\n\r\n    var radial = Math.max.apply(\r\n      Math,\r\n      [1].concat(\r\n        physicalLights.map(function (entry) {\r\n          return Math.sqrt(entry.xM * entry.xM + entry.yM * entry.yM);\r\n        }),\r\n        [Math.sqrt(\r\n          cameraPoint.xM * cameraPoint.xM +\r\n          cameraPoint.yM * cameraPoint.yM\r\n        )]\r\n      )\r\n    );\r\n\r\n    var centerX = 50;\r\n    var centerY = 43;\r\n    var scaleX = 37;\r\n    var scaleY = 36;\r\n\r\n    return {\r\n      lights: physicalLights.map(function (entry) {\r\n        return {\r\n          x: clamp(centerX + (entry.xM / radial) * scaleX, 9, 91),\r\n          y: clamp(centerY - (entry.yM / radial) * scaleY, 11, 78)\r\n        };\r\n      }),\r\n      camera: {\r\n        x: clamp(centerX + (cameraPoint.xM / radial) * scaleX, 18, 82),\r\n        y: clamp(centerY - (cameraPoint.yM / radial) * scaleY, 66, 88)\r\n      },\r\n      subject: { x: centerX, y: centerY }\r\n    };\r\n  }\r\n\r\n  function exactModel(templateKey, truth) {\r\n    if (!truth || !Array.isArray(truth.lights) || !truth.lights.length) {\r\n      return null;\r\n    }\r\n\r\n    var camera = truth.camera || {};\r\n    var positions = normalizeExactCoordinates(truth.lights, camera);\r\n\r\n    var lights = truth.lights.map(function (light, index) {\r\n      return {\r\n        kind: \"light\",\r\n        role: clean(light.role) || (\"I\u015F\u0131k \" + (index + 1)),\r\n        angleLabel: fmtAngle(light.angleDeg),\r\n        distanceLabel: fmtM(light.distanceM),\r\n        distanceM: Number(light.distanceM || 0),\r\n        band: clean(light.band || light.displayedBand),\r\n        heightLabel: finite(light.heightM) ? fmtM(light.heightM) : \"\",\r\n        target: clean(light.target),\r\n        colorMode: clean(light.colorMode),\r\n        className: roleClass(light.role, light.colorMode),\r\n        x: positions.lights[index].x,\r\n        y: positions.lights[index].y\r\n      };\r\n    });\r\n\r\n    var target = lights.map(function (light) {\r\n      return light.target;\r\n    }).filter(Boolean)[0] || \"Konu/\u00DCr\u00FCn\";\r\n\r\n    return {\r\n      ok: true,\r\n      source: \"approved_setup_truth\",\r\n      sourceLabel: \"Setup de\u011Ferleri\",\r\n      templateKey: templateKey,\r\n      scenarioType: clean(truth.scenarioType),\r\n      scenario: clean(truth.scenario),\r\n      targetLabel: target,\r\n      subject: positions.subject,\r\n      lights: lights,\r\n      camera: {\r\n        kind: \"camera\",\r\n        role: clean(camera.label) || \"Kamera\",\r\n        distanceLabel: fmtM(camera.distanceM),\r\n        distanceM: Number(camera.distanceM || 0),\r\n        band: clean(camera.band || camera.displayedBand),\r\n        orientation: clean(camera.frameOrientation),\r\n        x: positions.camera.x,\r\n        y: positions.camera.y\r\n      },\r\n      kelvin: {\r\n        range: Array.isArray(truth.kelvin && truth.kelvin.rangeK)\r\n          ? truth.kelvin.rangeK.join(\"\u2013\") + \" K\"\r\n          : clean(truth.kelvin && truth.kelvin.rangeK),\r\n        note: clean(truth.kelvin && truth.kelvin.note)\r\n      },\r\n      mobileDesktopParity: true\r\n    };\r\n  }\r\n\r\n  function derivedModel(host, templateKey) {\r\n    var engine = p33Engine();\r\n    var productKey = clean(host.getAttribute(\"data-gdx-panel-r30a-product-key\"));\r\n    var product = findProduct(productKey);\r\n\r\n    if (!engine || typeof engine.buildPreview !== \"function\" || !product) {\r\n      return null;\r\n    }\r\n\r\n    var preview = null;\r\n    try {\r\n      preview = engine.buildPreview(\r\n        product,\r\n        usecaseForTemplate(templateKey),\r\n        { slot: \"schematic_fallback\" }\r\n      );\r\n    } catch (error) {\r\n      state.lastErrors.push(\"P33 buildPreview: \" + clean(error && error.message || error));\r\n      return null;\r\n    }\r\n\r\n    if (!preview || !preview.ok || !Array.isArray(preview.elements)) {\r\n      return null;\r\n    }\r\n\r\n    var lightElements = preview.elements.filter(function (element) {\r\n      return /keyLight|fillLight|rgbAtmosphereLight|accent/i.test(\r\n        clean(element && element.type)\r\n      );\r\n    });\r\n\r\n    var subjectElement = preview.elements.find(function (element) {\r\n      return /subject|product/i.test(clean(element && element.type));\r\n    }) || { x: 50, y: 51, label: \"Ki\u015Fi/\u00DCr\u00FCn\" };\r\n\r\n    var cameraElement = preview.elements.find(function (element) {\r\n      return clean(element && element.type) === \"camera\";\r\n    }) || { x: 50, y: 86, label: \"Kamera\" };\r\n\r\n    var profile = preview.profile || {};\r\n    var profileDistance = clean(profile.rangeLabel) ||\r\n      (finite(profile.anchorDistanceM) ? fmtM(profile.anchorDistanceM) : \"\");\r\n\r\n    var lights = lightElements.map(function (element, index) {\r\n      var type = clean(element.type);\r\n      var role =\r\n        type === \"rgbAtmosphereLight\"\r\n          ? \"RGB Arka / Kenar\"\r\n          : type === \"fillLight\"\r\n            ? \"Dolgu I\u015F\u0131\u011F\u0131\"\r\n            : type === \"accent\"\r\n              ? \"Destek\"\r\n              : \"Ana I\u015F\u0131k\";\r\n\r\n      return {\r\n        kind: \"light\",\r\n        role: clean(element.label) || role,\r\n        angleLabel: clean(element.angle),\r\n        distanceLabel: clean(element.distance) || profileDistance,\r\n        distanceM: parseDistanceMid(element.distance || profileDistance),\r\n        band: clean(profile.label),\r\n        heightLabel: \"\",\r\n        target: clean(subjectElement.label) || \"Ki\u015Fi/\u00DCr\u00FCn\",\r\n        colorMode: type === \"rgbAtmosphereLight\" ? \"RGB\" : \"\",\r\n        className: roleClass(role, type),\r\n        x: clamp(element.x, 8, 92),\r\n        y: clamp(element.y, 10, 80)\r\n      };\r\n    });\r\n\r\n    if (!lights.length) return null;\r\n\r\n    return {\r\n      ok: true,\r\n      source: \"p33_product_profile\",\r\n      sourceLabel: \"\u00DCr\u00FCn verisi + kanonik mesafe profili\",\r\n      templateKey: templateKey,\r\n      scenarioType: \"\",\r\n      scenario: clean(preview.setupLabel),\r\n      targetLabel: clean(subjectElement.label) || \"Ki\u015Fi/\u00DCr\u00FCn\",\r\n      subject: {\r\n        x: clamp(subjectElement.x, 15, 85),\r\n        y: clamp(subjectElement.y, 15, 75)\r\n      },\r\n      lights: lights,\r\n      camera: {\r\n        kind: \"camera\",\r\n        role: clean(cameraElement.label) || \"Kamera\",\r\n        distanceLabel: profileDistance,\r\n        distanceM: parseDistanceMid(profileDistance),\r\n        band: clean(profile.label),\r\n        orientation: \"\",\r\n        x: clamp(cameraElement.x, 18, 82),\r\n        y: clamp(cameraElement.y, 68, 90)\r\n      },\r\n      kelvin: { range: \"\", note: \"\" },\r\n      mobileDesktopParity: preview.mobileDesktopParity === true,\r\n      profileKey: clean(profile.key)\r\n    };\r\n  }\r\n\r\n  function modelForHost(host) {\r\n    var templateKey = clean(\r\n      host.getAttribute(\"data-gdx-panel-r30a-template-key\")\r\n    );\r\n\r\n    if (!templateKey) return null;\r\n\r\n    var truth = truthEntries()[templateKey] || null;\r\n    var exact = exactModel(templateKey, truth);\r\n    if (exact) return exact;\r\n\r\n    return derivedModel(host, templateKey);\r\n  }\r\n\r\n  function nodeHtml(node) {\r\n    var meta = [\r\n      node.angleLabel,\r\n      node.distanceLabel\r\n    ].filter(Boolean).join(\" \u00B7 \");\r\n\r\n    var detail = [\r\n      node.band,\r\n      node.heightLabel ? \"y\u00FCkseklik \" + node.heightLabel : \"\"\r\n    ].filter(Boolean).join(\" \u00B7 \");\r\n\r\n    return '' +\r\n      '<div class=\"gdx-af04-node is-light ' + esc(node.className) + '\" ' +\r\n        'data-gdx-af04-role=\"' + esc(node.role) + '\" ' +\r\n        'data-gdx-af04-distance=\"' + esc(node.distanceLabel) + '\" ' +\r\n        'style=\"--gdx-af04-x:' + esc(node.x) + '%;--gdx-af04-y:' + esc(node.y) + '%;\">' +\r\n        '<strong>' + esc(node.role) + '</strong>' +\r\n        '<span>' + esc(meta) + '</span>' +\r\n        (detail ? '<small>' + esc(detail) + '</small>' : '') +\r\n      '</div>';\r\n  }\r\n\r\n  function subjectHtml(model) {\r\n    return '' +\r\n      '<div class=\"gdx-af04-node is-subject\" ' +\r\n        'style=\"--gdx-af04-x:' + esc(model.subject.x) + '%;--gdx-af04-y:' + esc(model.subject.y) + '%;\">' +\r\n        '<strong>' + esc(model.targetLabel) + '</strong>' +\r\n      '</div>';\r\n  }\r\n\r\n  function cameraHtml(camera) {\r\n    var detail = [\r\n      camera.band,\r\n      camera.orientation\r\n    ].filter(Boolean).join(\" \u00B7 \");\r\n\r\n    return '' +\r\n      '<div class=\"gdx-af04-node is-camera\" ' +\r\n        'data-gdx-af04-distance=\"' + esc(camera.distanceLabel) + '\" ' +\r\n        'style=\"--gdx-af04-x:' + esc(camera.x) + '%;--gdx-af04-y:' + esc(camera.y) + '%;\">' +\r\n        '<strong>' + esc(camera.role || \"Kamera\") + '</strong>' +\r\n        '<span>' + esc(camera.distanceLabel) + '</span>' +\r\n        (detail ? '<small>' + esc(detail) + '</small>' : '') +\r\n      '</div>';\r\n  }\r\n\r\n  function lineHtml(start, end, distanceLabel, type, index) {\r\n    var midX = (Number(start.x) + Number(end.x)) / 2;\r\n    var midY = (Number(start.y) + Number(end.y)) / 2;\r\n\r\n    return {\r\n      line:\r\n        '<line class=\"gdx-af04-connector is-' + esc(type) + '\" ' +\r\n          'x1=\"' + esc(start.x) + '\" y1=\"' + esc(start.y) + '\" ' +\r\n          'x2=\"' + esc(end.x) + '\" y2=\"' + esc(end.y) + '\" ' +\r\n          'data-gdx-af04-line=\"' + esc(type + \"-\" + index) + '\"></line>',\r\n      label:\r\n        '<span class=\"gdx-af04-line-label is-' + esc(type) + '\" ' +\r\n          'data-gdx-af04-line-distance=\"' + esc(distanceLabel) + '\" ' +\r\n          'style=\"--gdx-af04-x:' + esc(midX) + '%;--gdx-af04-y:' + esc(midY) + '%;\">' +\r\n          esc(distanceLabel) +\r\n        '</span>'\r\n    };\r\n  }\r\n\r\n  function canvasHtml(model) {\r\n    var subject = model.subject;\r\n    var lines = [];\r\n    var labels = [];\r\n\r\n    model.lights.forEach(function (light, index) {\r\n      var item = lineHtml(light, subject, light.distanceLabel, \"light\", index);\r\n      lines.push(item.line);\r\n      labels.push(item.label);\r\n    });\r\n\r\n    var cameraLine = lineHtml(\r\n      model.camera,\r\n      subject,\r\n      model.camera.distanceLabel,\r\n      \"camera\",\r\n      0\r\n    );\r\n    lines.push(cameraLine.line);\r\n    labels.push(cameraLine.label);\r\n\r\n    return '' +\r\n      '<div class=\"gdx-af04-canvas\" ' + CANVAS_ATTR + '=\"1\" ' +\r\n        'data-gdx-af04-source=\"' + esc(model.source) + '\" ' +\r\n        'data-gdx-af04-mobile-desktop-parity=\"' + (model.mobileDesktopParity ? \"1\" : \"0\") + '\">' +\r\n        '<svg class=\"gdx-af04-connectors\" viewBox=\"0 0 100 100\" preserveAspectRatio=\"none\" aria-hidden=\"true\">' +\r\n          lines.join(\"\") +\r\n        '</svg>' +\r\n        labels.join(\"\") +\r\n        model.lights.map(nodeHtml).join(\"\") +\r\n        subjectHtml(model) +\r\n        cameraHtml(model.camera) +\r\n        '<span class=\"gdx-af04-source-badge\">' + esc(model.sourceLabel) + '</span>' +\r\n      '</div>';\r\n  }\r\n\r\n  function metricRow(label, values, kind) {\r\n    return '' +\r\n      '<div class=\"gdx-af04-metric-row is-' + esc(kind || \"light\") + '\">' +\r\n        '<b>' + esc(label) + '</b>' +\r\n        '<span>' + values.filter(Boolean).map(esc).join(\" \u00B7 \") + '</span>' +\r\n      '</div>';\r\n  }\r\n\r\n  function metricsHtml(model) {\r\n    var rows = model.lights.map(function (light) {\r\n      return metricRow(\r\n        light.role,\r\n        [\r\n          light.angleLabel ? \"A\u00E7\u0131 \" + light.angleLabel : \"\",\r\n          light.distanceLabel ? \"Mesafe \" + light.distanceLabel : \"\",\r\n          light.band,\r\n          light.heightLabel ? \"Y\u00FCkseklik \" + light.heightLabel : \"\"\r\n        ],\r\n        \"light\"\r\n      );\r\n    });\r\n\r\n    rows.push(metricRow(\r\n      model.camera.role || \"Kamera\",\r\n      [\r\n        model.camera.distanceLabel ? \"Mesafe \" + model.camera.distanceLabel : \"\",\r\n        model.camera.band,\r\n        model.camera.orientation ? \"Kadraj \" + model.camera.orientation : \"\"\r\n      ],\r\n      \"camera\"\r\n    ));\r\n\r\n    if (model.kelvin && model.kelvin.range) {\r\n      rows.push(metricRow(\r\n        \"Kelvin\",\r\n        [model.kelvin.range, model.kelvin.note],\r\n        \"kelvin\"\r\n      ));\r\n    }\r\n\r\n    return '' +\r\n      '<div class=\"gdx-af04-metrics\" ' + METRICS_ATTR + '=\"1\">' +\r\n        rows.join(\"\") +\r\n      '</div>';\r\n  }\r\n\r\n  function compactSchemaHtml(model) {\r\n    return '' +\r\n      '<div class=\"gdx-r33-cr02-compact-schema-card\" data-gdx-r33-cr02-compact-schema-card=\"1\">' +\r\n        '<div class=\"gdx-r33-cr02-compact-schema-head\">' +\r\n          '<b>Dinamik kurulum \u015Femas\u0131</b>' +\r\n          '<span>' + esc(model.sourceLabel) + '</span>' +\r\n        '</div>' +\r\n        canvasHtml(model) +\r\n        '<p class=\"gdx-r33-cr02-compact-schema-note\">' +\r\n          '\u015Eemadaki \u0131\u015F\u0131k, konu ve kamera konumlar\u0131 se\u00E7ili kurulum verilerinden olu\u015Fturulur. ' +\r\n          'Mesafe, a\u00E7\u0131 ve y\u00FCkseklik de\u011Ferleri yan\u0131ndaki kurulum \u00F6zetiyle ayn\u0131 kaynaktan al\u0131n\u0131r.' +\r\n        '</p>' +\r\n      '</div>';\r\n  }\r\n\r\n  function setCompactPoint(node, x, y, key) {\r\n    if (!node) return;\r\n    node.style.setProperty(\"--gdx-af04-x\", x + \"%\");\r\n    node.style.setProperty(\"--gdx-af04-y\", y + \"%\");\r\n    if (key) node.setAttribute(\"data-gdx-r33-cr02-position\", key);\r\n  }\r\n\r\n  function setCompactLine(line, start, end) {\r\n    if (!line) return;\r\n    line.setAttribute(\"x1\", start.x);\r\n    line.setAttribute(\"y1\", start.y);\r\n    line.setAttribute(\"x2\", end.x);\r\n    line.setAttribute(\"y2\", end.y);\r\n  }\r\n\r\n  function compactLegend(slot, lights) {\r\n    if (!slot || slot.querySelector('[data-gdx-r33-cr02-compact-legend=\"1\"]')) return;\r\n\r\n    var canvas = slot.querySelector('[' + CANVAS_ATTR + '=\"1\"]');\r\n    if (!canvas || !canvas.parentNode) return;\r\n\r\n    var legend = document.createElement(\"div\");\r\n    legend.className = \"gdx-r33-cr02-compact-schema-legend\";\r\n    legend.setAttribute(\"data-gdx-r33-cr02-compact-legend\", \"1\");\r\n\r\n    lights.forEach(function (light) {\r\n      var item = document.createElement(\"span\");\r\n      var dot = document.createElement(\"i\");\r\n      var name = clean(light.querySelector(\"strong\") && light.querySelector(\"strong\").textContent) || \"I\u015F\u0131k\";\r\n\r\n      dot.className = /is-rgb/.test(light.className)\r\n        ? \"m\"\r\n        : (/is-support|is-fill/.test(light.className) ? \"c\" : \"g\");\r\n      item.appendChild(dot);\r\n      item.appendChild(document.createTextNode(name.replace(/\\s+I\u015F\u0131\u011F\u0131$/i, \"\")));\r\n      legend.appendChild(item);\r\n    });\r\n\r\n    var cameraItem = document.createElement(\"span\");\r\n    var cameraDot = document.createElement(\"i\");\r\n    cameraDot.className = \"y\";\r\n    cameraItem.appendChild(cameraDot);\r\n    cameraItem.appendChild(document.createTextNode(\"Kamera\"));\r\n    legend.appendChild(cameraItem);\r\n\r\n    canvas.parentNode.insertBefore(legend, canvas.nextSibling);\r\n  }\r\n\r\n  function finalizeCompactDataDrivenTruth(slot) {\r\n    if (!slot || slot.nodeType !== 1) return false;\r\n\r\n    var canvas = slot.querySelector(\r\n      '[' + CANVAS_ATTR + '=\"1\"]'\r\n    );\r\n\r\n    if (!canvas) return false;\r\n\r\n    var lights = Array.prototype.slice.call(\r\n      canvas.querySelectorAll(\r\n        \".gdx-af04-node.is-light\"\r\n      )\r\n    );\r\n\r\n    /*\r\n     * R8-06A PRIMARY GEOMETRY TRUTH LOCK\r\n     *\r\n     * compactSchemaHtml(model) -> canvasHtml(model)\r\n     * zaten AF04 modelinden:\r\n     *\r\n     * - light x/y\r\n     * - subject x/y\r\n     * - camera x/y\r\n     * - connector endpoint\r\n     * - distance-label midpoint\r\n     *\r\n     * de\u011Ferlerini \u00FCretir.\r\n     *\r\n     * Bu a\u015Famada geometri ASLA yeniden yaz\u0131lmaz.\r\n     */\r\n    compactLegend(slot, lights);\r\n\r\n    slot.setAttribute(\r\n      \"data-gdx-r33-cr02-layout\",\r\n      \"data-driven-truth-v2\"\r\n    );\r\n\r\n    slot.setAttribute(\r\n      \"data-gdx-r33-cr02-centered-mobile\",\r\n      window.innerWidth <= 749 ? \"1\" : \"0\"\r\n    );\r\n\r\n    slot.setAttribute(\r\n      \"data-gdx-r36-h-r8-06a-primary-geometry\",\r\n      \"model-owned\"\r\n    );\r\n\r\n    return true;\r\n  }\r\n\r\n  function refreshCompactDataDrivenTruth() {\r\n    Array.prototype.slice.call(\r\n      document.querySelectorAll(\r\n        CR02_SLOT_SELECTOR\r\n      )\r\n    ).forEach(function (slot) {\r\n      finalizeCompactDataDrivenTruth(slot);\r\n    });\r\n  }\r\n\r\n  function compactSlotsForHost(host) {\r\n    var modal = host && host.closest\r\n      ? host.closest('[data-gdx-r11-modal-type=\"setup\"]')\r\n      : null;\r\n\r\n    return modal\r\n      ? Array.prototype.slice.call(modal.querySelectorAll(CR02_SLOT_SELECTOR))\r\n      : [];\r\n  }\r\n\r\n  function enhanceCompactSlotsForHost(host, model, modelSignature) {\r\n    var slots = compactSlotsForHost(host);\r\n    if (!slots.length) return true;\r\n\r\n    var allReady = true;\r\n\r\n    slots.forEach(function (slot) {\r\n      if (!slot || slot.nodeType !== 1) {\r\n        allReady = false;\r\n        return;\r\n      }\r\n\r\n      if (\r\n        slot.getAttribute(CR02_RENDERED_ATTR) === \"1\" &&\r\n        slot.getAttribute(CR02_SIGNATURE_ATTR) === modelSignature &&\r\n        slot.querySelector('[data-gdx-r33-cr02-compact-schema-card=\"1\"]') &&\r\n        slot.querySelector('[' + CANVAS_ATTR + '=\"1\"]')\r\n      ) {\r\n        finalizeCompactDataDrivenTruth(slot);\r\n        return;\r\n      }\r\n\r\n      slot.innerHTML = compactSchemaHtml(model);\r\n      finalizeCompactDataDrivenTruth(slot);\r\n      slot.setAttribute(CR02_RENDERED_ATTR, \"1\");\r\n      slot.setAttribute(CR02_SIGNATURE_ATTR, modelSignature);\r\n      slot.setAttribute(CR02_SOURCE_ATTR, model.source);\r\n      slot.setAttribute(\"data-gdx-r33-cr02-state\", \"ready\");\r\n      slot.setAttribute(\r\n        \"data-gdx-r33-cr02-mobile-desktop-parity\",\r\n        model.mobileDesktopParity ? \"1\" : \"0\"\r\n      );\r\n\r\n      state.compactRenderCount += 1;\r\n      if (model.source === \"approved_setup_truth\") {\r\n        state.compactExactCount += 1;\r\n      } else {\r\n        state.compactDerivedCount += 1;\r\n      }\r\n    });\r\n\r\n    return allReady;\r\n  }\r\n\r\n  function signature(model) {\r\n    try {\r\n      return JSON.stringify({\r\n        source: model.source,\r\n        templateKey: model.templateKey,\r\n        lights: model.lights.map(function (light) {\r\n          return [\r\n            light.role,\r\n            light.angleLabel,\r\n            light.distanceLabel,\r\n            light.band,\r\n            light.heightLabel,\r\n            light.x,\r\n            light.y\r\n          ];\r\n        }),\r\n        camera: [\r\n          model.camera.distanceLabel,\r\n          model.camera.band,\r\n          model.camera.orientation,\r\n          model.camera.x,\r\n          model.camera.y\r\n        ]\r\n      });\r\n    } catch (ignore) {\r\n      return model.templateKey + \"::\" + model.source;\r\n    }\r\n  }\r\n\r\n  function replaceOrInsertCanvas(card, model) {\r\n    var oldCanvas = card.querySelector(\r\n      '[' + CANVAS_ATTR + '=\"1\"], .gdx-r11-diagram'\r\n    );\r\n\r\n    var holder = document.createElement(\"div\");\r\n    holder.innerHTML = canvasHtml(model);\r\n    var nextCanvas = holder.firstElementChild;\r\n\r\n    if (oldCanvas && oldCanvas.parentNode) {\r\n      oldCanvas.parentNode.replaceChild(nextCanvas, oldCanvas);\r\n    } else {\r\n      var rows = card.querySelector(\r\n        '[' + METRICS_ATTR + '=\"1\"], .gdx-r11-setup-rows'\r\n      );\r\n      card.insertBefore(nextCanvas, rows || null);\r\n    }\r\n  }\r\n\r\n  function replaceOrInsertMetrics(card, model) {\r\n    var oldMetrics = card.querySelector(\r\n      '[' + METRICS_ATTR + '=\"1\"], .gdx-r11-setup-rows'\r\n    );\r\n\r\n    var holder = document.createElement(\"div\");\r\n    holder.innerHTML = metricsHtml(model);\r\n    var nextMetrics = holder.firstElementChild;\r\n\r\n    if (oldMetrics && oldMetrics.parentNode) {\r\n      oldMetrics.parentNode.replaceChild(nextMetrics, oldMetrics);\r\n    } else {\r\n      card.appendChild(nextMetrics);\r\n    }\r\n  }\r\n\r\n  function enhanceHost(host) {\r\n    if (!host || host.nodeType !== 1) return false;\r\n\r\n    /* FS1R-R4.1\r\n       CR02 current setup is a downstream canonical surface and must not depend\r\n       on the historical R30 fallback schematic DOM. Build the model and render\r\n       CR02 first. Only then, if a legacy R30 schematic card legitimately exists\r\n       (unmapped/no-CDN fallback case), enhance that legacy card too. */\r\n    var model = modelForHost(host);\r\n    if (!model || !model.ok) {\r\n      state.skippedCount += 1;\r\n      return false;\r\n    }\r\n\r\n    var nextSignature = signature(model);\r\n    var compactReady = enhanceCompactSlotsForHost(\r\n      host,\r\n      model,\r\n      nextSignature\r\n    );\r\n\r\n    var layer = host.querySelector('[data-gdx-panel-r30a-schematic=\"1\"]');\r\n    var card = layer && layer.querySelector(CARD_SELECTOR);\r\n\r\n    if (!layer || !card) {\r\n      host.setAttribute(\r\n        \"data-fs1r-r41-current-cr02-decoupled\",\r\n        compactReady ? \"1\" : \"0\"\r\n      );\r\n      return compactReady === true;\r\n    }\r\n\r\n    if (\r\n      card.getAttribute(ENHANCED_ATTR) === \"1\" &&\r\n      card.getAttribute(\"data-gdx-panel-af04-signature\") === nextSignature &&\r\n      card.querySelector('[' + CANVAS_ATTR + '=\"1\"]') &&\r\n      card.querySelector('[' + METRICS_ATTR + '=\"1\"]') &&\r\n      compactReady\r\n    ) {\r\n      return true;\r\n    }\r\n\r\n    replaceOrInsertCanvas(card, model);\r\n    replaceOrInsertMetrics(card, model);\r\n    enhanceCompactSlotsForHost(host, model, nextSignature);\r\n\r\n    card.setAttribute(ENHANCED_ATTR, \"1\");\r\n    card.setAttribute(SOURCE_ATTR, model.source);\r\n    card.setAttribute(\"data-gdx-panel-af04-signature\", nextSignature);\r\n    card.setAttribute(\r\n      \"data-gdx-panel-af04-mobile-desktop-parity\",\r\n      model.mobileDesktopParity ? \"1\" : \"0\"\r\n    );\r\n\r\n    host.setAttribute(\r\n      \"data-gdx-panel-af04-viewport\",\r\n      window.innerWidth <= 749 ? \"mobile\" : \"desktop\"\r\n    );\r\n\r\n    state.enhanceCount += 1;\r\n    if (model.source === \"approved_setup_truth\") {\r\n      state.exactCount += 1;\r\n    } else {\r\n      state.derivedCount += 1;\r\n    }\r\n\r\n    return true;\r\n  }\r\n\r\n  function hosts() {\r\n    return Array.prototype.slice.call(\r\n      document.querySelectorAll(HOST_SELECTOR)\r\n    );\r\n  }\r\n\r\n  function scan() {\r\n    state.scheduled = false;\r\n    state.scanCount += 1;\r\n    state.lastScanAt = new Date().toISOString();\r\n    state.lastErrors = state.lastErrors.slice(-20);\r\n\r\n    hosts().forEach(function (host) {\r\n      try {\r\n        enhanceHost(host);\r\n      } catch (error) {\r\n        state.lastErrors.push(\r\n          \"enhanceHost: \" + clean(error && error.message || error)\r\n        );\r\n      }\r\n    });\r\n  }\r\n\r\n  function schedule() {\r\n    if (state.scheduled) return;\r\n    state.scheduled = true;\r\n    window.requestAnimationFrame(scan);\r\n  }\r\n\r\n  function updateViewportAttributes() {\r\n    var mode = window.innerWidth <= 749 ? \"mobile\" : \"desktop\";\r\n    hosts().forEach(function (host) {\r\n      host.setAttribute(\"data-gdx-panel-af04-viewport\", mode);\r\n    });\r\n    refreshCompactDataDrivenTruth();\r\n  }\r\n\r\n  function installStyle() {\r\n    if (document.getElementById(STYLE_ID)) return;\r\n\r\n    var style = document.createElement(\"style\");\r\n    style.id = STYLE_ID;\r\n    style.textContent = [\r\n      '#gdx-panel-led-v4-root .gdx-af04-canvas{position:relative;isolation:isolate;min-height:320px;border:1px solid rgba(56,189,248,.24);border-radius:18px;overflow:hidden;background:linear-gradient(rgba(56,189,248,.075) 1px,transparent 1px),linear-gradient(90deg,rgba(56,189,248,.075) 1px,transparent 1px),radial-gradient(circle at 50% 43%,rgba(34,197,94,.15) 0 12%,transparent 13% 100%),radial-gradient(circle at 50% 43%,transparent 0 30%,rgba(34,197,94,.07) 31% 34%,transparent 35% 100%),rgba(2,6,23,.44);background-size:32px 32px,32px 32px,100% 100%,100% 100%,100% 100%;}',\r\n      '#gdx-panel-led-v4-root .gdx-af04-connectors{position:absolute;inset:0;width:100%;height:100%;z-index:1;pointer-events:none;}',\r\n      '#gdx-panel-led-v4-root .gdx-af04-connector{fill:none;stroke:rgba(226,232,240,.72);stroke-width:1.2;stroke-dasharray:4 3;vector-effect:non-scaling-stroke;}',\r\n      '#gdx-panel-led-v4-root .gdx-af04-connector.is-camera{stroke:rgba(96,165,250,.88);}',\r\n      '#gdx-panel-led-v4-root .gdx-af04-node{position:absolute;left:var(--gdx-af04-x);top:var(--gdx-af04-y);transform:translate(-50%,-50%);z-index:4;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;box-sizing:border-box;line-height:1.15;}',\r\n      '#gdx-panel-led-v4-root .gdx-af04-node strong{display:block;font-size:13px;font-weight:950;color:#fff;}',\r\n      '#gdx-panel-led-v4-root .gdx-af04-node span{display:block;margin-top:4px;font-size:11px;font-weight:900;color:#f8fafc;white-space:nowrap;}',\r\n      '#gdx-panel-led-v4-root .gdx-af04-node small{display:block;margin-top:4px;font-size:9px;font-weight:800;color:#dbeafe;white-space:nowrap;}',\r\n      '#gdx-panel-led-v4-root .gdx-af04-node.is-light{min-width:128px;max-width:154px;padding:10px 12px;border-radius:16px;border:1px solid rgba(255,255,255,.18);box-shadow:0 10px 24px rgba(0,0,0,.28);}',\r\n      '#gdx-panel-led-v4-root .gdx-af04-node.is-key{background:linear-gradient(135deg,#047857,#065f46);}',\r\n      '#gdx-panel-led-v4-root .gdx-af04-node.is-fill{background:linear-gradient(135deg,#854d0e,#713f12);}',\r\n      '#gdx-panel-led-v4-root .gdx-af04-node.is-support{background:linear-gradient(135deg,#075985,#0c4a6e);}',\r\n      '#gdx-panel-led-v4-root .gdx-af04-node.is-rgb{background:linear-gradient(135deg,#6d28d9,#be185d);}',\r\n      '#gdx-panel-led-v4-root .gdx-af04-node.is-subject{width:82px;height:82px;padding:8px;border-radius:50%;background:linear-gradient(145deg,#f8fafc,#94a3b8);border:2px solid rgba(255,255,255,.58);box-shadow:0 10px 28px rgba(0,0,0,.32);}',\r\n      '#gdx-panel-led-v4-root .gdx-af04-node.is-subject strong{font-size:12px;color:#111827;}',\r\n      '#gdx-panel-led-v4-root .gdx-af04-node.is-camera{min-width:104px;padding:9px 12px;border-radius:15px;background:linear-gradient(135deg,#111827,#1e293b);border:1px solid rgba(96,165,250,.62);}',\r\n      '#gdx-panel-led-v4-root .gdx-af04-line-label{position:absolute;left:var(--gdx-af04-x);top:var(--gdx-af04-y);transform:translate(-50%,-50%);z-index:3;padding:3px 7px;border-radius:999px;background:rgba(2,6,23,.90);border:1px solid rgba(148,163,184,.38);color:#fff;font-size:10px;font-weight:950;white-space:nowrap;pointer-events:none;}',\r\n      '#gdx-panel-led-v4-root .gdx-af04-line-label.is-camera{border-color:rgba(96,165,250,.58);color:#bfdbfe;}',\r\n      '#gdx-panel-led-v4-root .gdx-af04-source-badge{position:absolute;left:12px;bottom:10px;z-index:5;padding:5px 8px;border-radius:999px;background:rgba(6,95,70,.72);border:1px solid rgba(52,211,153,.35);color:#d1fae5;font-size:9px;font-weight:900;}',\r\n      '#gdx-panel-led-v4-root .gdx-af04-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:12px;}',\r\n      '#gdx-panel-led-v4-root .gdx-af04-metric-row{display:grid;grid-template-columns:minmax(100px,.38fr) minmax(0,1fr);gap:10px;align-items:center;padding:11px 12px;border:1px solid rgba(148,163,184,.18);border-radius:12px;background:rgba(2,6,23,.35);}',\r\n      '#gdx-panel-led-v4-root .gdx-af04-metric-row b{font-size:11px;font-weight:950;color:#fff;}',\r\n      '#gdx-panel-led-v4-root .gdx-af04-metric-row span{font-size:11px;font-weight:800;color:#dbeafe;line-height:1.35;}',\r\n      '#gdx-panel-led-v4-root .gdx-af04-metric-row.is-camera{border-color:rgba(96,165,250,.26);}',\r\n      '#gdx-panel-led-v4-root .gdx-af04-metric-row.is-kelvin{border-color:rgba(250,204,21,.28);}',\r\n      '#gdx-panel-led-v4-root .gdx-r33-cr02-compact-schema-card{height:100%;min-height:358px;display:flex;flex-direction:column;background:rgba(2,6,23,.28);}',\r\n      '#gdx-panel-led-v4-root .gdx-r33-cr02-compact-schema-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 13px;border-bottom:1px solid rgba(148,163,184,.18);background:rgba(15,23,42,.88);}',\r\n      '#gdx-panel-led-v4-root .gdx-r33-cr02-compact-schema-head b{font-size:14px;font-weight:950;color:#f8fafc;}',\r\n      '#gdx-panel-led-v4-root .gdx-r33-cr02-compact-schema-head span{padding:5px 8px;border-radius:999px;border:1px solid rgba(52,211,153,.32);background:rgba(6,95,70,.52);color:#d1fae5;font-size:9px;font-weight:900;}',\r\n      '#gdx-panel-led-v4-root .gdx-r33-cr02-compact-schema-card .gdx-af04-canvas{flex:1;min-height:300px;border:0;border-radius:0;}',\r\n      '#gdx-panel-led-v4-root .gdx-r33-cr02-compact-schema-card .gdx-af04-source-badge{display:none;}',\r\n      '#gdx-panel-led-v4-root .gdx-r33-cr02-compact-schema-card .gdx-af04-canvas{min-height:340px;}',\r\n      '#gdx-panel-led-v4-root .gdx-r33-cr02-compact-schema-legend{display:flex;gap:10px;flex-wrap:wrap;padding:10px 13px;border-top:1px solid rgba(148,163,184,.18);background:rgba(10,23,39,.92);}',\r\n      '#gdx-panel-led-v4-root .gdx-r33-cr02-compact-schema-legend span{font-size:10px;font-weight:800;color:#dbeafe;}',\r\n      '#gdx-panel-led-v4-root .gdx-r33-cr02-compact-schema-legend i{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px;vertical-align:middle;}',\r\n      '#gdx-panel-led-v4-root .gdx-r33-cr02-compact-schema-legend .g{background:#55e49a;}',\r\n      '#gdx-panel-led-v4-root .gdx-r33-cr02-compact-schema-legend .c{background:#52d9ee;}',\r\n      '#gdx-panel-led-v4-root .gdx-r33-cr02-compact-schema-legend .m{background:#c084fc;}',\r\n      '#gdx-panel-led-v4-root .gdx-r33-cr02-compact-schema-legend .y{background:#ffd41f;}',\r\n      '#gdx-panel-led-v4-root .gdx-r33-cr02-compact-schema-note{margin:0!important;padding:10px 12px;border-top:1px solid rgba(148,163,184,.18);background:rgba(15,23,42,.72);color:#cbd5e1!important;font-size:10px!important;font-weight:780!important;line-height:1.45!important;}',\r\n      '@media(max-width:749px){#gdx-panel-led-v4-root .gdx-af04-canvas{min-height:370px;background-size:24px 24px,24px 24px,100% 100%,100% 100%,100% 100%;}#gdx-panel-led-v4-root .gdx-af04-node.is-light{min-width:86px;max-width:104px;padding:8px 7px;border-radius:13px;}#gdx-panel-led-v4-root .gdx-af04-node strong{font-size:10px;}#gdx-panel-led-v4-root .gdx-af04-node span{font-size:8.5px;white-space:normal;}#gdx-panel-led-v4-root .gdx-af04-node small{font-size:7.5px;white-space:normal;}#gdx-panel-led-v4-root .gdx-af04-node.is-subject{width:68px;height:68px;}#gdx-panel-led-v4-root .gdx-af04-node.is-subject strong{font-size:10px;}#gdx-panel-led-v4-root .gdx-af04-node.is-camera{min-width:82px;padding:8px;}#gdx-panel-led-v4-root .gdx-af04-line-label{font-size:8px;padding:3px 5px;}#gdx-panel-led-v4-root .gdx-af04-source-badge{font-size:7.5px;left:8px;bottom:7px;}#gdx-panel-led-v4-root .gdx-af04-metrics{grid-template-columns:1fr;}#gdx-panel-led-v4-root .gdx-af04-metric-row{grid-template-columns:minmax(82px,.38fr) minmax(0,1fr);padding:9px;}#gdx-panel-led-v4-root .gdx-af04-metric-row b,#gdx-panel-led-v4-root .gdx-af04-metric-row span{font-size:10px;}#gdx-panel-led-v4-root .gdx-r33-cr02-compact-schema-card{min-height:318px;}#gdx-panel-led-v4-root .gdx-r33-cr02-compact-schema-head{padding:10px;}#gdx-panel-led-v4-root .gdx-r33-cr02-compact-schema-head b{font-size:12px;}#gdx-panel-led-v4-root .gdx-r33-cr02-compact-schema-head span{font-size:7.5px;}#gdx-panel-led-v4-root .gdx-r33-cr02-compact-schema-card .gdx-af04-canvas{min-height:300px;}#gdx-panel-led-v4-root .gdx-r33-cr02-compact-schema-note{font-size:9px!important;}}',\r\n      '@media(max-width:749px){#gdx-panel-led-v4-root .gdx-r33-cr02-compact-schema-card .gdx-af04-canvas{width:calc(100% - 24px);max-width:340px;min-height:360px;aspect-ratio:4/3;margin-inline:auto;}#gdx-panel-led-v4-root .gdx-r33-cr02-compact-schema-card .gdx-af04-node.is-light{width:94px;min-width:94px;max-width:94px;padding:8px 7px;}#gdx-panel-led-v4-root .gdx-r33-cr02-compact-schema-card .gdx-af04-node.is-light strong{font-size:10px;line-height:1.15;}#gdx-panel-led-v4-root .gdx-r33-cr02-compact-schema-card .gdx-af04-node.is-light span{font-size:8.8px;line-height:1.2;}#gdx-panel-led-v4-root .gdx-r33-cr02-compact-schema-card .gdx-af04-node.is-light small{display:none;}#gdx-panel-led-v4-root .gdx-r33-cr02-compact-schema-legend{justify-content:center;padding:9px 10px;gap:8px;}#gdx-panel-led-v4-root .gdx-r33-cr02-compact-schema-legend span{font-size:9px;}}',\r\n      '@media(min-width:750px){#gdx-panel-led-v4-root .gdx-af04-canvas{min-height:320px;}#gdx-panel-led-v4-root .gdx-r11-modal-setup-wrap .gdx-af04-canvas{min-height:350px;}}'\r\n    ].join(\"\");\r\n\r\n    document.head.appendChild(style);\r\n  }\r\n\r\n  function verifyTruthModels() {\r\n    var entries = truthEntries();\r\n    var keys = Object.keys(entries);\r\n    var failures = [];\r\n\r\n    keys.forEach(function (key) {\r\n      var model = exactModel(key, entries[key]);\r\n\r\n      if (!model || !model.ok) {\r\n        failures.push(key + \": model\");\r\n        return;\r\n      }\r\n\r\n      if (\r\n        model.lights.some(function (light) {\r\n          return !light.distanceLabel || !light.angleLabel;\r\n        })\r\n      ) {\r\n        failures.push(key + \": light distance/angle\");\r\n      }\r\n\r\n      if (!model.camera.distanceLabel) {\r\n        failures.push(key + \": camera distance\");\r\n      }\r\n    });\r\n\r\n    return {\r\n      count: keys.length,\r\n      failures: failures,\r\n      pass:\r\n        keys.length === 64 &&\r\n        failures.length === 0\r\n    };\r\n  }\r\n\r\n  function debug() {\r\n    var truthAudit = verifyTruthModels();\r\n    var allHosts = hosts();\r\n    var cards = allHosts.map(function (host) {\r\n      return host.querySelector(CARD_SELECTOR);\r\n    }).filter(Boolean);\r\n\r\n    var enhancedCards = cards.filter(function (card) {\r\n      return card.getAttribute(ENHANCED_ATTR) === \"1\";\r\n    });\r\n\r\n    var runtimeFailures = [];\r\n\r\n    enhancedCards.forEach(function (card) {\r\n      var lightNodes = Array.prototype.slice.call(\r\n        card.querySelectorAll(\r\n          '[' + CANVAS_ATTR + '=\"1\"] .gdx-af04-node.is-light'\r\n        )\r\n      );\r\n      var camera = card.querySelector(\r\n        '[' + CANVAS_ATTR + '=\"1\"] .gdx-af04-node.is-camera'\r\n      );\r\n\r\n      if (\r\n        !lightNodes.length ||\r\n        lightNodes.some(function (node) {\r\n          return !clean(node.getAttribute(\"data-gdx-af04-distance\"));\r\n        }) ||\r\n        !camera ||\r\n        !clean(camera.getAttribute(\"data-gdx-af04-distance\"))\r\n      ) {\r\n        runtimeFailures.push(\r\n          clean(\r\n            card.closest(HOST_SELECTOR) &&\r\n            card.closest(HOST_SELECTOR).getAttribute(\r\n              \"data-gdx-panel-r30a-template-key\"\r\n            )\r\n          ) || \"unknown\"\r\n        );\r\n      }\r\n    });\r\n\r\n    var p35Key =\r\n      \"rgb_creative_video_background_color_effect_compact_support_close_range\";\r\n    var p35Model = exactModel(\r\n      p35Key,\r\n      truthEntries()[p35Key]\r\n    );\r\n\r\n    return {\r\n      phase:\r\n        \"PANEL-V4-R32-AF04-DYNAMIC-FALLBACK-DISTANCE-POST-INSTALL-QA\",\r\n      version: VERSION,\r\n      ok:\r\n        truthAudit.pass &&\r\n        !!state.observer &&\r\n        !!document.getElementById(STYLE_ID) &&\r\n        runtimeFailures.length === 0,\r\n      ready: true,\r\n      observerActive: !!state.observer,\r\n      styleReady: !!document.getElementById(STYLE_ID),\r\n      truthLibraryReady: !!truthLibrary(),\r\n      exactTruthModelCount: truthAudit.count,\r\n      exactTruthDistancePass: truthAudit.pass,\r\n      exactTruthFailures: truthAudit.failures,\r\n      p33EngineReady: !!p33Engine(),\r\n      hostCount: allHosts.length,\r\n      enhancedHostCount: enhancedCards.length,\r\n      runtimeDistanceFailures: runtimeFailures,\r\n      mobileDesktopParity: true,\r\n      coordinateSystem: \"canonical_0_100_scaled\",\r\n      p35: p35Model\r\n        ? {\r\n            resolved: true,\r\n            source: p35Model.source,\r\n            lights: p35Model.lights.map(function (light) {\r\n              return {\r\n                role: light.role,\r\n                angle: light.angleLabel,\r\n                distance: light.distanceLabel,\r\n                band: light.band,\r\n                height: light.heightLabel\r\n              };\r\n            }),\r\n            camera: {\r\n              distance: p35Model.camera.distanceLabel,\r\n              band: p35Model.camera.band,\r\n              orientation: p35Model.camera.orientation\r\n            },\r\n            kelvin: p35Model.kelvin\r\n          }\r\n        : { resolved: false },\r\n      state: {\r\n        scanCount: state.scanCount,\r\n        enhanceCount: state.enhanceCount,\r\n        exactCount: state.exactCount,\r\n        derivedCount: state.derivedCount,\r\n        compactRenderCount: state.compactRenderCount,\r\n        compactExactCount: state.compactExactCount,\r\n        compactDerivedCount: state.compactDerivedCount,\r\n        skippedCount: state.skippedCount,\r\n        lastScanAt: state.lastScanAt,\r\n        lastErrors: state.lastErrors.slice()\r\n      },\r\n      noTouch: {\r\n        uiSourceReplaced: false,\r\n        rankingMutation: false,\r\n        scoreMutation: false,\r\n        productMutation: false,\r\n        commerceMutation: false,\r\n        noraMutation: false,\r\n        cdnStateMutation: false\r\n      }\r\n    };\r\n  }\r\n\r\n  function rectOf(node) {\r\n    if (!node || !node.getBoundingClientRect) return null;\r\n    var rect = node.getBoundingClientRect();\r\n    return {\r\n      width: Math.round(rect.width * 100) / 100,\r\n      height: Math.round(rect.height * 100) / 100,\r\n      top: Math.round(rect.top * 100) / 100,\r\n      left: Math.round(rect.left * 100) / 100,\r\n      right: Math.round(rect.right * 100) / 100,\r\n      bottom: Math.round(rect.bottom * 100) / 100\r\n    };\r\n  }\r\n\r\n  function debugCr02SetupIntelligenceSchematic() {\r\n    var modal = document.querySelector('[data-gdx-r11-modal-type=\"setup\"]');\r\n    var host = modal && modal.querySelector(HOST_SELECTOR);\r\n    var slots = modal\r\n      ? Array.prototype.slice.call(modal.querySelectorAll(CR02_SLOT_SELECTOR))\r\n      : [];\r\n    var slot = slots[0] || null;\r\n    var model = host ? modelForHost(host) : null;\r\n    var canvas = slot && slot.querySelector('[' + CANVAS_ATTR + '=\"1\"]');\r\n    var lightNodes = canvas\r\n      ? Array.prototype.slice.call(canvas.querySelectorAll('.gdx-af04-node.is-light'))\r\n      : [];\r\n    var camera = canvas && canvas.querySelector('.gdx-af04-node.is-camera');\r\n    var values = modal && modal.querySelector('[data-gdx-r33-cr02-setup-values=\"1\"]');\r\n    var mobile = window.innerWidth <= 900;\r\n    var slotRect = rectOf(slot);\r\n    var valuesRect = rectOf(values);\r\n    var modelSignature = model && model.ok ? signature(model) : \"\";\r\n\r\n    var checks = {\r\n      installed: true,\r\n      versionPresent: VERSION === \"PANEL-V4-R36-H-R8-06A-PRIMARY-DATA-DRIVEN-GEOMETRY-TRUTH-V1\",\r\n      setupModalOpen: !!modal,\r\n      visualHostPresent: !!host,\r\n      compactSlotCountExactly1: slots.length === 1,\r\n      compactSlotRendered: !!(slot && slot.getAttribute(CR02_RENDERED_ATTR) === \"1\"),\r\n      compactSchemaCardPresent: !!(slot && slot.querySelector('[data-gdx-r33-cr02-compact-schema-card=\"1\"]')),\r\n      compactCanvasPresent: !!canvas,\r\n      compactLightNodesPresent: lightNodes.length > 0,\r\n      compactCameraPresent: !!camera,\r\n      compactDistancesPresent: !!(\r\n        lightNodes.length &&\r\n        lightNodes.every(function (node) {\r\n          return !!clean(node.getAttribute(\"data-gdx-af04-distance\"));\r\n        }) &&\r\n        camera &&\r\n        clean(camera.getAttribute(\"data-gdx-af04-distance\"))\r\n      ),\r\n      modelResolved: !!(model && model.ok),\r\n      compactSignatureMatchesModel: !!(\r\n        slot &&\r\n        modelSignature &&\r\n        slot.getAttribute(CR02_SIGNATURE_ATTR) === modelSignature\r\n      ),\r\n      sourceMatchesModel: !!(\r\n        slot &&\r\n        model &&\r\n        slot.getAttribute(CR02_SOURCE_ATTR) === model.source\r\n      ),\r\n      mobileDesktopParityDeclared: !!(\r\n        slot &&\r\n        slot.getAttribute(\"data-gdx-r33-cr02-mobile-desktop-parity\") === \"1\"\r\n      ),\r\n      setupValuesPresent: !!values,\r\n      desktopTwoColumnLayout: mobile || !!(\r\n        slotRect &&\r\n        valuesRect &&\r\n        Math.abs(slotRect.top - valuesRect.top) <= 4 &&\r\n        slotRect.left < valuesRect.left\r\n      ),\r\n      mobileVerticalLayout: !mobile || !!(\r\n        slotRect &&\r\n        valuesRect &&\r\n        slotRect.top < valuesRect.top &&\r\n        Math.abs(slotRect.width - valuesRect.width) <= 4\r\n      ),\r\n      existingAf04ObserverActive: !!state.observer,\r\n      noNewObserverByCr02: true,\r\n      noIntervalByCr02: true,\r\n      noCdnStateMutationByCr02: true,\r\n      noRankingMutationByCr02: true,\r\n      noScoringMutationByCr02: true,\r\n      noProductMutationByCr02: true,\r\n      noCommerceCartNoraMutationByCr02: true\r\n    };\r\n\r\n    var failed = Object.keys(checks).filter(function (key) {\r\n      return checks[key] !== true;\r\n    });\r\n\r\n    return {\r\n      phase: \"PANEL-V4-R33-CR02-SETUP-INTELLIGENCE-DYNAMIC-SCHEMATIC-LIVE-AUDIT\",\r\n      version: VERSION,\r\n      ok: failed.length === 0,\r\n      checks: checks,\r\n      failed: failed,\r\n      diagnostics: {\r\n        viewport: { width: window.innerWidth, height: window.innerHeight, mobile: mobile },\r\n        source: model ? model.source : \"\",\r\n        sourceLabel: model ? model.sourceLabel : \"\",\r\n        templateKey: model ? model.templateKey : \"\",\r\n        lightCount: lightNodes.length,\r\n        slotRect: slotRect,\r\n        valuesRect: valuesRect,\r\n        state: {\r\n          scanCount: state.scanCount,\r\n          enhanceCount: state.enhanceCount,\r\n          compactRenderCount: state.compactRenderCount,\r\n          compactExactCount: state.compactExactCount,\r\n          compactDerivedCount: state.compactDerivedCount,\r\n          lastErrors: state.lastErrors.slice()\r\n        }\r\n      }\r\n    };\r\n  }\r\n\r\n  function install() {\r\n    installStyle();\r\n\r\n    state.observer = new MutationObserver(function (mutations) {\r\n      var relevant = mutations.some(function (mutation) {\r\n        return mutation.type === \"childList\" ||\r\n          (\r\n            mutation.type === \"attributes\" &&\r\n            /data-gdx-panel-r30a-|class|hidden/.test(\r\n              clean(mutation.attributeName)\r\n            )\r\n          );\r\n      });\r\n\r\n      if (relevant) schedule();\r\n    });\r\n\r\n    state.observer.observe(document.documentElement, {\r\n      subtree: true,\r\n      childList: true,\r\n      attributes: true,\r\n      attributeFilter: [\r\n        \"class\",\r\n        \"hidden\",\r\n        \"data-gdx-panel-r30a-template-key\",\r\n        \"data-gdx-panel-r30a-product-key\",\r\n        \"data-gdx-panel-r30a-state\"\r\n      ]\r\n    });\r\n\r\n    window.addEventListener(\"resize\", function () {\r\n      updateViewportAttributes();\r\n    }, { passive: true });\r\n\r\n    schedule();\r\n  }\r\n\r\n  window.GDX_PANEL_V4_AF04_DYNAMIC_FALLBACK_DISTANCE_API = {\r\n    version: VERSION,\r\n    scan: scan,\r\n    schedule: schedule,\r\n    enhanceHost: enhanceHost,\r\n    modelForHost: modelForHost,\r\n    exactModelForTemplate: function (templateKey) {\r\n      return exactModel(\r\n        clean(templateKey),\r\n        truthEntries()[clean(templateKey)]\r\n      );\r\n    },\r\n    compactSchemaHtml: compactSchemaHtml,\r\n    enhanceCompactSlotsForHost: enhanceCompactSlotsForHost,\r\n    debugCr02: debugCr02SetupIntelligenceSchematic,\r\n    debug: debug\r\n  };\r\n\r\n  window.debugPanelV4AF04DynamicFallbackDistance = debug;\r\n  window.debugPanelV4R33CR02SetupIntelligenceSchematic =\r\n    debugCr02SetupIntelligenceSchematic;\r\n\r\n  if (document.readyState === \"loading\") {\r\n    document.addEventListener(\"DOMContentLoaded\", install, { once: true });\r\n  } else {\r\n    install();\r\n  }\r\n})(window, document);\r\n\r\n/* ============================================================================\r\n * PANEL LED V4 \u2014 R36-H R8-06B\r\n * COMPARISON SETUP GEOMETRY TRUTH BRIDGE\r\n *\r\n * TARGETS\r\n * - P28 \u00D6NER\u0130LEN KURULUM\r\n * - P31 ALTERNAT\u0130F \u00DCR\u00DCN KURULUMU\r\n *\r\n * SOURCE CHAIN\r\n * product\r\n * -> GDX_PANEL_V4_R32_AF02_N1_API.resolveTemplateForRow()\r\n * -> AF04 modelForHost()\r\n * -> approvedSetupTruth when available\r\n * -> P33 product profile only as deferred fallback\r\n *\r\n * NO TOUCH\r\n * - ranking\r\n * - scoring\r\n * - compare result\r\n * - product order\r\n * - commerce\r\n * - cart\r\n * - share\r\n * - NORA\r\n * ========================================================================== */\r\n(function (window, document) {\r\n  \"use strict\";\r\n\r\n  var VERSION =\r\n    \"PANEL-V4-R36-H-R8-06B-COMPARISON-SETUP-GEOMETRY-TRUTH-V1\";\r\n\r\n  var READY_KEY =\r\n    \"GDX_PANEL_V4_R36_H_R8_06B_COMPARISON_GEOMETRY_READY\";\r\n\r\n  var ROOT_ID = \"gdx-panel-led-v4-root\";\r\n\r\n  var P28_SELECTOR =\r\n    '[data-gdx-panel-p28-schematic=\"1\"]';\r\n\r\n  var P31_SELECTOR =\r\n    '[data-gdx-panel-p31-alt-schematic=\"1\"]';\r\n\r\n  var APPLIED_ATTR =\r\n    \"data-gdx-r8-06b-geometry\";\r\n\r\n  var SIGNATURE_ATTR =\r\n    \"data-gdx-r8-06b-signature\";\r\n\r\n  var STYLE_ID =\r\n    \"gdx-panel-v4-r8-06b-comparison-geometry-style\";\r\n\r\n  if (window[READY_KEY]) return;\r\n  window[READY_KEY] = true;\r\n\r\n  var state = {\r\n    scheduled: false,\r\n    observer: null,\r\n    renderCount: 0,\r\n    winnerRenderCount: 0,\r\n    alternativeRenderCount: 0,\r\n    lastRenderAt: \"\",\r\n    lastError: \"\",\r\n    lastPair: null\r\n  };\r\n\r\n  function clean(value) {\r\n    return String(value == null ? \"\" : value)\r\n      .replace(/\\u00a0/g, \" \")\r\n      .replace(/\\u202f/g, \" \")\r\n      .replace(/\\s+/g, \" \")\r\n      .trim();\r\n  }\r\n\r\n  function esc(value) {\r\n    return clean(value).replace(/[&<>\"']/g, function (char) {\r\n      return ({\r\n        \"&\": \"&amp;\",\r\n        \"<\": \"&lt;\",\r\n        \">\": \"&gt;\",\r\n        '\"': \"&quot;\",\r\n        \"'\": \"&#39;\"\r\n      })[char];\r\n    });\r\n  }\r\n\r\n  function normalize(value) {\r\n    return clean(value)\r\n      .toLocaleLowerCase(\"tr-TR\")\r\n      .replace(/[^a-z0-9\u011F\u00FC\u015F\u0131\u00F6\u00E7]+/g, \"-\")\r\n      .replace(/-+/g, \"-\")\r\n      .replace(/^-|-$/g, \"\");\r\n  }\r\n\r\n  function finite(value) {\r\n    return Number.isFinite(Number(value));\r\n  }\r\n\r\n  function coord(value) {\r\n    var number = Number(value);\r\n\r\n    if (!Number.isFinite(number)) {\r\n      return \"50\";\r\n    }\r\n\r\n    return String(\r\n      Math.round(number * 1000) / 1000\r\n    );\r\n  }\r\n\r\n  function root() {\r\n    return document.getElementById(ROOT_ID);\r\n  }\r\n\r\n  function products() {\r\n    var api = window.GDX_PANEL_LED_V4 || {};\r\n    var appState = api.state || {};\r\n\r\n    return Array.isArray(appState.products)\r\n      ? appState.products\r\n      : [];\r\n  }\r\n\r\n  function productKey(product) {\r\n    product = product || {};\r\n\r\n    return clean(\r\n      product.key ||\r\n      product.handle ||\r\n      product.id ||\r\n      product.productKey ||\r\n      product.title\r\n    );\r\n  }\r\n\r\n  function productTitle(product) {\r\n    product = product || {};\r\n\r\n    return clean(\r\n      product.smartTitle ||\r\n      product.shortTitle ||\r\n      product.displayTitle ||\r\n      product.title\r\n    );\r\n  }\r\n\r\n  function findProduct(key, title) {\r\n    var wantedKey = normalize(key);\r\n    var wantedTitle = normalize(title);\r\n    var list = products();\r\n    var exact = null;\r\n    var titleMatch = null;\r\n\r\n    list.some(function (product) {\r\n      var keys = [\r\n        product.key,\r\n        product.handle,\r\n        product.id,\r\n        product.productKey\r\n      ].map(normalize).filter(Boolean);\r\n\r\n      if (\r\n        wantedKey &&\r\n        keys.some(function (candidate) {\r\n          return (\r\n            candidate === wantedKey ||\r\n            candidate.indexOf(wantedKey) > -1 ||\r\n            wantedKey.indexOf(candidate) > -1\r\n          );\r\n        })\r\n      ) {\r\n        exact = product;\r\n        return true;\r\n      }\r\n\r\n      return false;\r\n    });\r\n\r\n    if (exact) return exact;\r\n\r\n    list.some(function (product) {\r\n      var titles = [\r\n        product.smartTitle,\r\n        product.shortTitle,\r\n        product.displayTitle,\r\n        product.title\r\n      ].map(normalize).filter(Boolean);\r\n\r\n      if (\r\n        wantedTitle &&\r\n        titles.some(function (candidate) {\r\n          return (\r\n            candidate === wantedTitle ||\r\n            candidate.indexOf(wantedTitle) > -1 ||\r\n            wantedTitle.indexOf(candidate) > -1\r\n          );\r\n        })\r\n      ) {\r\n        titleMatch = product;\r\n        return true;\r\n      }\r\n\r\n      return false;\r\n    });\r\n\r\n    return titleMatch;\r\n  }\r\n\r\n  function af02Api() {\r\n    return window.GDX_PANEL_V4_R32_AF02_N1_API || null;\r\n  }\r\n\r\n  function af04Api() {\r\n    return (\r\n      window.GDX_PANEL_V4_AF04_DYNAMIC_FALLBACK_DISTANCE_API ||\r\n      null\r\n    );\r\n  }\r\n\r\n  function altPreviewApi() {\r\n    return (\r\n      window.GDX_PANEL_LED_V4_P31_ALT_PRODUCT_SETUP_PREVIEW ||\r\n      null\r\n    );\r\n  }\r\n\r\n  function schemaTitle(section) {\r\n    if (!section) return \"\";\r\n\r\n    var title = section.querySelector(\r\n      \".gdx-p33-identity-title\"\r\n    );\r\n\r\n    return title\r\n      ? clean(title.textContent)\r\n      : \"\";\r\n  }\r\n\r\n  function currentPairPreview() {\r\n    var api = altPreviewApi();\r\n\r\n    if (\r\n      !api ||\r\n      typeof api.buildAlternativePreview !== \"function\"\r\n    ) {\r\n      return null;\r\n    }\r\n\r\n    try {\r\n      return api.buildAlternativePreview({\r\n        viewportMode:\r\n          window.innerWidth <= 749\r\n            ? \"mobile\"\r\n            : \"desktop\"\r\n      });\r\n    } catch (error) {\r\n      state.lastError =\r\n        \"alternative-preview: \" +\r\n        clean(error && error.message || error);\r\n\r\n      return null;\r\n    }\r\n  }\r\n\r\n  function resolvePair() {\r\n    var preview = currentPairPreview();\r\n\r\n    var p28 = document.querySelector(P28_SELECTOR);\r\n    var p31 = document.querySelector(P31_SELECTOR);\r\n\r\n    var winnerKey =\r\n      preview &&\r\n      preview.winner\r\n        ? preview.winner.productKey\r\n        : \"\";\r\n\r\n    var winnerTitle =\r\n      preview &&\r\n      preview.winner\r\n        ? preview.winner.title\r\n        : schemaTitle(p28);\r\n\r\n    var alternativeKey =\r\n      preview &&\r\n      preview.alternative\r\n        ? preview.alternative.productKey\r\n        : \"\";\r\n\r\n    var alternativeTitle =\r\n      preview &&\r\n      preview.alternative\r\n        ? preview.alternative.title\r\n        : schemaTitle(p31);\r\n\r\n    var winner =\r\n      findProduct(\r\n        winnerKey,\r\n        winnerTitle || schemaTitle(p28)\r\n      );\r\n\r\n    var alternative =\r\n      findProduct(\r\n        alternativeKey,\r\n        alternativeTitle || schemaTitle(p31)\r\n      );\r\n\r\n    if (!winner || !alternative) {\r\n      return null;\r\n    }\r\n\r\n    return {\r\n      preview: preview,\r\n      winner: winner,\r\n      alternative: alternative\r\n    };\r\n  }\r\n\r\n\r\n  /* =========================================================\r\n     PANEL-V4-R36-H-R8-06B-R2-PRODUCT-AWARE-RESOLVER-BRIDGE-V1\r\n\r\n     CURRENT PRODUCT CONTRACT:\r\n       product.specs.family\r\n       product.specs.powerW\r\n       product.specs.hasRgb\r\n\r\n     LEGACY R30A RESOLVER CONTRACT:\r\n       row.family\r\n       row.power\r\n     ========================================================= */\r\n\r\n  function r806bR2SpecsOf(product) {\r\n    product = product || {};\r\n    return product.specs || product.panelSpecs || {};\r\n  }\r\n\r\n  function r806bR2FamilyOf(product) {\r\n    product = product || {};\r\n\r\n    var specs =\r\n      r806bR2SpecsOf(product);\r\n\r\n    var raw =\r\n      clean(\r\n        specs.family ||\r\n        product.family ||\r\n        product.productFamily ||\r\n        \"\"\r\n      ).toLocaleLowerCase(\"tr-TR\");\r\n\r\n    var text =\r\n      clean([\r\n        raw,\r\n        specs.hasRgb === true ? \"rgb\" : \"\",\r\n        product.title,\r\n        product.smartTitle,\r\n        product.handle\r\n      ].join(\" \"))\r\n      .toLocaleLowerCase(\"tr-TR\");\r\n\r\n    if (\r\n      raw === \"rgb\" ||\r\n      specs.hasRgb === true ||\r\n      /\\brgb\\b|rgbw|rgbww|rgbwy|\\bhsi\\b|full[- ]?color/.test(text)\r\n    ) {\r\n      return \"rgb\";\r\n    }\r\n\r\n    if (\r\n      raw === \"bicolor\" ||\r\n      raw === \"bi-color\" ||\r\n      /bi[- ]?color|bicolor|\\bcct\\b|\u00E7ift renk|cift renk/.test(text)\r\n    ) {\r\n      return \"bicolor\";\r\n    }\r\n\r\n    if (\r\n      raw === \"daylight\" ||\r\n      raw === \"daylight_or_fixed_white\" ||\r\n      /daylight|5600k|g\u00FCn \u0131\u015F\u0131\u011F\u0131|gun isigi/.test(text)\r\n    ) {\r\n      return \"daylight\";\r\n    }\r\n\r\n    return raw || \"unknown\";\r\n  }\r\n\r\n  function r806bR2PowerOf(product) {\r\n    product = product || {};\r\n\r\n    var specs =\r\n      r806bR2SpecsOf(product);\r\n\r\n    var values = [\r\n      specs.powerW,\r\n      product.powerW,\r\n      product.power\r\n    ];\r\n\r\n    for (\r\n      var i = 0;\r\n      i < values.length;\r\n      i += 1\r\n    ) {\r\n      var value =\r\n        Number(values[i] || 0);\r\n\r\n      if (\r\n        Number.isFinite(value) &&\r\n        value > 0\r\n      ) {\r\n        return value;\r\n      }\r\n    }\r\n\r\n    var text =\r\n      clean([\r\n        product.smartTitle,\r\n        product.shortTitle,\r\n        product.title,\r\n        product.handle\r\n      ].join(\" \"));\r\n\r\n    var matches =\r\n      text.match(\r\n        /(\\d{1,4})\\s*W\\b/ig\r\n      ) || [];\r\n\r\n    var numbers =\r\n      matches\r\n        .map(function (item) {\r\n          var match =\r\n            String(item).match(\r\n              /\\d{1,4}/\r\n            );\r\n\r\n          return match\r\n            ? Number(match[0])\r\n            : 0;\r\n        })\r\n        .filter(function (value) {\r\n          return (\r\n            value > 0 &&\r\n            value < 2000\r\n          );\r\n        });\r\n\r\n    return numbers.length\r\n      ? Math.max.apply(null, numbers)\r\n      : 0;\r\n  }\r\n\r\n  function r806bR2ResolverRow(product) {\r\n    return Object.assign(\r\n      {},\r\n      product || {},\r\n      {\r\n        family:\r\n          r806bR2FamilyOf(product),\r\n\r\n        power:\r\n          r806bR2PowerOf(product),\r\n\r\n        powerW:\r\n          r806bR2PowerOf(product)\r\n      }\r\n    );\r\n  }\r\n\r\n  function resolveGeometry(product, slot) {\r\n    var resolver = af02Api();\r\n    var geometry = af04Api();\r\n\r\n    if (\r\n      !product ||\r\n      !resolver ||\r\n      typeof resolver.resolveTemplateForRow !== \"function\" ||\r\n      !geometry ||\r\n      typeof geometry.modelForHost !== \"function\"\r\n    ) {\r\n      return null;\r\n    }\r\n\r\n    var resolved = null;\r\n\r\n    try {\r\n      resolved =\r\n        resolver.resolveTemplateForRow(r806bR2ResolverRow(product));\r\n    } catch (error) {\r\n      state.lastError =\r\n        \"template-resolver: \" +\r\n        clean(error && error.message || error);\r\n\r\n      return null;\r\n    }\r\n\r\n    var template =\r\n      resolved && resolved.template\r\n        ? resolved.template\r\n        : null;\r\n\r\n    var templateKey =\r\n      clean(template && template.templateKey);\r\n\r\n    if (!templateKey) {\r\n      return null;\r\n    }\r\n\r\n    /*\r\n     * AF04 modelForHost() mevcut \u00FCretim motorudur.\r\n     * DOM'a host eklenmez.\r\n     * Yaln\u0131z AF04 resolver'\u0131na gerekli iki canonical attribute verilir.\r\n     */\r\n    var virtualHost =\r\n      document.createElement(\"div\");\r\n\r\n    virtualHost.setAttribute(\r\n      \"data-gdx-panel-r30a-template-key\",\r\n      templateKey\r\n    );\r\n\r\n    virtualHost.setAttribute(\r\n      \"data-gdx-panel-r30a-product-key\",\r\n      productKey(product)\r\n    );\r\n\r\n    var model = null;\r\n\r\n    try {\r\n      model =\r\n        geometry.modelForHost(virtualHost);\r\n    } catch (error) {\r\n      state.lastError =\r\n        \"af04-model: \" +\r\n        clean(error && error.message || error);\r\n\r\n      return null;\r\n    }\r\n\r\n    if (!model || !model.ok) {\r\n      return null;\r\n    }\r\n\r\n    return {\r\n      slot: slot,\r\n      product: product,\r\n      productKey: productKey(product),\r\n      productTitle: productTitle(product),\r\n      template: template,\r\n      templateKey: templateKey,\r\n      resolvedBy:\r\n        clean(resolved && resolved.resolvedBy),\r\n      model: model\r\n    };\r\n  }\r\n\r\n  function lightClass(light) {\r\n    var value =\r\n      clean(light && light.className);\r\n\r\n    if (/is-rgb/.test(value)) {\r\n      return \"is-rgb\";\r\n    }\r\n\r\n    if (/is-fill/.test(value)) {\r\n      return \"is-fill\";\r\n    }\r\n\r\n    if (/is-support/.test(value)) {\r\n      return \"is-accent\";\r\n    }\r\n\r\n    return \"is-light\";\r\n  }\r\n\r\n  function lightDetail(light) {\r\n    var parts = [];\r\n\r\n    if (clean(light.band)) {\r\n      parts.push(clean(light.band));\r\n    }\r\n\r\n    if (clean(light.heightLabel)) {\r\n      parts.push(\r\n        \"y\u00FCkseklik \" +\r\n        clean(light.heightLabel)\r\n      );\r\n    }\r\n\r\n    return parts.join(\" \u00B7 \");\r\n  }\r\n\r\n  function lightNodeHtml(light, index) {\r\n    var x = coord(light.x);\r\n    var y = coord(light.y);\r\n\r\n    var meta = [\r\n      clean(light.angleLabel),\r\n      clean(light.distanceLabel)\r\n    ].filter(Boolean).join(\" \u00B7 \");\r\n\r\n    var detail =\r\n      lightDetail(light);\r\n\r\n    return '' +\r\n      '<div class=\"gdx-p28-schema-node is-light ' +\r\n        esc(lightClass(light)) +\r\n        ' is-r8-06b-truth-node\" ' +\r\n        'data-gdx-r8-06b-node=\"light\" ' +\r\n        'data-gdx-r8-06b-index=\"' +\r\n          esc(index) +\r\n        '\" ' +\r\n        'data-gdx-r8-06b-role=\"' +\r\n          esc(light.role) +\r\n        '\" ' +\r\n        'data-gdx-r8-06b-angle=\"' +\r\n          esc(light.angleLabel) +\r\n        '\" ' +\r\n        'data-gdx-r8-06b-distance=\"' +\r\n          esc(light.distanceLabel) +\r\n        '\" ' +\r\n        'data-gdx-r8-06b-band=\"' +\r\n          esc(light.band) +\r\n        '\" ' +\r\n        'data-gdx-r8-06b-height=\"' +\r\n          esc(light.heightLabel) +\r\n        '\" ' +\r\n        'data-gdx-r8-06b-x=\"' +\r\n          esc(x) +\r\n        '\" ' +\r\n        'data-gdx-r8-06b-y=\"' +\r\n          esc(y) +\r\n        '\" ' +\r\n        'style=\"left:' +\r\n          esc(x) +\r\n        '%;top:' +\r\n          esc(y) +\r\n        '%;\">' +\r\n\r\n        '<span>' +\r\n          esc(light.role || (\"I\u015F\u0131k \" + (index + 1))) +\r\n        '</span>' +\r\n\r\n        (\r\n          meta\r\n            ? '<em>' + esc(meta) + '</em>'\r\n            : ''\r\n        ) +\r\n\r\n        (\r\n          detail\r\n            ? '<small>' + esc(detail) + '</small>'\r\n            : ''\r\n        ) +\r\n      '</div>';\r\n  }\r\n\r\n  function subjectNodeHtml(model) {\r\n    var subject =\r\n      model.subject || {\r\n        x: 50,\r\n        y: 50\r\n      };\r\n\r\n    return '' +\r\n      '<div class=\"gdx-p28-schema-node is-subject is-r8-06b-truth-node\" ' +\r\n        'data-gdx-r8-06b-node=\"subject\" ' +\r\n        'data-gdx-r8-06b-x=\"' +\r\n          esc(coord(subject.x)) +\r\n        '\" ' +\r\n        'data-gdx-r8-06b-y=\"' +\r\n          esc(coord(subject.y)) +\r\n        '\" ' +\r\n        'style=\"left:' +\r\n          esc(coord(subject.x)) +\r\n        '%;top:' +\r\n          esc(coord(subject.y)) +\r\n        '%;\">' +\r\n        '<span>' +\r\n          esc(model.targetLabel || \"Konu/\u00DCr\u00FCn\") +\r\n        '</span>' +\r\n      '</div>';\r\n  }\r\n\r\n  function cameraNodeHtml(model) {\r\n    var camera =\r\n      model.camera || {};\r\n\r\n    var detail = [\r\n      clean(camera.band),\r\n      clean(camera.orientation)\r\n    ].filter(Boolean).join(\" \u00B7 \");\r\n\r\n    return '' +\r\n      '<div class=\"gdx-p28-schema-node is-camera is-r8-06b-truth-node\" ' +\r\n        'data-gdx-r8-06b-node=\"camera\" ' +\r\n        'data-gdx-r8-06b-distance=\"' +\r\n          esc(camera.distanceLabel) +\r\n        '\" ' +\r\n        'data-gdx-r8-06b-band=\"' +\r\n          esc(camera.band) +\r\n        '\" ' +\r\n        'data-gdx-r8-06b-x=\"' +\r\n          esc(coord(camera.x)) +\r\n        '\" ' +\r\n        'data-gdx-r8-06b-y=\"' +\r\n          esc(coord(camera.y)) +\r\n        '\" ' +\r\n        'style=\"left:' +\r\n          esc(coord(camera.x)) +\r\n        '%;top:' +\r\n          esc(coord(camera.y)) +\r\n        '%;\">' +\r\n        '<span>Kamera</span>' +\r\n        (\r\n          camera.distanceLabel\r\n            ? '<em>' +\r\n                esc(camera.distanceLabel) +\r\n              '</em>'\r\n            : ''\r\n        ) +\r\n        (\r\n          detail\r\n            ? '<small>' +\r\n                esc(detail) +\r\n              '</small>'\r\n            : ''\r\n        ) +\r\n      '</div>';\r\n  }\r\n\r\n  function connectorsHtml(model) {\r\n    var subject =\r\n      model.subject || {\r\n        x: 50,\r\n        y: 50\r\n      };\r\n\r\n    var lines =\r\n      (model.lights || [])\r\n        .map(function (light) {\r\n          return '' +\r\n            '<line class=\"gdx-r8-06b-line is-light\" ' +\r\n              'x1=\"' + esc(coord(light.x)) + '\" ' +\r\n              'y1=\"' + esc(coord(light.y)) + '\" ' +\r\n              'x2=\"' + esc(coord(subject.x)) + '\" ' +\r\n              'y2=\"' + esc(coord(subject.y)) + '\"></line>';\r\n        })\r\n        .join(\"\");\r\n\r\n    if (model.camera) {\r\n      lines +=\r\n        '<line class=\"gdx-r8-06b-line is-camera\" ' +\r\n          'x1=\"' + esc(coord(model.camera.x)) + '\" ' +\r\n          'y1=\"' + esc(coord(model.camera.y)) + '\" ' +\r\n          'x2=\"' + esc(coord(subject.x)) + '\" ' +\r\n          'y2=\"' + esc(coord(subject.y)) + '\"></line>';\r\n    }\r\n\r\n    return '' +\r\n      '<svg class=\"gdx-r8-06b-connectors\" ' +\r\n        'viewBox=\"0 0 100 100\" ' +\r\n        'preserveAspectRatio=\"none\" ' +\r\n        'aria-hidden=\"true\">' +\r\n        lines +\r\n      '</svg>';\r\n  }\r\n\r\n  function canvasHtml(model) {\r\n    return (\r\n      connectorsHtml(model) +\r\n      (model.lights || [])\r\n        .map(lightNodeHtml)\r\n        .join(\"\") +\r\n      subjectNodeHtml(model) +\r\n      cameraNodeHtml(model)\r\n    );\r\n  }\r\n\r\n  /* =========================================================\r\n     PANEL-V4-R36-H-R8-06D-SETUP-COUNT-CUSTOMER-LANGUAGE-PARITY-V1\r\n\r\n     COPY PARITY ONLY:\r\n     - Render edilen ger\u00E7ek light node say\u0131s\u0131 g\u00F6r\u00FCn\u00FCr setup say\u0131s\u0131n\u0131n sahibidir.\r\n     - Key / Fill gibi i\u00E7 teknik etiketler m\u00FC\u015Fteri dilinde T\u00FCrk\u00E7ele\u015Ftirilir.\r\n     - Geometri, resolver, ranking, score ve \u00FCr\u00FCn s\u0131ras\u0131 de\u011Fi\u015Ftirilmez.\r\n     ========================================================= */\r\n\r\n  function r806dCustomerRoleLabel(role, light) {\r\n    var raw = clean(role);\r\n    var value = (\r\n      raw + \" \" +\r\n      clean(light && light.className) + \" \" +\r\n      clean(light && light.colorMode)\r\n    ).toLocaleLowerCase(\"tr-TR\");\r\n\r\n    if (/rgb/.test(value)) return \"RGB Arka / Kenar\";\r\n    if (/fill|dolgu/.test(value)) return \"Dolgu I\u015F\u0131\u011F\u0131\";\r\n    if (/key|ana \u0131\u015F\u0131k|main light/.test(value)) return \"Ana I\u015F\u0131k\";\r\n    if (/compact|kompakt|support|destek/.test(value)) return \"Kompakt Destek\";\r\n    if (/rim|kenar|hair|sa\u00E7/.test(value)) return \"Kenar / Sa\u00E7 I\u015F\u0131\u011F\u0131\";\r\n    if (/background|arka plan|fon/.test(value)) return \"Arka Plan I\u015F\u0131\u011F\u0131\";\r\n\r\n    return raw || \"I\u015F\u0131k\";\r\n  }\r\n\r\n  function r806dSetupLabelFromModel(model) {\r\n    var lights =\r\n      model && Array.isArray(model.lights)\r\n        ? model.lights\r\n        : [];\r\n\r\n    var count = lights.length;\r\n    if (!count) return \"\";\r\n\r\n    var roles = lights.map(function (light) {\r\n      return r806dCustomerRoleLabel(\r\n        light && light.role,\r\n        light\r\n      );\r\n    });\r\n\r\n    var roleText = roles.join(\" \");\r\n\r\n    if (/RGB Arka \\/ Kenar/.test(roleText)) {\r\n      return (\r\n        count +\r\n        \" I\u015F\u0131kl\u0131 Ana I\u015F\u0131k + RGB Arka / Kenar Kurulumu\"\r\n      );\r\n    }\r\n\r\n    if (\r\n      count >= 3 &&\r\n      /Dolgu I\u015F\u0131\u011F\u0131/.test(roleText) &&\r\n      /Kenar \\/ Sa\u00E7 I\u015F\u0131\u011F\u0131|Arka Plan I\u015F\u0131\u011F\u0131/.test(roleText)\r\n    ) {\r\n      return (\r\n        count +\r\n        \" I\u015F\u0131kl\u0131 Ana I\u015F\u0131k + Dolgu + Kenar Kurulumu\"\r\n      );\r\n    }\r\n\r\n    if (/Dolgu I\u015F\u0131\u011F\u0131/.test(roleText)) {\r\n      return (\r\n        count +\r\n        \" I\u015F\u0131kl\u0131 Ana I\u015F\u0131k + Dolgu Kurulumu\"\r\n      );\r\n    }\r\n\r\n    if (/Kompakt Destek/.test(roleText)) {\r\n      return (\r\n        count +\r\n        \" I\u015F\u0131kl\u0131 Ana I\u015F\u0131k + Destek Kurulumu\"\r\n      );\r\n    }\r\n\r\n    return count + \" I\u015F\u0131kl\u0131 Ana I\u015F\u0131k Kurulumu\";\r\n  }\r\n\r\n  function r806dReplaceSetupPhrase(node, expected) {\r\n    if (!node || !expected) return false;\r\n\r\n    var value = String(node.textContent || \"\");\r\n    var pattern =\r\n      /\\d+\\s+I\u015F\u0131kl\u0131[^\u00B7\\n\\r]*?Kurulumu/g;\r\n\r\n    if (!pattern.test(value)) return false;\r\n\r\n    pattern.lastIndex = 0;\r\n\r\n    var next = value.replace(pattern, expected);\r\n    if (next === value) return false;\r\n\r\n    node.textContent = next;\r\n    return true;\r\n  }\r\n\r\n  function r806dSyncWinnerSetupParity(rootNode, model) {\r\n    var expected =\r\n      r806dSetupLabelFromModel(model);\r\n\r\n    if (!rootNode || !expected) {\r\n      return {\r\n        applicable: false,\r\n        expected: expected,\r\n        changed: 0\r\n      };\r\n    }\r\n\r\n    var roleAnchor =\r\n      rootNode.querySelector(\r\n        '[data-p27-block=\"role_setup_preview\"] p,' +\r\n        '.is-p27-role-summary p'\r\n      );\r\n\r\n    var winnerSection =\r\n      rootNode.querySelector(\r\n        '[data-gdx-panel-p28-schematic=\"1\"]'\r\n      );\r\n\r\n    var winnerSummary =\r\n      winnerSection\r\n        ? winnerSection.querySelector(\r\n            \".gdx-p28-schema-summary\"\r\n          )\r\n        : null;\r\n\r\n    var changed = 0;\r\n\r\n    if (\r\n      r806dReplaceSetupPhrase(\r\n        roleAnchor,\r\n        expected\r\n      )\r\n    ) changed += 1;\r\n\r\n    if (\r\n      r806dReplaceSetupPhrase(\r\n        winnerSummary,\r\n        expected\r\n      )\r\n    ) changed += 1;\r\n\r\n    if (roleAnchor) {\r\n      roleAnchor.setAttribute(\r\n        \"data-gdx-r8-06d-setup-parity\",\r\n        roleAnchor.textContent.indexOf(expected) !== -1\r\n          ? \"synced\"\r\n          : \"pending\"\r\n      );\r\n    }\r\n\r\n    if (winnerSummary) {\r\n      winnerSummary.setAttribute(\r\n        \"data-gdx-r8-06d-setup-parity\",\r\n        winnerSummary.textContent.indexOf(expected) !== -1\r\n          ? \"synced\"\r\n          : \"pending\"\r\n      );\r\n    }\r\n\r\n    return {\r\n      applicable: true,\r\n      expected: expected,\r\n      lightCount:\r\n        model && Array.isArray(model.lights)\r\n          ? model.lights.length\r\n          : 0,\r\n      changed: changed,\r\n      roleAnchorPresent: !!roleAnchor,\r\n      winnerSummaryPresent: !!winnerSummary,\r\n      roleAnchorSynced:\r\n        !roleAnchor ||\r\n        roleAnchor.textContent.indexOf(expected) !== -1,\r\n      winnerSummarySynced:\r\n        !winnerSummary ||\r\n        winnerSummary.textContent.indexOf(expected) !== -1\r\n    };\r\n  }\r\n\r\n  function summaryItems(model) {\r\n    var rows = [];\r\n\r\n    (model.lights || [])\r\n      .forEach(function (light) {\r\n        var values = [\r\n          clean(light.angleLabel),\r\n          clean(light.distanceLabel),\r\n          clean(light.band),\r\n          clean(light.heightLabel)\r\n            ? \"y\u00FCkseklik \" +\r\n              clean(light.heightLabel)\r\n            : \"\"\r\n        ].filter(Boolean);\r\n\r\n        rows.push(\r\n          r806dCustomerRoleLabel(\r\n            light && light.role,\r\n            light\r\n          ) +\r\n          \": \" +\r\n          values.join(\" \u00B7 \")\r\n        );\r\n      });\r\n\r\n    if (model.camera) {\r\n      rows.push(\r\n        \"Kamera: \" +\r\n        [\r\n          clean(model.camera.distanceLabel),\r\n          clean(model.camera.band),\r\n          clean(model.camera.orientation)\r\n        ].filter(Boolean).join(\" \u00B7 \")\r\n      );\r\n    }\r\n\r\n    return rows;\r\n  }\r\n\r\n  function summaryHtml(model) {\r\n    return summaryItems(model)\r\n      .map(function (text, index) {\r\n        return '' +\r\n          '<li data-gdx-r8-06b-summary-row=\"' +\r\n            esc(index) +\r\n          '\">' +\r\n            '<b>' +\r\n              esc(index + 1) +\r\n            '</b>' +\r\n            '<span>' +\r\n              esc(text) +\r\n            '</span>' +\r\n          '</li>';\r\n      })\r\n      .join(\"\");\r\n  }\r\n\r\n  /* =========================================================\r\n     PANEL-V4-R36-H-R8-06B-R4-SEMANTIC-SETUP-LABEL-V1\r\n\r\n     SEMANTIC COPY ONLY:\r\n     - RGB geometri g\u00F6r\u00FCn\u00FCyorsa legacy \"Ana I\u015F\u0131k + Dolgu\" kurulum ad\u0131\r\n       ger\u00E7ek \u0131\u015F\u0131k rol\u00FCyle e\u015Fle\u015Ftirilir.\r\n     - Geometri, resolver, skor, ranking ve \u00FCr\u00FCn s\u0131ras\u0131 de\u011Fi\u015Ftirilmez.\r\n     ========================================================= */\r\n\r\n  function r806bR4HasRgbLight(model) {\r\n    return !!(\r\n      model &&\r\n      Array.isArray(model.lights) &&\r\n      model.lights.some(function (light) {\r\n        var text = clean([\r\n          light && light.role,\r\n          light && light.className,\r\n          light && light.colorMode\r\n        ].join(\" \"));\r\n\r\n        return /rgb/i.test(text);\r\n      })\r\n    );\r\n  }\r\n\r\n  function r806bR4SetupLabel(model) {\r\n    if (!r806bR4HasRgbLight(model)) {\r\n      return \"\";\r\n    }\r\n\r\n    var count =\r\n      model &&\r\n      Array.isArray(model.lights)\r\n        ? model.lights.length\r\n        : 0;\r\n\r\n    if (!count) {\r\n      count = 2;\r\n    }\r\n\r\n    return (\r\n      count +\r\n      \" I\u015F\u0131kl\u0131 Ana I\u015F\u0131k + RGB Arka / Kenar Kurulumu\"\r\n    );\r\n  }\r\n\r\n  function r806bR4SyncSemanticSetupLabel(section, model) {\r\n    var expected =\r\n      r806bR4SetupLabel(model);\r\n\r\n    if (!section || !expected) {\r\n      return {\r\n        applicable: false,\r\n        expected: expected,\r\n        changed: 0,\r\n        legacyRemaining: false,\r\n        expectedPresent: true\r\n      };\r\n    }\r\n\r\n    var legacyPattern =\r\n      /\\d+\\s+I\u015F\u0131kl\u0131 Ana I\u015F\u0131k \\+ Dolgu Kurulumu/g;\r\n\r\n    var changed = 0;\r\n\r\n    var walker =\r\n      document.createTreeWalker(\r\n        section,\r\n        window.NodeFilter\r\n          ? window.NodeFilter.SHOW_TEXT\r\n          : 4,\r\n        null\r\n      );\r\n\r\n    var node = walker.nextNode();\r\n\r\n    while (node) {\r\n      var value =\r\n        String(node.nodeValue || \"\");\r\n\r\n      if (legacyPattern.test(value)) {\r\n        legacyPattern.lastIndex = 0;\r\n        node.nodeValue =\r\n          value.replace(\r\n            legacyPattern,\r\n            expected\r\n          );\r\n        changed += 1;\r\n      }\r\n\r\n      legacyPattern.lastIndex = 0;\r\n      node = walker.nextNode();\r\n    }\r\n\r\n    var sectionText =\r\n      clean(section.textContent);\r\n\r\n    var legacyRemaining =\r\n      /\\d+\\s+I\u015F\u0131kl\u0131 Ana I\u015F\u0131k \\+ Dolgu Kurulumu/.test(\r\n        sectionText\r\n      );\r\n\r\n    var expectedPresent =\r\n      sectionText.indexOf(expected) !== -1;\r\n\r\n    section.setAttribute(\r\n      \"data-gdx-r8-06b-r4-semantic-copy\",\r\n      (\r\n        !legacyRemaining &&\r\n        expectedPresent\r\n      )\r\n        ? \"rgb-synced\"\r\n        : \"rgb-pending\"\r\n    );\r\n\r\n    section.setAttribute(\r\n      \"data-gdx-r8-06b-r4-expected-setup\",\r\n      expected\r\n    );\r\n\r\n    return {\r\n      applicable: true,\r\n      expected: expected,\r\n      changed: changed,\r\n      legacyRemaining: legacyRemaining,\r\n      expectedPresent: expectedPresent\r\n    };\r\n  }\r\n\r\n  /* =========================================================\r\n     PANEL-V4-R36-H-R8-06B-R4-R2-SEMANTIC-COPY-OWNER-FIX-V1\r\n\r\n     WINNER-ONLY SEMANTIC COPY OWNER:\r\n     - P27 Rol / Alan / Kurulum \u00D6zeti i\u00E7indeki primarySetup copy\r\n     - P28 winner alt \u00F6zet \u015Feridi\r\n     - Alternatif \u00FCr\u00FCn alan\u0131na dokunmaz.\r\n     ========================================================= */\r\n\r\n  function r806bR4R2ReplaceLegacySetupText(node, expected) {\r\n    if (!node || !expected) {\r\n      return false;\r\n    }\r\n\r\n    var value =\r\n      String(node.textContent || \"\");\r\n\r\n    var pattern =\r\n      /\\d+\\s+I\u015F\u0131kl\u0131 Ana I\u015F\u0131k \\+ Dolgu Kurulumu/g;\r\n\r\n    if (!pattern.test(value)) {\r\n      return false;\r\n    }\r\n\r\n    pattern.lastIndex = 0;\r\n\r\n    node.textContent =\r\n      value.replace(\r\n        pattern,\r\n        expected\r\n      );\r\n\r\n    return true;\r\n  }\r\n\r\n  function r806bR4R2SyncWinnerCopy(rootNode, model) {\r\n    var expected =\r\n      r806bR4SetupLabel(model);\r\n\r\n    if (!rootNode || !expected) {\r\n      return {\r\n        applicable: false,\r\n        expected: expected,\r\n        roleAnchorChanged: false,\r\n        winnerSummaryChanged: false\r\n      };\r\n    }\r\n\r\n    var roleAnchor =\r\n      rootNode.querySelector(\r\n        '[data-p27-block=\"role_setup_preview\"] p,' +\r\n        '.is-p27-role-summary p'\r\n      );\r\n\r\n    var winnerSection =\r\n      rootNode.querySelector(\r\n        '[data-gdx-panel-p28-schematic=\"1\"]'\r\n      );\r\n\r\n    var winnerSummary =\r\n      winnerSection\r\n        ? winnerSection.querySelector(\r\n            \".gdx-p28-schema-summary\"\r\n          )\r\n        : null;\r\n\r\n    var roleAnchorChanged =\r\n      r806bR4R2ReplaceLegacySetupText(\r\n        roleAnchor,\r\n        expected\r\n      );\r\n\r\n    var winnerSummaryChanged =\r\n      r806bR4R2ReplaceLegacySetupText(\r\n        winnerSummary,\r\n        expected\r\n      );\r\n\r\n    if (roleAnchor) {\r\n      roleAnchor.setAttribute(\r\n        \"data-gdx-r8-06b-r4-r2-semantic-copy\",\r\n        roleAnchor.textContent.indexOf(expected) !== -1\r\n          ? \"rgb-synced\"\r\n          : \"rgb-pending\"\r\n      );\r\n    }\r\n\r\n    if (winnerSummary) {\r\n      winnerSummary.setAttribute(\r\n        \"data-gdx-r8-06b-r4-r2-semantic-copy\",\r\n        winnerSummary.textContent.indexOf(expected) !== -1\r\n          ? \"rgb-synced\"\r\n          : \"rgb-pending\"\r\n      );\r\n    }\r\n\r\n    return {\r\n      applicable: true,\r\n      expected: expected,\r\n      roleAnchorChanged: roleAnchorChanged,\r\n      winnerSummaryChanged: winnerSummaryChanged,\r\n      roleAnchorPresent: !!roleAnchor,\r\n      winnerSummaryPresent: !!winnerSummary,\r\n      roleAnchorSynced:\r\n        !roleAnchor ||\r\n        roleAnchor.textContent.indexOf(expected) !== -1,\r\n      winnerSummarySynced:\r\n        !winnerSummary ||\r\n        winnerSummary.textContent.indexOf(expected) !== -1\r\n    };\r\n  }\r\n\r\n  function modelSignature(resolved) {\r\n    if (!resolved || !resolved.model) {\r\n      return \"\";\r\n    }\r\n\r\n    var model =\r\n      resolved.model;\r\n\r\n    try {\r\n      return JSON.stringify({\r\n        productKey:\r\n          resolved.productKey,\r\n        templateKey:\r\n          resolved.templateKey,\r\n        source:\r\n          model.source,\r\n        lights:\r\n          (model.lights || [])\r\n            .map(function (light) {\r\n              return [\r\n                light.role,\r\n                light.angleLabel,\r\n                light.distanceLabel,\r\n                light.band,\r\n                light.heightLabel,\r\n                coord(light.x),\r\n                coord(light.y)\r\n              ];\r\n            }),\r\n        camera: model.camera\r\n          ? [\r\n              model.camera.distanceLabel,\r\n              model.camera.band,\r\n              model.camera.orientation,\r\n              coord(model.camera.x),\r\n              coord(model.camera.y)\r\n            ]\r\n          : []\r\n      });\r\n    } catch (ignore) {\r\n      return (\r\n        resolved.productKey +\r\n        \"::\" +\r\n        resolved.templateKey\r\n      );\r\n    }\r\n  }\r\n\r\n  function geometryFingerprint(resolved) {\r\n    if (!resolved || !resolved.model) {\r\n      return \"\";\r\n    }\r\n\r\n    var model =\r\n      resolved.model;\r\n\r\n    return JSON.stringify({\r\n      lights:\r\n        (model.lights || [])\r\n          .map(function (light) {\r\n            return [\r\n              light.angleLabel,\r\n              light.distanceLabel,\r\n              coord(light.x),\r\n              coord(light.y)\r\n            ];\r\n          }),\r\n      camera: model.camera\r\n        ? [\r\n            model.camera.distanceLabel,\r\n            coord(model.camera.x),\r\n            coord(model.camera.y)\r\n          ]\r\n        : []\r\n    });\r\n  }\r\n\r\n  function applySection(\r\n    section,\r\n    resolved,\r\n    slot\r\n  ) {\r\n    if (\r\n      !section ||\r\n      !resolved ||\r\n      !resolved.model\r\n    ) {\r\n      return false;\r\n    }\r\n\r\n    var model =\r\n      resolved.model;\r\n\r\n    var canvas =\r\n      section.querySelector(\r\n        \".gdx-p28-schema-canvas\"\r\n      );\r\n\r\n    if (!canvas) {\r\n      return false;\r\n    }\r\n\r\n    var signature =\r\n      modelSignature(resolved);\r\n\r\n    r806bR4SyncSemanticSetupLabel(\r\n      section,\r\n      model\r\n    );\r\n\r\n    if (\r\n      section.getAttribute(\r\n        SIGNATURE_ATTR\r\n      ) === signature &&\r\n      canvas.getAttribute(\r\n        APPLIED_ATTR\r\n      ) === \"1\"\r\n    ) {\r\n      return true;\r\n    }\r\n\r\n    canvas.innerHTML =\r\n      canvasHtml(model);\r\n\r\n    canvas.setAttribute(\r\n      APPLIED_ATTR,\r\n      \"1\"\r\n    );\r\n\r\n    canvas.setAttribute(\r\n      \"data-gdx-r8-06b-slot\",\r\n      slot\r\n    );\r\n\r\n    canvas.setAttribute(\r\n      \"data-gdx-r8-06b-source\",\r\n      clean(model.source)\r\n    );\r\n\r\n    canvas.setAttribute(\r\n      \"data-gdx-r8-06b-template-key\",\r\n      resolved.templateKey\r\n    );\r\n\r\n    section.setAttribute(\r\n      APPLIED_ATTR,\r\n      \"1\"\r\n    );\r\n\r\n    section.setAttribute(\r\n      SIGNATURE_ATTR,\r\n      signature\r\n    );\r\n\r\n    section.setAttribute(\r\n      \"data-gdx-r8-06b-source\",\r\n      clean(model.source)\r\n    );\r\n\r\n    section.setAttribute(\r\n      \"data-gdx-r8-06b-template-key\",\r\n      resolved.templateKey\r\n    );\r\n\r\n    section.setAttribute(\r\n      \"data-gdx-r8-06b-product-key\",\r\n      resolved.productKey\r\n    );\r\n\r\n    section.setAttribute(\r\n      \"data-gdx-r8-06b-exact\",\r\n      model.source ===\r\n        \"approved_setup_truth\"\r\n          ? \"1\"\r\n          : \"0\"\r\n    );\r\n\r\n    var side =\r\n      section.querySelector(\r\n        \".gdx-p28-schema-side\"\r\n      );\r\n\r\n    if (side) {\r\n      var heading =\r\n        side.querySelector(\"strong\");\r\n\r\n      var list =\r\n        side.querySelector(\"ol\");\r\n\r\n      if (heading) {\r\n        heading.textContent =\r\n          slot === \"winner\"\r\n            ? \"Kurulum \u00F6zeti\"\r\n            : \"Alternatif kurulum \u00F6zeti\";\r\n      }\r\n\r\n      if (list) {\r\n        list.innerHTML =\r\n          summaryHtml(model);\r\n\r\n        list.setAttribute(\r\n          \"data-gdx-r8-06b-summary\",\r\n          \"1\"\r\n        );\r\n      }\r\n    }\r\n\r\n    state.renderCount += 1;\r\n\r\n    if (slot === \"winner\") {\r\n      state.winnerRenderCount += 1;\r\n    } else {\r\n      state.alternativeRenderCount += 1;\r\n    }\r\n\r\n    state.lastRenderAt =\r\n      new Date().toISOString();\r\n\r\n    return true;\r\n  }\r\n\r\n  function render() {\r\n    var r = root();\r\n\r\n    if (!r) return false;\r\n\r\n    var p28 =\r\n      r.querySelector(P28_SELECTOR);\r\n\r\n    var p31 =\r\n      r.querySelector(P31_SELECTOR);\r\n\r\n    if (!p28 && !p31) {\r\n      return false;\r\n    }\r\n\r\n    var pair =\r\n      resolvePair();\r\n\r\n    if (!pair) {\r\n      state.lastError =\r\n        \"comparison product pair unresolved\";\r\n\r\n      return false;\r\n    }\r\n\r\n    var winner =\r\n      resolveGeometry(\r\n        pair.winner,\r\n        \"winner\"\r\n      );\r\n\r\n    var alternative =\r\n      resolveGeometry(\r\n        pair.alternative,\r\n        \"alternative\"\r\n      );\r\n\r\n    if (!winner || !alternative) {\r\n      state.lastError =\r\n        \"comparison geometry model unresolved\";\r\n\r\n      return false;\r\n    }\r\n\r\n    var winnerOk =\r\n      p28\r\n        ? applySection(\r\n            p28,\r\n            winner,\r\n            \"winner\"\r\n          )\r\n        : false;\r\n\r\n    var alternativeOk =\r\n      p31\r\n        ? applySection(\r\n            p31,\r\n            alternative,\r\n            \"alternative\"\r\n          )\r\n        : false;\r\n\r\n    r806bR4R2SyncWinnerCopy(\r\n      r,\r\n      winner.model\r\n    );\r\n\r\n    r806dSyncWinnerSetupParity(\r\n      r,\r\n      winner.model\r\n    );\r\n\r\n    state.lastPair = {\r\n      winner: winner,\r\n      alternative: alternative,\r\n      winnerGeometry:\r\n        geometryFingerprint(winner),\r\n      alternativeGeometry:\r\n        geometryFingerprint(alternative)\r\n    };\r\n\r\n    return !!(\r\n      (!p28 || winnerOk) &&\r\n      (!p31 || alternativeOk)\r\n    );\r\n  }\r\n\r\n  function schedule() {\r\n    if (state.scheduled) return;\r\n\r\n    state.scheduled = true;\r\n\r\n    window.setTimeout(function () {\r\n      state.scheduled = false;\r\n      render();\r\n    }, 90);\r\n  }\r\n\r\n  function installStyle() {\r\n    if (\r\n      document.getElementById(STYLE_ID)\r\n    ) {\r\n      return;\r\n    }\r\n\r\n    var style =\r\n      document.createElement(\"style\");\r\n\r\n    style.id =\r\n      STYLE_ID;\r\n\r\n    style.textContent = [\r\n      '#gdx-panel-led-v4-root [data-gdx-r8-06b-geometry=\"1\"] .gdx-p28-schema-canvas::before,' +\r\n      '#gdx-panel-led-v4-root [data-gdx-r8-06b-geometry=\"1\"] .gdx-p28-schema-canvas::after{' +\r\n        'content:none!important;display:none!important;' +\r\n      '}',\r\n\r\n      '#gdx-panel-led-v4-root .gdx-p28-schema-canvas[data-gdx-r8-06b-geometry=\"1\"]{' +\r\n        'position:relative;isolation:isolate;' +\r\n      '}',\r\n\r\n      '#gdx-panel-led-v4-root .gdx-r8-06b-connectors{' +\r\n        'position:absolute;inset:0;width:100%;height:100%;z-index:1;pointer-events:none;' +\r\n      '}',\r\n\r\n      '#gdx-panel-led-v4-root .gdx-r8-06b-line{' +\r\n        'fill:none;stroke:rgba(71,85,105,.56);stroke-width:1.05;' +\r\n        'stroke-dasharray:3 2;vector-effect:non-scaling-stroke;' +\r\n      '}',\r\n\r\n      '#gdx-panel-led-v4-root .gdx-r8-06b-line.is-camera{' +\r\n        'stroke:rgba(59,130,246,.72);' +\r\n      '}',\r\n\r\n      '#gdx-panel-led-v4-root .is-r8-06b-truth-node{' +\r\n        'z-index:4;' +\r\n      '}',\r\n\r\n      /* =========================================================\r\n         PANEL-V4-R36-H-R8-06B-R3-LIGHT-RGB-CONTRAST-POLISH-V1\r\n         PRESENTATION ONLY \u2014 LIGHT THEME RGB NODE CONTRAST\r\n         ========================================================= */\r\n      '#gdx-panel-led-v4-root[data-gdx-panel-theme=\"light\"] .is-r8-06b-truth-node.is-rgb,' +\r\n      '#gdx-panel-led-v4-root[data-gdx-panel-theme=\"light\"] .gdx-af04-node.is-rgb{' +\r\n        'background:linear-gradient(135deg,#4c1d95 0%,#7e22ce 52%,#9d174d 100%)!important;' +\r\n        'border:1.5px solid #6d28d9!important;' +\r\n        'box-shadow:0 10px 24px rgba(76,29,149,.24),0 0 0 1px rgba(109,40,217,.14)!important;' +\r\n        'color:#fff!important;' +\r\n      '}',\r\n\r\n      '#gdx-panel-led-v4-root[data-gdx-panel-theme=\"light\"] .is-r8-06b-truth-node.is-rgb span,' +\r\n      '#gdx-panel-led-v4-root[data-gdx-panel-theme=\"light\"] .gdx-af04-node.is-rgb strong{' +\r\n        'color:#fff!important;font-weight:950!important;' +\r\n        'text-shadow:0 1px 2px rgba(24,5,48,.45)!important;' +\r\n      '}',\r\n\r\n      '#gdx-panel-led-v4-root[data-gdx-panel-theme=\"light\"] .is-r8-06b-truth-node.is-rgb em,' +\r\n      '#gdx-panel-led-v4-root[data-gdx-panel-theme=\"light\"] .is-r8-06b-truth-node.is-rgb small,' +\r\n      '#gdx-panel-led-v4-root[data-gdx-panel-theme=\"light\"] .gdx-af04-node.is-rgb span,' +\r\n      '#gdx-panel-led-v4-root[data-gdx-panel-theme=\"light\"] .gdx-af04-node.is-rgb small{' +\r\n        'color:#f5f3ff!important;opacity:1!important;' +\r\n        'text-shadow:0 1px 2px rgba(24,5,48,.38)!important;' +\r\n      '}',\r\n\r\n      '#gdx-panel-led-v4-root .is-r8-06b-truth-node small{' +\r\n        'display:block;margin-top:3px;max-width:112px;' +\r\n        'font-size:7.5px;line-height:1.15;font-weight:800;' +\r\n        'font-style:normal;color:rgba(241,245,249,.82);white-space:normal;' +\r\n      '}',\r\n\r\n      '#gdx-panel-led-v4-root .is-r8-06b-truth-node.is-camera em{' +\r\n        'display:block;margin-top:3px;font-style:normal;' +\r\n      '}',\r\n\r\n      '@media(max-width:749px){' +\r\n        '#gdx-panel-led-v4-root .is-r8-06b-truth-node small{' +\r\n          'display:none;' +\r\n        '}' +\r\n        '#gdx-panel-led-v4-root .gdx-r8-06b-line{' +\r\n          'stroke-width:.9;' +\r\n        '}' +\r\n      '}'\r\n    ].join(\"\");\r\n\r\n    document.head.appendChild(style);\r\n  }\r\n\r\n  function numberClose(a, b) {\r\n    return (\r\n      finite(a) &&\r\n      finite(b) &&\r\n      Math.abs(\r\n        Number(a) -\r\n        Number(b)\r\n      ) <= 0.02\r\n    );\r\n  }\r\n\r\n  function auditSection(\r\n    section,\r\n    resolved\r\n  ) {\r\n    if (\r\n      !section ||\r\n      !resolved ||\r\n      !resolved.model\r\n    ) {\r\n      return {\r\n        found: !!section,\r\n        ready: false\r\n      };\r\n    }\r\n\r\n    var model =\r\n      resolved.model;\r\n\r\n    var canvas =\r\n      section.querySelector(\r\n        '.gdx-p28-schema-canvas[' +\r\n        APPLIED_ATTR +\r\n        '=\"1\"]'\r\n      );\r\n\r\n    var lightNodes =\r\n      canvas\r\n        ? Array.prototype.slice.call(\r\n            canvas.querySelectorAll(\r\n              '[data-gdx-r8-06b-node=\"light\"]'\r\n            )\r\n          )\r\n        : [];\r\n\r\n    var cameraNode =\r\n      canvas\r\n        ? canvas.querySelector(\r\n            '[data-gdx-r8-06b-node=\"camera\"]'\r\n          )\r\n        : null;\r\n\r\n    var subjectNode =\r\n      canvas\r\n        ? canvas.querySelector(\r\n            '[data-gdx-r8-06b-node=\"subject\"]'\r\n          )\r\n        : null;\r\n\r\n    var lightsGeometryOk =\r\n      lightNodes.length ===\r\n        (model.lights || []).length &&\r\n      lightNodes.every(function (\r\n        node,\r\n        index\r\n      ) {\r\n        var expected =\r\n          model.lights[index];\r\n\r\n        return (\r\n          expected &&\r\n          numberClose(\r\n            node.getAttribute(\r\n              \"data-gdx-r8-06b-x\"\r\n            ),\r\n            expected.x\r\n          ) &&\r\n          numberClose(\r\n            node.getAttribute(\r\n              \"data-gdx-r8-06b-y\"\r\n            ),\r\n            expected.y\r\n          )\r\n        );\r\n      });\r\n\r\n    var lightValuesOk =\r\n      lightNodes.length ===\r\n        (model.lights || []).length &&\r\n      lightNodes.every(function (\r\n        node,\r\n        index\r\n      ) {\r\n        var expected =\r\n          model.lights[index];\r\n\r\n        var text =\r\n          clean(node.textContent);\r\n\r\n        return !!(\r\n          expected &&\r\n          (\r\n            !expected.angleLabel ||\r\n            text.indexOf(\r\n              clean(expected.angleLabel)\r\n            ) > -1\r\n          ) &&\r\n          (\r\n            !expected.distanceLabel ||\r\n            text.indexOf(\r\n              clean(expected.distanceLabel)\r\n            ) > -1\r\n          )\r\n        );\r\n      });\r\n\r\n    var cameraGeometryOk =\r\n      !!(\r\n        cameraNode &&\r\n        model.camera &&\r\n        numberClose(\r\n          cameraNode.getAttribute(\r\n            \"data-gdx-r8-06b-x\"\r\n          ),\r\n          model.camera.x\r\n        ) &&\r\n        numberClose(\r\n          cameraNode.getAttribute(\r\n            \"data-gdx-r8-06b-y\"\r\n          ),\r\n          model.camera.y\r\n        )\r\n      );\r\n\r\n    var cameraValueOk =\r\n      !!(\r\n        cameraNode &&\r\n        model.camera &&\r\n        (\r\n          !model.camera.distanceLabel ||\r\n          clean(\r\n            cameraNode.textContent\r\n          ).indexOf(\r\n            clean(\r\n              model.camera.distanceLabel\r\n            )\r\n          ) > -1\r\n        )\r\n      );\r\n\r\n    return {\r\n      found: true,\r\n      ready: !!canvas,\r\n      source:\r\n        section.getAttribute(\r\n          \"data-gdx-r8-06b-source\"\r\n        ) || \"\",\r\n      templateKey:\r\n        section.getAttribute(\r\n          \"data-gdx-r8-06b-template-key\"\r\n        ) || \"\",\r\n      productKey:\r\n        section.getAttribute(\r\n          \"data-gdx-r8-06b-product-key\"\r\n        ) || \"\",\r\n      exact:\r\n        section.getAttribute(\r\n          \"data-gdx-r8-06b-exact\"\r\n        ) === \"1\",\r\n      lightCount:\r\n        lightNodes.length,\r\n      expectedLightCount:\r\n        (model.lights || []).length,\r\n      subjectFound:\r\n        !!subjectNode,\r\n      cameraFound:\r\n        !!cameraNode,\r\n      lightsGeometryOk:\r\n        lightsGeometryOk,\r\n      lightValuesOk:\r\n        lightValuesOk,\r\n      cameraGeometryOk:\r\n        cameraGeometryOk,\r\n      cameraValueOk:\r\n        cameraValueOk,\r\n      summaryFound:\r\n        !!section.querySelector(\r\n          '[data-gdx-r8-06b-summary=\"1\"]'\r\n        ),\r\n      signature:\r\n        section.getAttribute(\r\n          SIGNATURE_ATTR\r\n        ) || \"\"\r\n    };\r\n  }\r\n\r\n  function debug() {\r\n    render();\r\n\r\n    var r = root();\r\n    var pair =\r\n      state.lastPair;\r\n\r\n    var p28 =\r\n      r\r\n        ? r.querySelector(P28_SELECTOR)\r\n        : null;\r\n\r\n    var p31 =\r\n      r\r\n        ? r.querySelector(P31_SELECTOR)\r\n        : null;\r\n\r\n    var winnerAudit =\r\n      pair\r\n        ? auditSection(\r\n            p28,\r\n            pair.winner\r\n          )\r\n        : {\r\n            found: !!p28,\r\n            ready: false\r\n          };\r\n\r\n    var alternativeAudit =\r\n      pair\r\n        ? auditSection(\r\n            p31,\r\n            pair.alternative\r\n          )\r\n        : {\r\n            found: !!p31,\r\n            ready: false\r\n          };\r\n\r\n    var winnerFingerprint =\r\n      pair\r\n        ? pair.winnerGeometry\r\n        : \"\";\r\n\r\n    var alternativeFingerprint =\r\n      pair\r\n        ? pair.alternativeGeometry\r\n        : \"\";\r\n\r\n    var truthDiffers =\r\n      !!(\r\n        winnerFingerprint &&\r\n        alternativeFingerprint &&\r\n        winnerFingerprint !==\r\n          alternativeFingerprint\r\n      );\r\n\r\n    var domDiffers =\r\n      !!(\r\n        winnerAudit.signature &&\r\n        alternativeAudit.signature &&\r\n        winnerAudit.signature !==\r\n          alternativeAudit.signature\r\n      );\r\n\r\n    var af04ScriptCount =\r\n      document.querySelectorAll(\r\n        'script[src*=\"panel-led-v4.af04-dynamic-fallback-distance.js\"]'\r\n      ).length;\r\n\r\n    var checks = {\r\n      rootFound:\r\n        !!r,\r\n\r\n      productPoolReady:\r\n        products().length > 0,\r\n\r\n      af02ApiReady:\r\n        !!(\r\n          af02Api() &&\r\n          typeof af02Api()\r\n            .resolveTemplateForRow ===\r\n            \"function\"\r\n        ),\r\n\r\n      af04ApiReady:\r\n        !!(\r\n          af04Api() &&\r\n          typeof af04Api()\r\n            .modelForHost ===\r\n            \"function\"\r\n        ),\r\n\r\n      altPreviewApiReady:\r\n        !!(\r\n          altPreviewApi() &&\r\n          typeof altPreviewApi()\r\n            .buildAlternativePreview ===\r\n            \"function\"\r\n        ),\r\n\r\n      comparisonPairReady:\r\n        !!pair,\r\n\r\n      p28Found:\r\n        !!p28,\r\n\r\n      p31AlternativeFound:\r\n        !!p31,\r\n\r\n      winnerGeometryApplied:\r\n        !!winnerAudit.ready,\r\n\r\n      alternativeGeometryApplied:\r\n        !!alternativeAudit.ready,\r\n\r\n      winnerLightCountMatches:\r\n        !!(\r\n          winnerAudit.ready &&\r\n          winnerAudit.lightCount ===\r\n            winnerAudit.expectedLightCount\r\n        ),\r\n\r\n      alternativeLightCountMatches:\r\n        !!(\r\n          alternativeAudit.ready &&\r\n          alternativeAudit.lightCount ===\r\n            alternativeAudit.expectedLightCount\r\n        ),\r\n\r\n      winnerXYMatchesTruth:\r\n        !!winnerAudit.lightsGeometryOk,\r\n\r\n      alternativeXYMatchesTruth:\r\n        !!alternativeAudit.lightsGeometryOk,\r\n\r\n      winnerVisibleValuesMatch:\r\n        !!winnerAudit.lightValuesOk,\r\n\r\n      alternativeVisibleValuesMatch:\r\n        !!alternativeAudit.lightValuesOk,\r\n\r\n      winnerCameraXYMatches:\r\n        !!winnerAudit.cameraGeometryOk,\r\n\r\n      alternativeCameraXYMatches:\r\n        !!alternativeAudit.cameraGeometryOk,\r\n\r\n      winnerCameraDistanceVisible:\r\n        !!winnerAudit.cameraValueOk,\r\n\r\n      alternativeCameraDistanceVisible:\r\n        !!alternativeAudit.cameraValueOk,\r\n\r\n      winnerSubjectFound:\r\n        !!winnerAudit.subjectFound,\r\n\r\n      alternativeSubjectFound:\r\n        !!alternativeAudit.subjectFound,\r\n\r\n      winnerSummaryUsesTruth:\r\n        !!winnerAudit.summaryFound,\r\n\r\n      alternativeSummaryUsesTruth:\r\n        !!alternativeAudit.summaryFound,\r\n\r\n      differentTruthProducesDifferentGeometry:\r\n        !truthDiffers || domDiffers,\r\n\r\n      af04ScriptExactlyOne:\r\n        af04ScriptCount === 1,\r\n\r\n      compareApiPreserved:\r\n        !!window.GDX_PANEL_LED_V4_COMPARE,\r\n\r\n      commerceApiPreserved:\r\n        !!window.GDX_PANEL_LED_V4_COMMERCE,\r\n\r\n      shareApiPreserved:\r\n        !!window.GDX_PANEL_LED_V4_SHARE\r\n    };\r\n\r\n    var failed =\r\n      Object.keys(checks)\r\n        .filter(function (key) {\r\n          return checks[key] !== true;\r\n        });\r\n\r\n    return {\r\n      phase:\r\n        \"PANEL-V4-R36-H-R8-06B-COMPARISON-SETUP-GEOMETRY-TRUTH\",\r\n\r\n      version:\r\n        VERSION,\r\n\r\n      ok:\r\n        failed.length === 0,\r\n\r\n      checks:\r\n        checks,\r\n\r\n      failed:\r\n        failed,\r\n\r\n      winner:\r\n        winnerAudit,\r\n\r\n      alternative:\r\n        alternativeAudit,\r\n\r\n      diagnostics: {\r\n        truthGeometryDifferent:\r\n          truthDiffers,\r\n        domGeometryDifferent:\r\n          domDiffers,\r\n        winnerGeometry:\r\n          winnerFingerprint,\r\n        alternativeGeometry:\r\n          alternativeFingerprint,\r\n        renderCount:\r\n          state.renderCount,\r\n        winnerRenderCount:\r\n          state.winnerRenderCount,\r\n        alternativeRenderCount:\r\n          state.alternativeRenderCount,\r\n        lastRenderAt:\r\n          state.lastRenderAt,\r\n        lastError:\r\n          state.lastError\r\n      },\r\n\r\n      noTouch: {\r\n        scoreTouched: false,\r\n        rankingTouched: false,\r\n        productOrderTouched: false,\r\n        commerceTouched: false,\r\n        cartTouched: false,\r\n        shareTouched: false,\r\n        noraTouched: false\r\n      }\r\n    };\r\n  }\r\n\r\n  function install() {\r\n    installStyle();\r\n\r\n    var r = root();\r\n\r\n    if (r) {\r\n      state.observer =\r\n        new MutationObserver(\r\n          function (mutations) {\r\n            var relevant =\r\n              mutations.some(\r\n                function (mutation) {\r\n                  return (\r\n                    mutation.type ===\r\n                    \"childList\"\r\n                  );\r\n                }\r\n              );\r\n\r\n            if (relevant) {\r\n              schedule();\r\n            }\r\n          }\r\n        );\r\n\r\n      state.observer.observe(\r\n        r,\r\n        {\r\n          subtree: true,\r\n          childList: true\r\n        }\r\n      );\r\n    }\r\n\r\n    document.addEventListener(\r\n      \"click\",\r\n      function () {\r\n        window.setTimeout(\r\n          schedule,\r\n          140\r\n        );\r\n      },\r\n      true\r\n    );\r\n\r\n    window.addEventListener(\r\n      \"resize\",\r\n      function () {\r\n        window.setTimeout(\r\n          schedule,\r\n          120\r\n        );\r\n      }\r\n    );\r\n\r\n    [\r\n      100,\r\n      300,\r\n      700,\r\n      1300,\r\n      2200\r\n    ].forEach(function (delay) {\r\n      window.setTimeout(\r\n        schedule,\r\n        delay\r\n      );\r\n    });\r\n  }\r\n\r\n  window.GDX_PANEL_V4_R36_H_R8_06B_COMPARISON_GEOMETRY = {\r\n    version: VERSION,\r\n    render: render,\r\n    schedule: schedule,\r\n    resolvePair: resolvePair,\r\n    resolveGeometry: resolveGeometry,\r\n    semanticSetupLabel: r806bR4SetupLabel,\r\n    syncSemanticSetupLabel: r806bR4SyncSemanticSetupLabel,\r\n    syncWinnerSemanticCopy: r806bR4R2SyncWinnerCopy,\r\n    setupLabelFromModel: r806dSetupLabelFromModel,\r\n    customerRoleLabel: r806dCustomerRoleLabel,\r\n    syncWinnerSetupParity: r806dSyncWinnerSetupParity,\r\n    debug: debug\r\n  };\r\n\r\n  window.debugPanelV4R36HR806BComparisonGeometryTruth =\r\n    debug;\r\n\r\n  if (\r\n    document.readyState ===\r\n    \"loading\"\r\n  ) {\r\n    document.addEventListener(\r\n      \"DOMContentLoaded\",\r\n      install,\r\n      { once: true }\r\n    );\r\n  } else {\r\n    install();\r\n  }\r\n\r\n})(window, document);\r\n\r\n/* =========================================================\r\n   PANEL-V4-R36-H-R8-06B-R2-PRODUCT-AWARE-RESOLVER-BRIDGE-V1\r\n   HARD QA \u2014 V1 FALSE-POSITIVE REPLACEMENT\r\n   ========================================================= */\r\n(function (window, document) {\r\n  \"use strict\";\r\n\r\n  var VERSION =\r\n    \"PANEL-V4-R36-H-R8-06B-R2-PRODUCT-AWARE-RESOLVER-BRIDGE-V1\";\r\n\r\n  function clean(v) {\r\n    return String(\r\n      v == null ? \"\" : v\r\n    )\r\n      .replace(/\\s+/g, \" \")\r\n      .trim();\r\n  }\r\n\r\n  function familyOf(product) {\r\n    product = product || {};\r\n\r\n    var specs =\r\n      product.specs ||\r\n      product.panelSpecs ||\r\n      {};\r\n\r\n    var raw =\r\n      clean(\r\n        specs.family ||\r\n        product.family ||\r\n        \"\"\r\n      )\r\n      .toLocaleLowerCase(\"tr-TR\");\r\n\r\n    var text =\r\n      clean([\r\n        raw,\r\n        specs.hasRgb === true\r\n          ? \"rgb\"\r\n          : \"\",\r\n        product.title,\r\n        product.smartTitle,\r\n        product.handle\r\n      ].join(\" \"))\r\n      .toLocaleLowerCase(\"tr-TR\");\r\n\r\n    if (\r\n      raw === \"rgb\" ||\r\n      specs.hasRgb === true ||\r\n      /\\brgb\\b|rgbw|rgbww|rgbwy|\\bhsi\\b/.test(text)\r\n    ) {\r\n      return \"rgb\";\r\n    }\r\n\r\n    if (\r\n      raw === \"bicolor\" ||\r\n      raw === \"bi-color\" ||\r\n      /bi[- ]?color|bicolor|\\bcct\\b/.test(text)\r\n    ) {\r\n      return \"bicolor\";\r\n    }\r\n\r\n    if (\r\n      raw === \"daylight\" ||\r\n      /daylight|5600k/.test(text)\r\n    ) {\r\n      return \"daylight\";\r\n    }\r\n\r\n    return raw || \"unknown\";\r\n  }\r\n\r\n  function powerOf(product) {\r\n    product = product || {};\r\n\r\n    var specs =\r\n      product.specs ||\r\n      product.panelSpecs ||\r\n      {};\r\n\r\n    return Number(\r\n      specs.powerW ||\r\n      product.powerW ||\r\n      product.power ||\r\n      0\r\n    );\r\n  }\r\n\r\n  function expectedScenario(product) {\r\n    var family =\r\n      familyOf(product);\r\n\r\n    var power =\r\n      powerOf(product);\r\n\r\n    if (family === \"rgb\") {\r\n      return \"rgb_background_accent\";\r\n    }\r\n\r\n    if (\r\n      power > 0 &&\r\n      power <= 80\r\n    ) {\r\n      return \"compact_support_close_range\";\r\n    }\r\n\r\n    return \"balanced_key_fill\";\r\n  }\r\n\r\n  function geometryFingerprint(result) {\r\n    if (\r\n      !result ||\r\n      !result.model\r\n    ) {\r\n      return \"\";\r\n    }\r\n\r\n    var model =\r\n      result.model;\r\n\r\n    return JSON.stringify({\r\n      templateKey:\r\n        result.templateKey || \"\",\r\n\r\n      scenarioType:\r\n        result.template &&\r\n        result.template.scenarioType\r\n          ? result.template.scenarioType\r\n          : \"\",\r\n\r\n      lights:\r\n        (model.lights || [])\r\n          .map(function (light) {\r\n            return [\r\n              light.role,\r\n              light.angleLabel,\r\n              light.distanceLabel,\r\n              Number(light.x || 0)\r\n                .toFixed(3),\r\n              Number(light.y || 0)\r\n                .toFixed(3)\r\n            ];\r\n          }),\r\n\r\n      camera:\r\n        model.camera\r\n          ? [\r\n              model.camera.distanceLabel,\r\n              Number(\r\n                model.camera.x || 0\r\n              ).toFixed(3),\r\n              Number(\r\n                model.camera.y || 0\r\n              ).toFixed(3)\r\n            ]\r\n          : []\r\n    });\r\n  }\r\n\r\n  function rgbRolePresent(selector) {\r\n    var section =\r\n      document.querySelector(selector);\r\n\r\n    if (!section) {\r\n      return false;\r\n    }\r\n\r\n    return /RGB Arka|RGB|Kenar/i.test(\r\n      clean(section.textContent)\r\n    );\r\n  }\r\n\r\n  function debug() {\r\n    var bridge =\r\n      window\r\n        .GDX_PANEL_V4_R36_H_R8_06B_COMPARISON_GEOMETRY;\r\n\r\n    if (\r\n      !bridge ||\r\n      typeof bridge.resolvePair !==\r\n        \"function\" ||\r\n      typeof bridge.resolveGeometry !==\r\n        \"function\"\r\n    ) {\r\n      return {\r\n        ok: false,\r\n        phase:\r\n          \"PANEL-V4-R36-H-R8-06B-R2-LIVE-QA\",\r\n        failed: [\r\n          \"r806bV1BridgePresent\"\r\n        ]\r\n      };\r\n    }\r\n\r\n    if (\r\n      typeof bridge.render ===\r\n        \"function\"\r\n    ) {\r\n      bridge.render();\r\n    }\r\n\r\n    var pair =\r\n      bridge.resolvePair();\r\n\r\n    var winner =\r\n      pair\r\n        ? bridge.resolveGeometry(\r\n            pair.winner,\r\n            \"winner\"\r\n          )\r\n        : null;\r\n\r\n    var alternative =\r\n      pair\r\n        ? bridge.resolveGeometry(\r\n            pair.alternative,\r\n            \"alternative\"\r\n          )\r\n        : null;\r\n\r\n    var winnerExpected =\r\n      pair\r\n        ? expectedScenario(\r\n            pair.winner\r\n          )\r\n        : \"\";\r\n\r\n    var altExpected =\r\n      pair\r\n        ? expectedScenario(\r\n            pair.alternative\r\n          )\r\n        : \"\";\r\n\r\n    var winnerActual =\r\n      winner &&\r\n      winner.template\r\n        ? clean(\r\n            winner.template\r\n              .scenarioType\r\n          )\r\n        : \"\";\r\n\r\n    var altActual =\r\n      alternative &&\r\n      alternative.template\r\n        ? clean(\r\n            alternative.template\r\n              .scenarioType\r\n          )\r\n        : \"\";\r\n\r\n    var winnerGeometry =\r\n      geometryFingerprint(winner);\r\n\r\n    var alternativeGeometry =\r\n      geometryFingerprint(\r\n        alternative\r\n      );\r\n\r\n    /*\r\n     * IMPORTANT:\r\n     * productKey burada YOK.\r\n     *\r\n     * Fark zorunlulu\u011Fu yaln\u0131z resolver ger\u00E7ekten\r\n     * farkl\u0131 canonical template/scenario se\u00E7ti\u011Finde\r\n     * uygulan\u0131r.\r\n     */\r\n    var canonicalInputsDiffer =\r\n      !!(\r\n        winner &&\r\n        alternative &&\r\n        (\r\n          winner.templateKey !==\r\n            alternative.templateKey ||\r\n          winnerActual !==\r\n            altActual\r\n        )\r\n      );\r\n\r\n    var geometryDiffers =\r\n      !!(\r\n        winnerGeometry &&\r\n        alternativeGeometry &&\r\n        winnerGeometry !==\r\n          alternativeGeometry\r\n      );\r\n\r\n    var winnerRgbExpected =\r\n      winnerExpected ===\r\n      \"rgb_background_accent\";\r\n\r\n    var altRgbExpected =\r\n      altExpected ===\r\n      \"rgb_background_accent\";\r\n\r\n    var winnerRgbVisible =\r\n      rgbRolePresent(\r\n        '[data-gdx-panel-p28-schematic=\"1\"]'\r\n      );\r\n\r\n    var altRgbVisible =\r\n      rgbRolePresent(\r\n        '[data-gdx-panel-p31-alt-schematic=\"1\"]'\r\n      );\r\n\r\n    var checks = {\r\n      pairReady:\r\n        !!pair,\r\n\r\n      winnerResolved:\r\n        !!winner,\r\n\r\n      alternativeResolved:\r\n        !!alternative,\r\n\r\n      winnerFamilyResolved:\r\n        !!(\r\n          pair &&\r\n          familyOf(pair.winner) !==\r\n            \"unknown\"\r\n        ),\r\n\r\n      alternativeFamilyResolved:\r\n        !!(\r\n          pair &&\r\n          familyOf(\r\n            pair.alternative\r\n          ) !== \"unknown\"\r\n        ),\r\n\r\n      winnerPowerResolved:\r\n        !!(\r\n          pair &&\r\n          powerOf(pair.winner) > 0\r\n        ),\r\n\r\n      alternativePowerResolved:\r\n        !!(\r\n          pair &&\r\n          powerOf(\r\n            pair.alternative\r\n          ) > 0\r\n        ),\r\n\r\n      winnerScenarioMatchesProduct:\r\n        winnerActual ===\r\n          winnerExpected,\r\n\r\n      alternativeScenarioMatchesProduct:\r\n        altActual ===\r\n          altExpected,\r\n\r\n      winnerRgbRoleCorrect:\r\n        !winnerRgbExpected ||\r\n        winnerRgbVisible,\r\n\r\n      alternativeRgbRoleCorrect:\r\n        !altRgbExpected ||\r\n        altRgbVisible,\r\n\r\n      geometryFingerprintExcludesProductKey:\r\n        !!(\r\n          winner &&\r\n          alternative &&\r\n          winnerGeometry.indexOf(\r\n            winner.productKey || \"__x__\"\r\n          ) === -1 &&\r\n          alternativeGeometry.indexOf(\r\n            alternative.productKey ||\r\n            \"__x__\"\r\n          ) === -1\r\n        ),\r\n\r\n      differentCanonicalInputsProduceDifferentGeometry:\r\n        !canonicalInputsDiffer ||\r\n        geometryDiffers,\r\n\r\n      compareApiPreserved:\r\n        !!window\r\n          .GDX_PANEL_LED_V4_COMPARE,\r\n\r\n      commerceApiPreserved:\r\n        !!window\r\n          .GDX_PANEL_LED_V4_COMMERCE,\r\n\r\n      shareApiPreserved:\r\n        !!window\r\n          .GDX_PANEL_LED_V4_SHARE\r\n    };\r\n\r\n    var failed =\r\n      Object.keys(checks)\r\n        .filter(function (key) {\r\n          return checks[key] !== true;\r\n        });\r\n\r\n    return {\r\n      ok:\r\n        failed.length === 0,\r\n\r\n      phase:\r\n        \"PANEL-V4-R36-H-R8-06B-R2-PRODUCT-AWARE-RESOLVER-LIVE-QA\",\r\n\r\n      version:\r\n        VERSION,\r\n\r\n      checks:\r\n        checks,\r\n\r\n      failed:\r\n        failed,\r\n\r\n      winner: {\r\n        title:\r\n          pair &&\r\n          pair.winner\r\n            ? clean(\r\n                pair.winner\r\n                  .smartTitle ||\r\n                pair.winner.title\r\n              )\r\n            : \"\",\r\n\r\n        family:\r\n          pair\r\n            ? familyOf(\r\n                pair.winner\r\n              )\r\n            : \"\",\r\n\r\n        powerW:\r\n          pair\r\n            ? powerOf(\r\n                pair.winner\r\n              )\r\n            : 0,\r\n\r\n        expectedScenario:\r\n          winnerExpected,\r\n\r\n        actualScenario:\r\n          winnerActual,\r\n\r\n        templateKey:\r\n          winner\r\n            ? winner.templateKey\r\n            : \"\",\r\n\r\n        geometry:\r\n          winnerGeometry,\r\n\r\n        rgbRoleExpected:\r\n          winnerRgbExpected,\r\n\r\n        rgbRoleVisible:\r\n          winnerRgbVisible\r\n      },\r\n\r\n      alternative: {\r\n        title:\r\n          pair &&\r\n          pair.alternative\r\n            ? clean(\r\n                pair.alternative\r\n                  .smartTitle ||\r\n                pair.alternative.title\r\n              )\r\n            : \"\",\r\n\r\n        family:\r\n          pair\r\n            ? familyOf(\r\n                pair.alternative\r\n              )\r\n            : \"\",\r\n\r\n        powerW:\r\n          pair\r\n            ? powerOf(\r\n                pair.alternative\r\n              )\r\n            : 0,\r\n\r\n        expectedScenario:\r\n          altExpected,\r\n\r\n        actualScenario:\r\n          altActual,\r\n\r\n        templateKey:\r\n          alternative\r\n            ? alternative.templateKey\r\n            : \"\",\r\n\r\n        geometry:\r\n          alternativeGeometry,\r\n\r\n        rgbRoleExpected:\r\n          altRgbExpected,\r\n\r\n        rgbRoleVisible:\r\n          altRgbVisible\r\n      },\r\n\r\n      diagnostics: {\r\n        canonicalInputsDiffer:\r\n          canonicalInputsDiffer,\r\n\r\n        geometryDiffers:\r\n          geometryDiffers,\r\n\r\n        previousBug:\r\n          \"resolver row.family / row.power bo\u015F kald\u0131\u011F\u0131 i\u00E7in t\u00FCm \u00FCr\u00FCnler balanced_key_fill yoluna d\u00FC\u015F\u00FCyordu.\"\r\n      },\r\n\r\n      noTouch: {\r\n        scoreTouched: false,\r\n        rankingTouched: false,\r\n        productOrderTouched: false,\r\n        commerceTouched: false,\r\n        cartTouched: false,\r\n        shareTouched: false,\r\n        noraTouched: false\r\n      }\r\n    };\r\n  }\r\n\r\n  window\r\n    .GDX_PANEL_V4_R36_H_R8_06B_R2 =\r\n  {\r\n    version: VERSION,\r\n    debug: debug\r\n  };\r\n\r\n  window\r\n    .debugPanelV4R36HR806BR2ProductAwareResolver =\r\n    debug;\r\n\r\n})(window, document);\r\n\r\n\r\n/* =========================================================\r\n   PANEL-V4-R36-H-R8-06B-R4-SEMANTIC-SETUP-LABEL-V1\r\n   RUNTIME QA \u2014 SEMANTIC SETUP LABEL PARITY\r\n   ========================================================= */\r\n(function (window, document) {\r\n  \"use strict\";\r\n\r\n  var VERSION =\r\n    \"PANEL-V4-R36-H-R8-06B-R4-SEMANTIC-SETUP-LABEL-V1\";\r\n\r\n  function clean(value) {\r\n    return String(\r\n      value == null ? \"\" : value\r\n    )\r\n      .replace(/\\s+/g, \" \")\r\n      .trim();\r\n  }\r\n\r\n  function auditSection(selector) {\r\n    var section =\r\n      document.querySelector(selector);\r\n\r\n    if (!section) {\r\n      return {\r\n        found: false,\r\n        applicable: false,\r\n        legacyLabelAbsent: false,\r\n        expectedRgbLabelPresent: false\r\n      };\r\n    }\r\n\r\n    var text =\r\n      clean(section.textContent);\r\n\r\n    var rgbGeometryVisible =\r\n      /RGB Arka\\s*\\/\\s*Kenar/i.test(text);\r\n\r\n    var legacyLabelPresent =\r\n      /\\d+\\s+I\u015F\u0131kl\u0131 Ana I\u015F\u0131k \\+ Dolgu Kurulumu/.test(text);\r\n\r\n    var expectedRgbLabelPresent =\r\n      /\\d+\\s+I\u015F\u0131kl\u0131 Ana I\u015F\u0131k \\+ RGB Arka\\s*\\/\\s*Kenar Kurulumu/.test(\r\n        text\r\n      );\r\n\r\n    return {\r\n      found: true,\r\n      applicable: rgbGeometryVisible,\r\n      rgbGeometryVisible: rgbGeometryVisible,\r\n      legacyLabelAbsent:\r\n        !rgbGeometryVisible ||\r\n        !legacyLabelPresent,\r\n      expectedRgbLabelPresent:\r\n        !rgbGeometryVisible ||\r\n        expectedRgbLabelPresent,\r\n      syncState:\r\n        section.getAttribute(\r\n          \"data-gdx-r8-06b-r4-semantic-copy\"\r\n        ) || \"\",\r\n      expectedSetup:\r\n        section.getAttribute(\r\n          \"data-gdx-r8-06b-r4-expected-setup\"\r\n        ) || \"\"\r\n    };\r\n  }\r\n\r\n  function debug() {\r\n    var bridge =\r\n      window\r\n        .GDX_PANEL_V4_R36_H_R8_06B_COMPARISON_GEOMETRY;\r\n\r\n    if (\r\n      bridge &&\r\n      typeof bridge.render === \"function\"\r\n    ) {\r\n      bridge.render();\r\n    }\r\n\r\n    var winner =\r\n      auditSection(\r\n        '[data-gdx-panel-p28-schematic=\"1\"]'\r\n      );\r\n\r\n    var alternative =\r\n      auditSection(\r\n        '[data-gdx-panel-p31-alt-schematic=\"1\"]'\r\n      );\r\n\r\n    var checks = {\r\n      r806bBridgePresent:\r\n        !!bridge,\r\n\r\n      semanticApiPresent:\r\n        !!(\r\n          bridge &&\r\n          typeof bridge.semanticSetupLabel ===\r\n            \"function\" &&\r\n          typeof bridge.syncSemanticSetupLabel ===\r\n            \"function\"\r\n        ),\r\n\r\n      winnerFound:\r\n        winner.found,\r\n\r\n      alternativeFound:\r\n        alternative.found,\r\n\r\n      winnerSemanticParity:\r\n        !!(\r\n          winner.legacyLabelAbsent &&\r\n          winner.expectedRgbLabelPresent\r\n        ),\r\n\r\n      alternativeSemanticParity:\r\n        !!(\r\n          alternative.legacyLabelAbsent &&\r\n          alternative.expectedRgbLabelPresent\r\n        ),\r\n\r\n      compareApiPreserved:\r\n        !!window.GDX_PANEL_LED_V4_COMPARE,\r\n\r\n      commerceApiPreserved:\r\n        !!window.GDX_PANEL_LED_V4_COMMERCE,\r\n\r\n      shareApiPreserved:\r\n        !!window.GDX_PANEL_LED_V4_SHARE\r\n    };\r\n\r\n    var failed =\r\n      Object.keys(checks)\r\n        .filter(function (key) {\r\n          return checks[key] !== true;\r\n        });\r\n\r\n    return {\r\n      phase:\r\n        \"PANEL-V4-R36-H-R8-06B-R4-SEMANTIC-SETUP-LABEL-QA\",\r\n      version: VERSION,\r\n      ok: failed.length === 0,\r\n      checks: checks,\r\n      failed: failed,\r\n      winner: winner,\r\n      alternative: alternative,\r\n      noTouch: {\r\n        geometryTouched: false,\r\n        resolverTouched: false,\r\n        scoreTouched: false,\r\n        rankingTouched: false,\r\n        productOrderTouched: false,\r\n        commerceTouched: false,\r\n        cartTouched: false,\r\n        shareTouched: false,\r\n        noraTouched: false,\r\n        galleryTouched: false\r\n      }\r\n    };\r\n  }\r\n\r\n  window.GDX_PANEL_V4_R36_H_R8_06B_R4 = {\r\n    version: VERSION,\r\n    debug: debug\r\n  };\r\n\r\n  window.debugPanelV4R36HR806BR4SemanticSetupLabel =\r\n    debug;\r\n\r\n})(window, document);\r\n\r\n/* PANEL-V4-R36-H-R8-06B-R4-R1-SCOPE-FIX-V1 */\r\n\r\n\r\n/* =========================================================\r\n   PANEL-V4-R36-H-R8-06B-R4-R2-SEMANTIC-COPY-OWNER-FIX-V1\r\n   RUNTIME QA \u2014 WINNER SEMANTIC COPY PARITY\r\n   ========================================================= */\r\n(function (window, document) {\r\n  \"use strict\";\r\n\r\n  var VERSION =\r\n    \"PANEL-V4-R36-H-R8-06B-R4-R2-SEMANTIC-COPY-OWNER-FIX-V1\";\r\n\r\n  function clean(value) {\r\n    return String(value == null ? \"\" : value)\r\n      .replace(/\\s+/g, \" \")\r\n      .trim();\r\n  }\r\n\r\n  function debug() {\r\n    var bridge =\r\n      window\r\n        .GDX_PANEL_V4_R36_H_R8_06B_COMPARISON_GEOMETRY;\r\n\r\n    if (\r\n      bridge &&\r\n      typeof bridge.render === \"function\"\r\n    ) {\r\n      bridge.render();\r\n    }\r\n\r\n    var root =\r\n      document.getElementById(\r\n        \"gdx-panel-led-v4-root\"\r\n      );\r\n\r\n    var pair =\r\n      bridge &&\r\n      typeof bridge.resolvePair === \"function\"\r\n        ? bridge.resolvePair()\r\n        : null;\r\n\r\n    var winner =\r\n      pair &&\r\n      bridge &&\r\n      typeof bridge.resolveGeometry === \"function\"\r\n        ? bridge.resolveGeometry(\r\n            pair.winner,\r\n            \"winner\"\r\n          )\r\n        : null;\r\n\r\n    var expected =\r\n      winner &&\r\n      bridge &&\r\n      typeof bridge.semanticSetupLabel === \"function\"\r\n        ? bridge.semanticSetupLabel(\r\n            winner.model\r\n          )\r\n        : \"\";\r\n\r\n    if (\r\n      root &&\r\n      winner &&\r\n      bridge &&\r\n      typeof bridge.syncWinnerSemanticCopy === \"function\"\r\n    ) {\r\n      bridge.syncWinnerSemanticCopy(\r\n        root,\r\n        winner.model\r\n      );\r\n    }\r\n\r\n    var roleAnchor =\r\n      root\r\n        ? root.querySelector(\r\n            '[data-p27-block=\"role_setup_preview\"] p,' +\r\n            '.is-p27-role-summary p'\r\n          )\r\n        : null;\r\n\r\n    var winnerSection =\r\n      root\r\n        ? root.querySelector(\r\n            '[data-gdx-panel-p28-schematic=\"1\"]'\r\n          )\r\n        : null;\r\n\r\n    var winnerSummary =\r\n      winnerSection\r\n        ? winnerSection.querySelector(\r\n            \".gdx-p28-schema-summary\"\r\n          )\r\n        : null;\r\n\r\n    var roleText =\r\n      clean(\r\n        roleAnchor &&\r\n        roleAnchor.textContent\r\n      );\r\n\r\n    var summaryText =\r\n      clean(\r\n        winnerSummary &&\r\n        winnerSummary.textContent\r\n      );\r\n\r\n    var legacyPattern =\r\n      /\\d+\\s+I\u015F\u0131kl\u0131 Ana I\u015F\u0131k \\+ Dolgu Kurulumu/;\r\n\r\n    var checks = {\r\n      bridgePresent:\r\n        !!bridge,\r\n\r\n      winnerResolved:\r\n        !!winner,\r\n\r\n      rgbExpected:\r\n        !!expected,\r\n\r\n      roleAnchorPresent:\r\n        !!roleAnchor,\r\n\r\n      winnerSummaryPresent:\r\n        !!winnerSummary,\r\n\r\n      roleAnchorExpectedPresent:\r\n        !!(\r\n          roleAnchor &&\r\n          expected &&\r\n          roleText.indexOf(expected) !== -1\r\n        ),\r\n\r\n      winnerSummaryExpectedPresent:\r\n        !!(\r\n          winnerSummary &&\r\n          expected &&\r\n          summaryText.indexOf(expected) !== -1\r\n        ),\r\n\r\n      roleAnchorLegacyAbsent:\r\n        !legacyPattern.test(roleText),\r\n\r\n      winnerSummaryLegacyAbsent:\r\n        !legacyPattern.test(summaryText),\r\n\r\n      compareApiPreserved:\r\n        !!window.GDX_PANEL_LED_V4_COMPARE,\r\n\r\n      commerceApiPreserved:\r\n        !!window.GDX_PANEL_LED_V4_COMMERCE,\r\n\r\n      shareApiPreserved:\r\n        !!window.GDX_PANEL_LED_V4_SHARE\r\n    };\r\n\r\n    var failed =\r\n      Object.keys(checks)\r\n        .filter(function (key) {\r\n          return checks[key] !== true;\r\n        });\r\n\r\n    return {\r\n      phase:\r\n        \"PANEL-V4-R36-H-R8-06B-R4-R2-SEMANTIC-COPY-QA\",\r\n      version: VERSION,\r\n      ok: failed.length === 0,\r\n      checks: checks,\r\n      failed: failed,\r\n      expected: expected,\r\n      roleAnchorText: roleText,\r\n      winnerSummaryText: summaryText,\r\n      noTouch: {\r\n        geometryTouched: false,\r\n        resolverTouched: false,\r\n        scoreTouched: false,\r\n        rankingTouched: false,\r\n        productOrderTouched: false,\r\n        commerceTouched: false,\r\n        cartTouched: false,\r\n        shareTouched: false,\r\n        noraTouched: false,\r\n        galleryTouched: false,\r\n        alternativeSetupTouched: false\r\n      }\r\n    };\r\n  }\r\n\r\n  window.GDX_PANEL_V4_R36_H_R8_06B_R4_R2 = {\r\n    version: VERSION,\r\n    debug: debug\r\n  };\r\n\r\n  window.debugPanelV4R36HR806BR4R2SemanticCopy =\r\n    debug;\r\n\r\n})(window, document);\r\n\r\n\r\n/* =========================================================\r\n   PANEL-V4-R36-H-R8-06D-SETUP-COUNT-CUSTOMER-LANGUAGE-PARITY-V1\r\n   RUNTIME QA\r\n   ========================================================= */\r\n(function (window, document) {\r\n  \"use strict\";\r\n\r\n  var VERSION =\r\n    \"PANEL-V4-R36-H-R8-06D-SETUP-COUNT-CUSTOMER-LANGUAGE-PARITY-V1\";\r\n\r\n  function clean(value) {\r\n    return String(value == null ? \"\" : value)\r\n      .replace(/\\s+/g, \" \")\r\n      .trim();\r\n  }\r\n\r\n  function debug() {\r\n    var bridge =\r\n      window.GDX_PANEL_V4_R36_H_R8_06B_COMPARISON_GEOMETRY;\r\n\r\n    if (bridge && typeof bridge.render === \"function\") {\r\n      bridge.render();\r\n    }\r\n\r\n    var root =\r\n      document.getElementById(\"gdx-panel-led-v4-root\");\r\n\r\n    var pair =\r\n      bridge && typeof bridge.resolvePair === \"function\"\r\n        ? bridge.resolvePair()\r\n        : null;\r\n\r\n    var winner =\r\n      pair && bridge && typeof bridge.resolveGeometry === \"function\"\r\n        ? bridge.resolveGeometry(pair.winner, \"winner\")\r\n        : null;\r\n\r\n    var alternative =\r\n      pair && bridge && typeof bridge.resolveGeometry === \"function\"\r\n        ? bridge.resolveGeometry(pair.alternative, \"alternative\")\r\n        : null;\r\n\r\n    var expected =\r\n      winner && bridge && typeof bridge.setupLabelFromModel === \"function\"\r\n        ? bridge.setupLabelFromModel(winner.model)\r\n        : \"\";\r\n\r\n    if (\r\n      root && winner && bridge &&\r\n      typeof bridge.syncWinnerSetupParity === \"function\"\r\n    ) {\r\n      bridge.syncWinnerSetupParity(root, winner.model);\r\n    }\r\n\r\n    var roleAnchor =\r\n      root\r\n        ? root.querySelector(\r\n            '[data-p27-block=\"role_setup_preview\"] p,' +\r\n            '.is-p27-role-summary p'\r\n          )\r\n        : null;\r\n\r\n    var winnerSection =\r\n      root\r\n        ? root.querySelector('[data-gdx-panel-p28-schematic=\"1\"]')\r\n        : null;\r\n\r\n    var winnerSummary =\r\n      winnerSection\r\n        ? winnerSection.querySelector('.gdx-p28-schema-summary')\r\n        : null;\r\n\r\n    var alternativeSection =\r\n      root\r\n        ? root.querySelector('[data-gdx-panel-p31-alt-schematic=\"1\"]')\r\n        : null;\r\n\r\n    var altRows =\r\n      alternativeSection\r\n        ? Array.prototype.slice.call(\r\n            alternativeSection.querySelectorAll(\r\n              '[data-gdx-r8-06b-summary=\"1\"] li span'\r\n            )\r\n          ).map(function (node) {\r\n            return clean(node.textContent);\r\n          })\r\n        : [];\r\n\r\n    var roleText = clean(roleAnchor && roleAnchor.textContent);\r\n    var winnerSummaryText = clean(winnerSummary && winnerSummary.textContent);\r\n    var winnerLightCount =\r\n      winner && winner.model && Array.isArray(winner.model.lights)\r\n        ? winner.model.lights.length\r\n        : 0;\r\n\r\n    var checks = {\r\n      bridgePresent: !!bridge,\r\n      winnerResolved: !!winner,\r\n      alternativeResolved: !!alternative,\r\n      setupParityApiPresent: !!(\r\n        bridge &&\r\n        typeof bridge.setupLabelFromModel === \"function\" &&\r\n        typeof bridge.customerRoleLabel === \"function\" &&\r\n        typeof bridge.syncWinnerSetupParity === \"function\"\r\n      ),\r\n      winnerExpectedSetupPresent: !!expected,\r\n      winnerSetupCountMatchesModel: !!(\r\n        expected &&\r\n        winnerLightCount &&\r\n        expected.indexOf(String(winnerLightCount) + \" I\u015F\u0131kl\u0131\") === 0\r\n      ),\r\n      roleAnchorExpectedPresent: !!(\r\n        roleAnchor && expected && roleText.indexOf(expected) !== -1\r\n      ),\r\n      winnerSummaryExpectedPresent: !!(\r\n        winnerSummary && expected && winnerSummaryText.indexOf(expected) !== -1\r\n      ),\r\n      alternativeSummaryPresent: altRows.length >= 2,\r\n      alternativeEnglishKeyAbsent: !altRows.some(function (row) {\r\n        return /^Key\\s*:/i.test(row);\r\n      }),\r\n      alternativeEnglishFillAbsent: !altRows.some(function (row) {\r\n        return /^Fill\\s*:/i.test(row);\r\n      }),\r\n      alternativeAnaIsikPresent: altRows.some(function (row) {\r\n        return /^Ana I\u015F\u0131k\\s*:/i.test(row);\r\n      }),\r\n      alternativeDolguIsigiPresent: altRows.some(function (row) {\r\n        return /^Dolgu I\u015F\u0131\u011F\u0131\\s*:/i.test(row);\r\n      }),\r\n      compareApiPreserved: !!window.GDX_PANEL_LED_V4_COMPARE,\r\n      commerceApiPreserved: !!window.GDX_PANEL_LED_V4_COMMERCE,\r\n      shareApiPreserved: !!window.GDX_PANEL_LED_V4_SHARE\r\n    };\r\n\r\n    var failed = Object.keys(checks).filter(function (key) {\r\n      return checks[key] !== true;\r\n    });\r\n\r\n    return {\r\n      phase:\r\n        \"PANEL-V4-R36-H-R8-06D-SETUP-COUNT-CUSTOMER-LANGUAGE-PARITY-QA\",\r\n      version: VERSION,\r\n      ok: failed.length === 0,\r\n      checks: checks,\r\n      failed: failed,\r\n      expectedWinnerSetup: expected,\r\n      winnerLightCount: winnerLightCount,\r\n      roleAnchorText: roleText,\r\n      winnerSummaryText: winnerSummaryText,\r\n      alternativeSummaryRows: altRows,\r\n      noTouch: {\r\n        geometryTouched: false,\r\n        resolverTouched: false,\r\n        scoreTouched: false,\r\n        rankingTouched: false,\r\n        productOrderTouched: false,\r\n        uiUsecaseMappingTouched: false,\r\n        noraTouched: false,\r\n        commerceTouched: false,\r\n        shareTouched: false,\r\n        a3Touched: false,\r\n        galleryTouched: false\r\n      }\r\n    };\r\n  }\r\n\r\n  window.GDX_PANEL_V4_R36_H_R8_06D = {\r\n    version: VERSION,\r\n    debug: debug\r\n  };\r\n\r\n  window.debugPanelV4R36HR806DSetupCountCustomerLanguageParity = debug;\r\n\r\n})(window, document);\r\n\r\n/* CANFOTO R4-PA P1.20H \u2014 NORA USER LANGUAGE CLOSE V1 */\r\n"],
  "mappings": "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ACC,MACA,QAAQ,KAAK,MAAM,EAAI,GAG3B,yBACE,CAAC,EACC,MACA,QACE,KAAK,WACP,EAAI,GAGR,6BACE,eACE,eAEJ,kCACE,YACE,YAEJ,qBACE,CAAC,mBACD,iBAEF,0BACE,CAAC,gBACD,cAEF,sCACE,CAAC,EACC,QACA,aACA,eAAe,QACb,OAAO,YAAc,OACvB,IAAM,IACN,oBAAoB,QAClB,YAAY,YACZ,OACF,IAAM,IAGV,iDACE,CAAC,uBACD,gBAEF,oBACE,CAAC,CAACA,QACC,yBAEL,qBACE,CAAC,CAACA,QACC,0BAEL,kBACE,CAAC,CAACA,QACC,sBACP,EAEI,OACF,OAAO,KAAK,MAAM,EACf,OAAO,SAAU,IAAK,CACrB,OAAO,OAAO,GAAG,IAAM,EACzB,CAAC,EAEL,MAAO,CACL,GACE,OAAO,SAAW,EAEpB,MACE,0DAEF,QACE,QAEF,OACE,OAEF,OACE,OAEF,OAAQ,CACN,MACE,MACA,KAAK,OACD,MACE,KAAK,OACF,YACH,KAAK,OAAO,KACd,EACA,GAEN,OACE,KACI,SACE,KAAK,MACP,EACA,GAEN,OACE,KACI,QACE,KAAK,MACP,EACA,EAEN,iBACE,eAEF,eACE,aAEF,YACE,OACI,OAAO,YACP,GAEN,SACE,eAEF,gBACE,kBAEF,eACE,gBACJ,EAEA,YAAa,CACX,MACE,MACA,KAAK,YACD,MACE,KAAK,YACF,YACH,KAAK,YAAY,KACnB,EACA,GAEN,OACE,KACI,SACE,KAAK,WACP,EACA,GAEN,OACE,KACI,QACE,KAAK,WACP,EACA,EAEN,iBACE,YAEF,eACE,UAEF,YACE,YACI,YAAY,YACZ,GAEN,SACE,oBAEF,gBACE,eAEF,eACE,aACJ,EAEA,YAAa,CACX,sBACE,sBAEF,gBACE,gBAEF,YACE,6IACJ,EAEA,QAAS,CACP,aAAc,GACd,eAAgB,GAChB,oBAAqB,GACrB,gBAAiB,GACjB,YAAa,GACb,aAAc,GACd,YAAa,EACf,CACF,CACF,CAEAA,QACG,6BACH,CACE,QAAS,QACT,MAAO,KACT,EAEAA,QACG,4CACD,KAEJ,GAAG,O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",
  "names": ["window", "document", "value"]
}
