https://cubari.moe/read/imgchest/o24av9o3e4l/1/1/

ID de exploración:
e633e7fe-98db-4eee-8fc4-4cfe35b4af12Finalizado
URL enviada:
https://t.co/0wxMpjrDXq
Informe finalizado:

Enlaces: 0 encontrados

Los enlaces salientes identificados en la página

Variables JavaScript: 131 encontradas

Las variables JavaScript globales cargadas en el objeto de ventana de una página son variables declaradas fuera de las funciones y a las que se puede acceder desde cualquier lugar del código en el ámbito actual

NombreTipo
onbeforetoggleobject
documentPictureInPictureobject
onscrollendobject
RemoteStoragefunction
Widgetfunction
gtagfunction
dataLayerobject
sciencefunction
Pickrfunction
JSZipfunction

Mensajes de registro de la consola: 1 encontrados

Mensajes registrados en la consola web

TipoCategoríaRegistro
warningother
URL
https://cubari.moe/static/js/init.js?v=29a9e3e
Texto
Settings were found to be corrupted and so were reset.

HTML

El cuerpo HTML sin procesar de la página

<!DOCTYPE html><html style="--readerBg: #000000; --sidebarCol: #28292B; --accentCol: #B73636; --textCol: #EEEEEE; --icoCol: #EEEEEE; --sidebarColDark: #191a1c; --sidebarColDarkA: #191a1c00; --prevCol: #212224; --accentSelected: #ffffff; --accentSelectedInvert: #444444; --borderColor: rgba(0,0,0,0.7); --blackLight: rgba(0,0,0,0.2); --sidebarColFocus: #0d0e10; --rescueShade: unset; --rdrBorderL: 1px; --rdr-wb: 2px; --blackFlag: rgba(0,0,0,0.7); --rdrAncBottomWhite: rgba(255,255,255,0.35); overflow: auto;"><head>
  <meta charset="UTF-8">
  <meta name="theme-color" content="#2b2f33">
  <title>xx30 | Chapter 1 | Cubari</title>
  <meta name="twitter:title" content="xx30 | Chapter 1 | Cubari">
  <meta property="og:title" content="xx30 | Chapter 1 | Cubari">
  <meta name="description" content="Read chapter 1 of xx30 | Cubari">
  <meta name="twitter:card" content="summary">
  
  <meta property="og:description" content="Read the xx30 manga series.">
  <meta name="twitter:description" content="Read the xx30 manga series.">
  <meta property="og:image" content="https://cdn.imgchest.com/files/l7lxcmlmb67.png">
  <meta name="twitter:image" content="https://cdn.imgchest.com/files/l7lxcmlmb67.png">
  
  <meta property="og:url" content="https://cubari.moe/read/imgchest/o24av9o3e4l/1/1/">
  <meta name="viewport" content="width=device-width">
  <link rel="stylesheet" href="/static/css/pickr.css?v=29a9e3e
">
  <link rel="canonical" href="https://cubari.moe/read/imgchest/o24av9o3e4l/1/1/">
  <link rel="stylesheet" type="text/css" href="/static/css/reader.css?v=29a9e3e
">
  
<link rel="manifest" href="/static/manifest.json?v=29a9e3e
">
<link rel="shortcut icon" sizes="128x128" type="image/png" href="/static/favicon.png?v=29a9e3e
" defer="">
<link rel="icon" sizes="128x128" type="image/png" href="/static/favicon.png?v=29a9e3e
">
<link rel="icon" sizes="512x512" type="image/png" href="/static/favicon.png?v=29a9e3e
">
<link rel="apple-touch-icon" sizes="128x128" href="/static/favicon.png?v=29a9e3e
">
<link rel="apple-touch-icon" sizes="256x256" href="/static/favicon.png?v=29a9e3e
">
<link rel="apple-touch-icon" sizes="512x512" href="/static/favicon.png?v=29a9e3e
">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
<meta name="theme-color" content="#2b2f33">
<meta name="format-detection" content="telephone=no">
  
<meta name="referrer" content="same-origin">
<script src="/static/js/remotestorage.min.js"></script>
<script src="/static/js/widget.min.js"></script>

<script id="history_coverUrl" type="application/json">"https://cdn.imgchest.com/files/l7lxcmlmb67.png"</script>



<script id="history_source" type="application/json">"read/imgchest"</script>



<script id="history_slug" type="application/json">"o24av9o3e4l"</script>



<script id="history_url" type="application/json">"read/imgchest/o24av9o3e4l"</script>



<script id="history_title" type="application/json">"xx30"</script>

<script>
  // remoteStorage backend that'll be our plugged in module
  // This should be abstracted from what actually handles updates,
  // since this'll give us the ability to pull this out in the future
  const RS_PATH = "cubari";

  const remoteStorage = (() => {
    // Define the schema for our history
    const Model = {name: RS_PATH, builder: (private) => {
      const SERIES_META = "series";
      const REPLACEMENT_STR = "{SOURCE_SLUG_REPLACEMENT}";
      const SERIES_META_PATH_BASE = "series/";
      const SERIES_META_PATH = `${SERIES_META_PATH_BASE}${REPLACEMENT_STR}`;

      private.declareType(SERIES_META, {
        type: "object",
        properties: {
          slug: {
            type: "string"
          },
          coverUrl: {
            type: "string"
          },
          source: {
            type: "string"
          },
          url: {
            type: "string"
          },
          title: {
            type: "string"
          },
          timestamp: {
            type: "number"
          },
          chapters: {
            type: "array",
            default: [] // Note that these aren't validated by our schema handler
          },
          pinned: {
            type: "boolean",
            default: false // Thus it's documenting only; handle it
          }
        },
        required: ["slug", "source", "url", "title", "timestamp", "chapters", "pinned"]
      });

      let firstPartyValidator = (source) => {
        return (source === "manga" || source === "series" || source === "default");
      };

      let pathBuilder = (path, slug, source) => {
        if (!source) source = "default";
        if (firstPartyValidator(source)) source = "default";
        source = source.replace(" ", "_");
        return path.replace(REPLACEMENT_STR, `${source}-${slug}`);
      };

      let seriesBuilder = (slug, coverUrl, source, url, title, pinned, chapters) => {
        source = source.replace(" ", "_");
        if (firstPartyValidator(source)) {
          source = "default";
          pinned = true; // First party chapters always pinned
        }
        return {
          slug: slug,
          coverUrl: coverUrl || "",
          source: source,
          url: url,
          title: title,
          timestamp: Date.now(),
          chapters: chapters || [],
          pinned: (pinned === undefined) ? false : pinned
        };
      };

      return {
        exports: {
          firstPartyHandler: (source) => {
            return firstPartyValidator(source) ? "default" : source;
          },
          slugBuilder: (slug, source) => {
            return `${source}-${slug}`;
          },
          addSeries: (slug, coverUrl, source, url, title, pinned, chapters) => {
            let toStore = seriesBuilder(slug, coverUrl, source, url, title, pinned, chapters);
            return private.storeObject(
              SERIES_META,
              pathBuilder(SERIES_META_PATH, slug, source),
              toStore);
          },
          editSeries: async (slug, coverUrl, source, url, title, pinned, chapters) => {
            let obj = await private.getObject(pathBuilder(SERIES_META_PATH, slug, source));
            if (obj) {
              let toStore = seriesBuilder(
                slug || obj.slug,
                coverUrl || obj.coverUrl,
                source || obj.source,
                url || obj.url,
                title || obj.title,
                (pinned !== undefined) ? pinned : obj.pinned,
                chapters || obj.chapters // Empty array is truthy
              );
              return private.storeObject(
                SERIES_META,
                pathBuilder(SERIES_META_PATH, slug, source),
                toStore
              )
            } else {
              // Fail-fast instead of adding the series
              throw new Error("Cannot edit a non-existent series.");
            }
          },
          getSeries: (slug, source) => {
            return private.getObject(pathBuilder(SERIES_META_PATH, slug, source));
          },
          removeSeries: (slug, source) => {
            return private.remove(pathBuilder(SERIES_META_PATH, slug, source));
          },
          getAllSeries: () => {
            // Note for the future: getAll gives you the objects within, while
            // getListing gives you just a list of files; thus, this gives you the
            // metadata within
            if (private.storage.connected) {
              // maxAge cache in millis
              return private.getAll(SERIES_META_PATH_BASE, 30000);
            } else {
              // Promise resolves immediately if no storage is connected
              // https://remotestoragejs.readthedocs.io/en/v1.2.3/js-api/base-client.html#caching-logic-for-read-operations
              return private.getAll(SERIES_META_PATH_BASE);
            }
          }
        }
      }
    }};

    let remoteStorage = new RemoteStorage({cache: true, modules: [Model]});

    remoteStorage.access.claim(RS_PATH, "rw");
    remoteStorage.caching.enable(`/${RS_PATH}/`);

    return remoteStorage;
  })();

  // This will be the main handler that deals with both
  // chapter and series history. All logic should be here
  // and abstracted from the rest of the code
  const globalHistoryHandler = (() => {
    const STORAGE_KEY = "proxyHistory";
    const SORT_KEY = "timestamp";
    const MAX_VALUES = 20;

    // Helper to return an array of objects from a nested object, sorted by key
    let sortObjectByKey = (obj, key) => {
      let sortable = [];
      for (let k in obj) {
        sortable.push(obj[k]);
      }
      sortable.sort((f, s) => s[key] - f[key]);
      return sortable;
    };

    const sync = async () => {
      // Sync operation ensures the local cache doesn't have any dangling objects.
      // We'll sort for the timestamp key since that's what we use everywhere else
      let allSeries = await remoteStorage[RS_PATH].getAllSeries();
      for (const [key, value] of Object.entries(allSeries)) {
        try {
          if (!value[SORT_KEY]) {
            // We don't use split here since the slug can potentially include "-"
            let separatorIndex = key.indexOf("-");
            let slug = key.slice(separatorIndex + 1);
            let source = key.slice(0, separatorIndex);
            await remoteStorage[RS_PATH].removeSeries(slug, source);
          }
        } catch (e) {
          console.error("[Global History] Sync error, continuing.");
        }
      }
    };

    const enabled = () => {
      return localStorage.getItem(STORAGE_KEY) ? true : false;
    };

    const enable = () => {
      let settings = localStorage.getItem("settings");
      let redirected = localStorage.getItem("redirected");
      let storageOnce = localStorage.getItem("storageOnce");
      localStorage.clear();
      if (settings) localStorage.setItem("settings", settings);
      if (redirected) localStorage.setItem("redirected", redirected);
      if (storageOnce) localStorage.setItem("storageOnce", storageOnce);
      localStorage.setItem(STORAGE_KEY, true);
    };

    const disable = () => {
      let settings = localStorage.getItem("settings");
      let redirected = localStorage.getItem("redirected");
      let storageOnce = localStorage.getItem("storageOnce");
      localStorage.clear();
      if (settings) localStorage.setItem("settings", settings);
      if (redirected) localStorage.setItem("redirected", redirected);
      if (storageOnce) localStorage.setItem("storageOnce", storageOnce);
    };

    const pushSeries = async (slug, coverUrl, source, url, title) => {
      await sync();
      source = remoteStorage[RS_PATH].firstPartyHandler(source);
      let allCurrentSeries = sortObjectByKey(await remoteStorage[RS_PATH].getAllSeries() || {}, SORT_KEY);
      let existingSeries = allCurrentSeries.find((e) => e.slug === slug && e.source === source.replace(" ", "_"));

      allCurrentSeries = allCurrentSeries.filter(e => !e.pinned);

      // Be mindful of the cap regardless of the state of the tree
      while ((allCurrentSeries.length + ((existingSeries) ? 0 : 1)) > MAX_VALUES) {
        let last = allCurrentSeries.pop();
        await remoteStorage[RS_PATH].removeSeries(last.slug, last.source);
      }

      if (existingSeries) {
        // Effectively this updates the timestamp of the series, pushing it to the top
        return remoteStorage[RS_PATH].editSeries(slug, coverUrl, source, url, title, existingSeries.pinned, existingSeries.chapters);
      } else {
        return remoteStorage[RS_PATH].addSeries(slug, coverUrl, source, url, title, undefined, undefined);
      }
    };

    const removeSeries = async (slug, source) => {
      await sync();
      return remoteStorage[RS_PATH].removeSeries(slug, source);
    };

    const removeAllUnpinnedSeries = async () => {
      let series = await globalHistoryHandler.getAllUnpinnedSeries();
      if(series) {
        Array.prototype.forEach.call(series, srs => {
            removeSeries(srs.slug, srs.source)
        })
      }
    };

    const addChapters = async (slug, source, chapters) => {
      let existingSeries = await remoteStorage[RS_PATH].getSeries(slug, source);

      if (existingSeries) {
        chapters = [...new Set([...chapters, ...existingSeries.chapters])];
        return remoteStorage[RS_PATH].editSeries(slug, undefined, source, undefined, undefined, undefined, chapters);
      } else {
        console.error("[Global History] addChapters - Series didn't exist.");
      }
    };

    const addChapter = async (slug, source, chapter) => {
      return addChapters(slug, source, [chapter]);
    };

    const removeChapter = async (slug, source, chapter) => {
      let existingSeries = await remoteStorage[RS_PATH].getSeries(slug, source);

      if (existingSeries) {
        chapters = existingSeries.chapters.filter(e => e !== chapter);
        return remoteStorage[RS_PATH].editSeries(slug, undefined, source, undefined, undefined, undefined, chapters);
      } else {
        console.error("[Global History] removeChapter - Series didn't exist.");
      }
    };

    const removeAllChapters = async (slug, source) => {
      let existingSeries = await remoteStorage[RS_PATH].getSeries(slug, source);

      if (existingSeries) {
        return remoteStorage[RS_PATH].editSeries(slug, undefined, source, undefined, undefined, undefined, []);
      } else {
        console.error("[Global History] removeAllChapters - series didn't exist.");
      }
    };

    const getReadChapters = async (slug, source) => {
      let existingSeries = await remoteStorage[RS_PATH].getSeries(slug, source);

      if (existingSeries) {
        return existingSeries.chapters;
      } else {
        console.error("[Global History] getReadChapters - series didn't exist.");
      }
    };

    const pinSeries = async (slug, source) => {
      let existingSeries = await remoteStorage[RS_PATH].getSeries(slug, source);

      if (existingSeries) {
        return remoteStorage[RS_PATH].editSeries(slug, undefined, source, undefined, undefined, true, undefined);
      } else {
        console.error("[Global History] pinSeries - series didn't exist.");
      }
    };

    const unpinSeries = async (slug, source) => {
      let existingSeries = await remoteStorage[RS_PATH].getSeries(slug, source);

      if (existingSeries) {
        return remoteStorage[RS_PATH].editSeries(slug, undefined, source, undefined, undefined, false, undefined);
      } else {
        console.error("[Global History] unpinSeries - series didn't exist.");
      }
    };

    const getAllPinnedSeries = async () => {
      await sync();
      return sortObjectByKey(await remoteStorage[RS_PATH].getAllSeries() || {}, SORT_KEY).filter(e => e.pinned);
    };

    const getAllUnpinnedSeries = async () => {
      await sync();
      return sortObjectByKey(await remoteStorage[RS_PATH].getAllSeries() || {}, SORT_KEY).filter(e => !e.pinned);
    };

    return {
      max: MAX_VALUES,
      enabled,
      pushSeries,
      removeSeries,
      removeAllUnpinnedSeries,
      addChapters,
      addChapter,
      removeChapter,
      removeAllChapters,
      getReadChapters,
      pinSeries,
      unpinSeries,
      getAllPinnedSeries,
      getAllUnpinnedSeries,
      toggle: {
        enable,
        disable
      }
    };
  })();

  const tag = () => {
    try {
      let coverUrl = JSON.parse(document.getElementById("history_coverUrl").textContent);

      let source = JSON.parse(document.getElementById("history_source").textContent);

      if (!source) {
        source = window.location.pathname
        .split("/")
        .filter(e => e)[1]
        .replace("_", " ");
      } else {
        source = source.split("/")[1];
      }

      let slug = JSON.parse(document.getElementById("history_slug").textContent);

      let url = JSON.parse(document.getElementById("history_url").textContent);

      if (url) {
        url = `/${url}`.split(slug)[0] + slug;
      }

      let title = JSON.parse(document.getElementById("history_title").textContent);

      if (source && slug && url && title) {
        remoteStorage.on("ready", async () => {
          await globalHistoryHandler.pushSeries(slug, coverUrl, source, url, title);
          window.dispatchEvent(new CustomEvent("history-ready"));
        });
      }
    } catch (e) {
      // Do nothing, silently fail.
    }
  };
window.addEventListener("load", async () => {
  if((await localStorage.getItem('storageOnce')) == "1") return;
  if (!globalHistoryHandler.enabled()) {
    globalHistoryHandler.toggle.enable();
    localStorage.setItem('storageOnce', "1")
  }
})
</script>

<script>
  // Seed the values from the template for the reader API calls
  const BASE_API_PATH = "/read/api/imgchest/series/";
  const IS_FIRST_PARTY = false;
  const IS_INDEXED = false;
  const IMAGE_PROXY_URL = "https://services.f-ck.me";
</script></head>


<body class="fit-width_limit direction-ltr gap-false theme-Cubari reset-false spread-1 spreadCount-1 spreadOffset-0 selectorAnchor-left selPinned-false selNum-true hoverinos-true sidebar-true previews-false clickTurnPage-true arrowTurnPage-false swipeGestures-true parallelDownloads-5 zoom-100">
  <!-- Global site tag (gtag.js) - Google Analytics -->
<script async="" src="https://www.googletagmanager.com/gtag/js?id=G-ZX1TZQKKPL"></script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}
  gtag('js', new Date());

  gtag('config', 'G-ZX1TZQKKPL');
</script>

<script>
  const science = (measurePerformance = false) => {
    const scienceEndpoint = "https://obs.f-ck.me/ingest";
    const proxyBasePath = "read";
    const pathFragments = location.pathname.split("/");
    const proxyMetadata = pathFragments[pathFragments.findIndex(e => e === proxyBasePath) + 1];

    if (!proxyMetadata) {
      return;
    }

    const sciencePayload = {
      "p": "cubari.moe",
      "m": proxyMetadata,
    };

    if (measurePerformance) {
      const navPerf = performance.getEntriesByType("navigation");
      if (navPerf.length === 1) {
        sciencePayload["t"] = navPerf[0].duration;
      }
    }

    fetch(`${scienceEndpoint}`, {
      method: "POST",
      mode: "no-cors",
      headers: {
        "Content-Type": "application/json",
      },
      body: JSON.stringify(sciencePayload),
    });
  };

  window.science = science;

  // Science once when the page is loaded
  window.addEventListener("load", () => {
    // We need to add this to the event loop so that the load
    // event can be properly hydrated in the performance object
    setTimeout(() => {
      science(true);
    }, 0);
  });
</script>

  <main id="rdr-main" class="UI Reader last-chapter" tabindex="-1" data-preload="3">
    <aside class="">
      <div class="hide-side UI Button MultiStateButton" data-bind="sidebar_button" data-tip="Show/hide sidebar [S]" data-tip-align="right" data-apr.sidebar="true">
        <div class="hide-side-actual ico-btn"></div>
      </div>
      <header>
        <a href="/" class="ico-btn guya"></a>
        <h1 data-bind="title"><a href="/read/imgchest/o24av9o3e4l/">xx30</a></h1>
        <button class="ico-btn"></button>
      </header>
      <div class="rdr-aside-buffer" data-bind="rdr_aside_buffer"></div>
      <div class="rdr-aside-content" data-bind="rdr_aside_content">
        <section class="rdr-selector" data-bind="rdr_selector">
          <div class="rdr-selector-top">
            <button data-bind="vol_next" class="rdr-selector-vol ico-btn prev disabled" data-tip="Next volume [.]"></button>
            <div class="flex-spacer UI MessageBox" data-bind="message"></div>
            <button data-bind="download_chapter" class="ico-btn download" data-tip="Download chapter in the background"></button>
            <div class="download-anchor">
              <div class="download-wrapper hidden" data-bind="download_wrapper">
                <button data-bind="downloading_chapter" class="ico-btn downloading" disabled=""></button>
                <button data-bind="download_cancel" class="ico-btn download-cancel"></button>
              </div>
            </div>
            <a data-bind="share_button" data-tip="Copy short link [R]" class="rdr-share ico-btn "></a>
            <!-- <a data-bind='comment_button' data-tip="Comments" class="rdr-comment ico-btn"></a> -->
            <button data-bind="jump" class="ico-btn jump" data-tip="Jump to chapter... [J]"></button>
            <button data-bind="search" class="ico-btn search" data-tip="Search the manga... [Ctrl]+[F]" style="display: none;"></button>
          </div>
          <div class="rdr-selector-mid">
            <button data-bind="chap_prev" class="rdr-selector-chap ico-btn prev disabled" data-tip="Previous chapter [[]"></button>
            <div class="rdr-vol-wrap UI FauxDrop" data-bind="selector_vol">
              <label>1</label>
              <select id="rdr-vol" class="UI List SimpleList"><option class="UI SimpleListItem" value="1">1</option></select>
            </div>
            <div class="rdr-chap-wrap UI FauxDrop" data-bind="selector_chap">
              <label>1 - xx30</label>
              <select id="rdr-chap" class="UI List SimpleList"><option class="UI SimpleListItem" value="1">1 - xx30</option></select>
            </div>
            <button data-bind="chap_next" class="rdr-selector-chap ico-btn next disabled" data-tip="Next chapter []]"></button>
          </div>
          <div class="rdr-selector-bot">
            <button data-bind="vol_prev" class="rdr-selector-vol ico-btn next disabled" data-tip="Previous volume [,]"></button>
            <div class="flex-spacer"></div>
            <button data-bind="preload_button" class="ico-btn hidden UI Button MultiStateButton" data-tip="Change preload [L]" data-bhv.preload="3"></button>
            <button data-bind="fit_button" class="ico-btn UI Button MultiStateButton" data-tip="Change fit mode [F]" data-lyt.fit="width_limit"></button>
            <button data-bind="layout_button" class="ico-btn UI Button MultiStateButton" data-tip="Change layout direction [D]" data-lyt.direction="ltr"></button>
            <button data-bind="spread_button" class="ico-btn UI Button MultiStateButton" data-tip="Change two-page mode [Q]" data-lyt.spread="1"></button>
            <button data-bind="sel_pin_button" class="ico-btn UI Button MultiStateButton" data-tip="Pin page selector [N]" data-apr.selpinned="false"></button>
            <button data-bind="settings_button" class="ico-btn" data-tip="Advanced settings... [O]"></button>
          </div>
        </section>
        <section class="rdr-groups UI List Selector Tabs" data-bind="groups">
        <div class="is-active UI SimpleListItem" data-list-id="1">imgchest</div></section>
        <section class="rdr-previews" style="display: none;">
          <div class="header UI Button MultiStateButton" data-bind="previews_button" data-apr.previews="false">
            <span>Previews</span>
            <div class="ico-btn expander" data-tip="Show previews [P]"></div>
          </div>
          <div data-bind="previews" class="rdr-previews-gallery UI List Selector Tabs">
          </div>
        </section>
        <section class="rdr-description">
          <div data-bind="image_description"></div>
        </section>
      </div>
    </aside>
    <div class="rdr-page-selector UI PageSelector" data-bind="page_selector">
      <div class="rdr-page-selector-counter" data-bind="page_keys_count">1/14</div>
      <div class="rdr-page-selector-keys UI List Selector Tabs" data-bind="page_keys">
      <div class="UI Dummy is-active shown preloaded">1</div><div class="UI Dummy preloaded">2</div><div class="UI Dummy preloaded">3</div><div class="UI Dummy">4</div><div class="UI Dummy">5</div><div class="UI Dummy">6</div><div class="UI Dummy">7</div><div class="UI Dummy">8</div><div class="UI Dummy">9</div><div class="UI Dummy">10</div><div class="UI Dummy">11</div><div class="UI Dummy">12</div><div class="UI Dummy">13</div><div class="UI Dummy">14</div></div>
    </div>
    <content data-bind="image_viewer" class="rdr-area UI ReaderImageView">
      <div class="preload-entity" data-bind="preload_entity">
        <img src="https://cdn.imgchest.com/files/84jdcd8dpj4.png"><img><img><img>
      </div>
      <div class="rdr-image-wrap UI List Selector Tabs" data-bind="image_container" tabindex="-1" style="margin-left: 0%;">
      <div tabindex="-1" class="UI List ReaderImageWrapper"><img src="https://cdn.imgchest.com/files/l7lxcmlmb67.png" class="UI ReaderImage" loading="eager"></div><div tabindex="-1" class="UI List ReaderImageWrapper"><img src="https://cdn.imgchest.com/files/84jdcd8dpj4.png" class="UI ReaderImage" loading="eager"></div><div tabindex="-1" class="UI List ReaderImageWrapper"><img src="https://cdn.imgchest.com/files/pyq9crmrqv4.png" class="UI ReaderImage" loading="eager"></div><div tabindex="-1" class="UI List ReaderImageWrapper"><img src="" class="UI ReaderImage"></div><div tabindex="-1" class="UI List ReaderImageWrapper"><img src="" class="UI ReaderImage"></div><div tabindex="-1" class="UI List ReaderImageWrapper"><img src="" class="UI ReaderImage"></div><div tabindex="-1" class="UI List ReaderImageWrapper"><img src="" class="UI ReaderImage"></div><div tabindex="-1" class="UI List ReaderImageWrapper"><img src="" class="UI ReaderImage"></div><div tabindex="-1" class="UI List ReaderImageWrapper"><img src="" class="UI ReaderImage"></div><div tabindex="-1" class="UI List ReaderImageWrapper"><img src="" class="UI ReaderImage"></div><div tabindex="-1" class="UI List ReaderImageWrapper"><img src="" class="UI ReaderImage"></div><div tabindex="-1" class="UI List ReaderImageWrapper"><img src="" class="UI ReaderImage"></div><div tabindex="-1" class="UI List ReaderImageWrapper"><img src="" class="UI ReaderImage"></div><div tabindex="-1" class="UI List ReaderImageWrapper"><img src="" class="UI ReaderImage"></div></div>
      <div class="zoom-level refresh-chapter is-hidden" data-bind="random_chapter">
        <div class="refresh-chapter-note">This is the Blu-ray extras "random chapter".<br>Click this button to
          reshuffle the chapter.</div>
        <div class="ico-btn" data-bind="random_chapter_button">↻</div>
      </div>
      <div class="hover-prev" data-bind="hover_prev">
        <div class="hover-wrap">
          <div class="hover-arrow"></div>
          <div class="hover-sub"></div>
        </div>
      </div>
      <div class="hover-next" data-bind="hover_next">
        <div class="hover-wrap">
          <div class="hover-arrow"></div>
          <div class="hover-sub"></div>
        </div>
      </div>
    <div dir="ltr" class="resize-sensor" style="pointer-events: none; position: absolute; inset: 0px; overflow: hidden; z-index: -1; visibility: hidden; max-width: 100%;"><div class="resize-sensor-expand" style="pointer-events: none; position: absolute; inset: 0px; overflow: hidden; z-index: -1; visibility: hidden; max-width: 100%;"><div style="position: absolute; left: 0px; top: 0px; transition: all 0s ease 0s; width: 503px; height: 610px;"></div></div><div class="resize-sensor-shrink" style="pointer-events: none; position: absolute; inset: 0px; overflow: hidden; z-index: -1; visibility: hidden; max-width: 100%;"><div style="position: absolute; left: 0px; top: 0px; transition: all 0s ease 0s; width: 200%; height: 200%;"></div></div></div></content>
    <div class="zoom-level" data-bind="zoom_level">
      <div class="ico-btn" data-bind="zoom_level_plus"></div>
      <div class="ico-btn" data-bind="zoom_level_minus"></div>
    </div>
  </main>
  <div class="Tooltippy UI" style="display: none;"></div>
  <div class="Tooltippy Error UI"></div>
  <div class="LodaManager hidden UI" tabindex="-1">

  </div>

<script src="/static/js/pickr.min.js?v=29a9e3e
"></script>
<script src="/static/js/jszip.min.js?v=29a9e3e
"></script>
<script type="text/javascript" src="/static/js/ResizeSensor.js?v=29a9e3e
"></script>
<script type="text/javascript" src="/static/js/alg_lib.js?v=29a9e3e
"></script>
<script type="text/javascript" src="/static/js/UI2.js?v=29a9e3e
"></script>
<script type="text/javascript" src="/static/js/init.js?v=29a9e3e
"></script><div style="display: none;"></div><div class="pcr-app" data-theme="nano" aria-label="color picker dialog" role="window" tabindex="-1" style="left: 0px; top: 8px;">
          <div class="pcr-selection">
            <div class="pcr-color-preview" style="display:none" hidden="">
              <button type="button" class="pcr-last-color" aria-label="use previous color" style="color: rgb(255, 255, 255);"></button>
              <div class="pcr-current-color" style="color: rgb(58, 63, 68);"></div>
            </div>

            <div class="pcr-color-palette">
              <div class="pcr-picker" style="left: calc(14.7059% - 9px); top: calc(73.3333% - 9px); background: rgb(58, 63, 68);"></div>
              <div class="pcr-palette" tabindex="0" aria-label="color selection area" role="listbox" style="background: linear-gradient(to top, rgb(0, 0, 0), transparent), linear-gradient(to left, rgb(0, 128, 255), rgb(255, 255, 255));"></div>
            </div>

            <div class="pcr-color-chooser">
              <div class="pcr-picker" style="left: calc(58.3333% - 9px); background-color: rgb(0, 128, 255);"></div>
              <div class="pcr-hue pcr-slider" tabindex="0" aria-label="hue selection slider" role="slider"></div>
            </div>

            <div class="pcr-color-opacity" style="display:none" hidden="">
              <div class="pcr-picker"></div>
              <div class="pcr-opacity pcr-slider" tabindex="0" aria-label="selection slider" role="slider"></div>
            </div>
          </div>

          <div class="pcr-swatches "></div>

          <div class="pcr-interaction">
            <input class="pcr-result" type="text" spellcheck="false" aria-label="color input field">

            <input class="pcr-type active" data-type="HEXA" value="HEXA" type="button" style="display:none" hidden="">
            <input class="pcr-type" data-type="RGBA" value="RGBA" type="button" style="display:none" hidden="">
            <input class="pcr-type" data-type="HSLA" value="HSLA" type="button" style="display:none" hidden="">
            <input class="pcr-type" data-type="HSVA" value="HSVA" type="button" style="display:none" hidden="">
            <input class="pcr-type" data-type="CMYK" value="CMYK" type="button" style="display:none" hidden="">

            <input class="pcr-save" value="Save" type="button" aria-label="save and close">
            <input class="pcr-cancel" value="Cancel" type="button" style="display:none" hidden="" aria-label="cancel and close">
            <input class="pcr-clear" value="Clear" type="button" style="display:none" hidden="" aria-label="clear and close">
          </div>
        </div><div class="pcr-app" data-theme="nano" aria-label="color picker dialog" role="window" tabindex="-1" style="left: 0px; top: 8px;">
          <div class="pcr-selection">
            <div class="pcr-color-preview" style="display:none" hidden="">
              <button type="button" class="pcr-last-color" aria-label="use previous color" style="color: rgb(255, 255, 255);"></button>
              <div class="pcr-current-color" style="color: rgb(238, 238, 238);"></div>
            </div>

            <div class="pcr-color-palette">
              <div class="pcr-picker" style="left: calc(0% - 9px); top: calc(6.66667% - 9px); background: rgb(238, 238, 238);"></div>
              <div class="pcr-palette" tabindex="0" aria-label="color selection area" role="listbox" style="background: linear-gradient(to top, rgb(0, 0, 0), transparent), linear-gradient(to left, rgb(255, 0, 0), rgb(255, 255, 255));"></div>
            </div>

            <div class="pcr-color-chooser">
              <div class="pcr-picker" style="left: calc(0% - 9px); background-color: rgb(255, 0, 0);"></div>
              <div class="pcr-hue pcr-slider" tabindex="0" aria-label="hue selection slider" role="slider"></div>
            </div>

            <div class="pcr-color-opacity" style="display:none" hidden="">
              <div class="pcr-picker"></div>
              <div class="pcr-opacity pcr-slider" tabindex="0" aria-label="selection slider" role="slider"></div>
            </div>
          </div>

          <div class="pcr-swatches "></div>

          <div class="pcr-interaction">
            <input class="pcr-result" type="text" spellcheck="false" aria-label="color input field">

            <input class="pcr-type active" data-type="HEXA" value="HEXA" type="button" style="display:none" hidden="">
            <input class="pcr-type" data-type="RGBA" value="RGBA" type="button" style="display:none" hidden="">
            <input class="pcr-type" data-type="HSLA" value="HSLA" type="button" style="display:none" hidden="">
            <input class="pcr-type" data-type="HSVA" value="HSVA" type="button" style="display:none" hidden="">
            <input class="pcr-type" data-type="CMYK" value="CMYK" type="button" style="display:none" hidden="">

            <input class="pcr-save" value="Save" type="button" aria-label="save and close">
            <input class="pcr-cancel" value="Cancel" type="button" style="display:none" hidden="" aria-label="cancel and close">
            <input class="pcr-clear" value="Clear" type="button" style="display:none" hidden="" aria-label="clear and close">
          </div>
        </div><div class="pcr-app" data-theme="nano" aria-label="color picker dialog" role="window" tabindex="-1" style="left: 0px; top: 8px;">
          <div class="pcr-selection">
            <div class="pcr-color-preview" style="display:none" hidden="">
              <button type="button" class="pcr-last-color" aria-label="use previous color" style="color: rgb(255, 255, 255);"></button>
              <div class="pcr-current-color" style="color: rgb(178, 223, 251);"></div>
            </div>

            <div class="pcr-color-palette">
              <div class="pcr-picker" style="left: calc(29.0837% - 9px); top: calc(1.56863% - 9px); background: rgb(178, 223, 251);"></div>
              <div class="pcr-palette" tabindex="0" aria-label="color selection area" role="listbox" style="background: linear-gradient(to top, rgb(0, 0, 0), transparent), linear-gradient(to left, rgb(0, 157, 255), rgb(255, 255, 255));"></div>
            </div>

            <div class="pcr-color-chooser">
              <div class="pcr-picker" style="left: calc(56.3927% - 9px); background-color: rgb(0, 157, 255);"></div>
              <div class="pcr-hue pcr-slider" tabindex="0" aria-label="hue selection slider" role="slider"></div>
            </div>

            <div class="pcr-color-opacity" style="display:none" hidden="">
              <div class="pcr-picker"></div>
              <div class="pcr-opacity pcr-slider" tabindex="0" aria-label="selection slider" role="slider"></div>
            </div>
          </div>

          <div class="pcr-swatches "></div>

          <div class="pcr-interaction">
            <input class="pcr-result" type="text" spellcheck="false" aria-label="color input field">

            <input class="pcr-type active" data-type="HEXA" value="HEXA" type="button" style="display:none" hidden="">
            <input class="pcr-type" data-type="RGBA" value="RGBA" type="button" style="display:none" hidden="">
            <input class="pcr-type" data-type="HSLA" value="HSLA" type="button" style="display:none" hidden="">
            <input class="pcr-type" data-type="HSVA" value="HSVA" type="button" style="display:none" hidden="">
            <input class="pcr-type" data-type="CMYK" value="CMYK" type="button" style="display:none" hidden="">

            <input class="pcr-save" value="Save" type="button" aria-label="save and close">
            <input class="pcr-cancel" value="Cancel" type="button" style="display:none" hidden="" aria-label="cancel and close">
            <input class="pcr-clear" value="Clear" type="button" style="display:none" hidden="" aria-label="clear and close">
          </div>
        </div><div class="pcr-app" data-theme="nano" aria-label="color picker dialog" role="window" tabindex="-1" style="left: 0px; top: 8px;">
          <div class="pcr-selection">
            <div class="pcr-color-preview" style="display:none" hidden="">
              <button type="button" class="pcr-last-color" aria-label="use previous color" style="color: rgb(255, 255, 255);"></button>
              <div class="pcr-current-color" style="color: rgb(39, 43, 48);"></div>
            </div>

            <div class="pcr-color-palette">
              <div class="pcr-picker" style="left: calc(18.75% - 9px); top: calc(81.1765% - 9px); background: rgb(39, 43, 48);"></div>
              <div class="pcr-palette" tabindex="0" aria-label="color selection area" role="listbox" style="background: linear-gradient(to top, rgb(0, 0, 0), transparent), linear-gradient(to left, rgb(0, 113, 255), rgb(255, 255, 255));"></div>
            </div>

            <div class="pcr-color-chooser">
              <div class="pcr-picker" style="left: calc(59.2593% - 9px); background-color: rgb(0, 113, 255);"></div>
              <div class="pcr-hue pcr-slider" tabindex="0" aria-label="hue selection slider" role="slider"></div>
            </div>

            <div class="pcr-color-opacity" style="display:none" hidden="">
              <div class="pcr-picker"></div>
              <div class="pcr-opacity pcr-slider" tabindex="0" aria-label="selection slider" role="slider"></div>
            </div>
          </div>

          <div class="pcr-swatches "></div>

          <div class="pcr-interaction">
            <input class="pcr-result" type="text" spellcheck="false" aria-label="color input field">

            <input class="pcr-type active" data-type="HEXA" value="HEXA" type="button" style="display:none" hidden="">
            <input class="pcr-type" data-type="RGBA" value="RGBA" type="button" style="display:none" hidden="">
            <input class="pcr-type" data-type="HSLA" value="HSLA" type="button" style="display:none" hidden="">
            <input class="pcr-type" data-type="HSVA" value="HSVA" type="button" style="display:none" hidden="">
            <input class="pcr-type" data-type="CMYK" value="CMYK" type="button" style="display:none" hidden="">

            <input class="pcr-save" value="Save" type="button" aria-label="save and close">
            <input class="pcr-cancel" value="Cancel" type="button" style="display:none" hidden="" aria-label="cancel and close">
            <input class="pcr-clear" value="Clear" type="button" style="display:none" hidden="" aria-label="clear and close">
          </div>
        </div>
<script type="text/javascript">
  // History tagging
  tag();
</script>

</body></html>