1window.BlindLockLifetimeCheckout = { 2 // Der Vorflug (website-ops/tools/launch-preflight.mjs) laesst `live` nur mit 3 // dieser Erklaerung durch. Sie ist die bewusste Aussage "dieser Stand ist der 4 // oeffentliche", nicht bloss ein Schalter mehr. 5 environment: 'production', 6 7 // The one switch that opens the shop. `preview` shows prices and the 8 // founders list and never links to a checkout. `live` links every phase to 9 // the hosted checkout below â flip it only when the merchant account can 10 // take real money AND there is something to download. 11 launchMode: 'live', 12 13 // Checkout: hosted links only. Every entry must point at the Merchant of 14 // Record's own checkout page. No third-party payment JavaScript is loaded 15 // into our documents â see de/checkout.html for why. 16 // Incomplete config never charges â UI stays in preview. 17 // 18 // Split by page language on purpose. Each link carries `lang` as Polar 19 // metadata; that metadata decides the post-purchase page AND the language of 20 // the licence mail. A German buyer on an English link gets an English mail 21 // and the English success page. Source of truth for these six addresses: 22 // website-ops/docs/polar-kauf-links.md. 23 checkoutUrls: { 24 de: { 25 phase1: 'https://buy.polar.sh/polar_cl_qLDi6nwsuF7uDMLSdWzMwqhoeZpFIoApNk7h33ASZy8', 26 phase2: 'https://buy.polar.sh/polar_cl_lwFnMZekz0IxPeux5vNN5Rp7vqpxi15S4dEeg3z1zRI', 27 phase3: 'https://buy.polar.sh/polar_cl_nRhiIm5H1ULHZlV1ivZo4LdX9UnROgjJ4LV9h4bhF8d' 28 }, 29 en: { 30 phase1: 'https://buy.polar.sh/polar_cl_wWUgrpr8W9HuZQqg3DDYWDEO4iiDO6sSfXeAJ1oFRA4', 31 phase2: 'https://buy.polar.sh/polar_cl_ev2JveAGH5qzyKokNKweVGSX971VIoAtxRlRl3rycvW', 32 phase3: 'https://buy.polar.sh/polar_cl_WxczxnGIRDvhDFMHWNtKJS3d3mkdGdtlkZyr6299uma' 33 } 34 }, 35 36 // Locale success pages. The same URLs must be configured as the post-purchase 37 // redirect in the Merchant of Record's dashboard. 38 // Ohne .html: die Website leitet jede .html-Adresse auf die kurze Form um 39 // (308, gemessen am 28.08.2026). Nach dem Bezahlen soll niemand einen 40 // Umweg gehen. Und ohne die Vorgangsnummer, die der Haendler anbieten 41 // wuerde: die Seite zeigt jedem dasselbe und speichert nichts -- eine 42 // Kennung in der Adresse landet im Browser-Verlauf und in jedem 43 // Protokoll, durch das sie laeuft. 44 successUrls: { 45 en: 'https://blindlock.app/en/purchase-success', 46 de: 'https://blindlock.app/de/kauf-erfolgreich' 47 }, 48 49 // Real store/binary URLs only â leave empty until each build ships. 50 downloadUrls: { 51 windows: 'https://dl.blindlock.app/BlindLock_1.8.8_x64-setup.exe', 52 macos: 'https://dl.blindlock.app/BlindLock_1.8.8_aarch64.dmg', 53 linux: 'https://dl.blindlock.app/BlindLock_1.8.8_amd64.deb', 54 // iOS und Android sind NICHT ausgeliefert: es gibt keine Store-Eintraege. 55 // Leer lassen, bis es sie gibt â eine erfundene Adresse waere schlimmer als 56 // eine leere. Sie stehen deshalb auch nicht in `launchPlatforms` unten. 57 ios: '', 58 android: '' 59 }, 60 61 // Launch surface; live cutover expects a HTTPS URL per platform above. 62 // Nur die Plattformen, fuer die oben eine echte Adresse steht. iOS und 63 // Android bleiben draussen, bis ihre Store-Eintraege existieren; sie sind auf 64 // der Website weiterhin als dauerhaft kostenlos beschrieben, aber sie sind 65 // nicht Teil dessen, was dieser Start ausliefert. 66 launchPlatforms: ['windows', 'macos', 'linux'], 67 68 // Phase math + urgency copy. 69 // 70 // `availabilityUrl` is where the page gets the REAL number: the licence 71 // server answers `{"sold": n}` counted from the records that mint the 72 // licences, so the counter on the pricing page cannot drift from what was 73 // actually sold. It is the only honest way to show scarcity, and the page 74 // shows it prominently â so it must never become a hand-edited constant 75 // here. Leave the address in place. 76 // 77 // `sold` is only the fallback for the seconds before the first answer 78 // arrives, and for a visitor whose network eats the call. It is 0 because 79 // that is the safe direction: a page that briefly shows more availability 80 // than there is has undersold; one that shows less has lied. 81 // 82 // The caps are OURS, not the merchant's â the merchant has no idea a phase 83 // exists. Changing one changes what the page promises, nothing else. 84 lifetime: { 85 phases: [ 86 // `cap` is what the phase actually holds, `shown` is what the page 87 // advertises. They differ by one on purpose: the founder's own
88 // end-to-end test purchase consumes a licence that was never for 89 // sale, so 100 stay available to customers either way. Without 90 // this the page would read 99 of 100 forever after that test. 91 { phase: 1, cap: 101, shown: 100, price: 49 }, 92 { phase: 2, cap: 350, price: 89 }, 93 { phase: 3, cap: 550, price: 109 } 94 ], 95 sold: 0, 96 availabilityUrl: 'https://api.blindlock.app/api/v1/lifetime-availability', 97 pollSeconds: 60 98 }, 99 100 // Pre-launch waitlist (Brevo DOI). Empty actions â coming soon. Not checkout. 101 founders: { 102 formActionEn: 'https://0f78531c.sibforms.com/v2/serve/MUIFAASQEz7uSdN5l0oZll0o33nj9EbKBXjguKMdFd0cM2B-ZfAACBpzONuqcQQzy1DwgJenDJNrvnAs6QDKo8oUSp8pLkGgKFISuD-O5jec6-Fr1kqxY1pTNYQS099Iyl-Era_s76kERCzoDsqMEgZ6SJyFWdaOf7U0V_8M59ESkicPAdVyhKPxTggx4vlwGQd-xxfe0BlZko0DgQ==', 103 formActionDe: 'https://0f78531c.sibforms.com/v2/serve/MUIFAAWjFwBXI6gfLozgRy48XteR32LufOV5NOdYhaA6tVPJWUeMPd0sXFhEECZZsGLFYiPI5F_4o2bJ9METLVzG51rmss5KwmEiif7Rty0JowCQb_UiR8URkHAVHaJthudbJ-88g_yYI5a9es2h_fQ8jKexuIwZon4fkOwTvHqf8VYuBKyUka6xyBgPRViJT_ssDRz4psO_vE1LjA==', 104 emailField: 'EMAIL' 105 } 106};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.