gh-pages
parent
dc2e1ccccb
commit
0c84919d6d
File diff suppressed because one or more lines are too long
|
@ -0,0 +1,41 @@
|
||||||
|
/*
|
||||||
|
object-assign
|
||||||
|
(c) Sindre Sorhus
|
||||||
|
@license MIT
|
||||||
|
*/
|
||||||
|
|
||||||
|
/** @license React v0.20.2
|
||||||
|
* scheduler.production.min.js
|
||||||
|
*
|
||||||
|
* Copyright (c) Facebook, Inc. and its affiliates.
|
||||||
|
*
|
||||||
|
* This source code is licensed under the MIT license found in the
|
||||||
|
* LICENSE file in the root directory of this source tree.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/** @license React v16.13.1
|
||||||
|
* react-is.production.min.js
|
||||||
|
*
|
||||||
|
* Copyright (c) Facebook, Inc. and its affiliates.
|
||||||
|
*
|
||||||
|
* This source code is licensed under the MIT license found in the
|
||||||
|
* LICENSE file in the root directory of this source tree.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/** @license React v17.0.2
|
||||||
|
* react-dom.production.min.js
|
||||||
|
*
|
||||||
|
* Copyright (c) Facebook, Inc. and its affiliates.
|
||||||
|
*
|
||||||
|
* This source code is licensed under the MIT license found in the
|
||||||
|
* LICENSE file in the root directory of this source tree.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/** @license React v17.0.2
|
||||||
|
* react.production.min.js
|
||||||
|
*
|
||||||
|
* Copyright (c) Facebook, Inc. and its affiliates.
|
||||||
|
*
|
||||||
|
* This source code is licensed under the MIT license found in the
|
||||||
|
* LICENSE file in the root directory of this source tree.
|
||||||
|
*/
|
11
index.html
11
index.html
|
@ -30,9 +30,7 @@
|
||||||
display: block;
|
display: block;
|
||||||
}
|
}
|
||||||
|
|
||||||
#react {
|
|
||||||
position: absolute;
|
|
||||||
}
|
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
</head>
|
</head>
|
||||||
|
@ -40,9 +38,12 @@
|
||||||
<body>
|
<body>
|
||||||
<div id="react"></div>
|
<div id="react"></div>
|
||||||
<canvas id="c"></canvas>
|
<canvas id="c"></canvas>
|
||||||
|
<script src="redux.bundle.js"></script>
|
||||||
<script src="bundle.js" type="module"></script>
|
<script src="renderer.bundle.js"></script>
|
||||||
|
<script src="index.bundle.js"></script>
|
||||||
<script src="solver.js"></script>
|
<script src="solver.js"></script>
|
||||||
|
<script src="lz-string.min.js"></script>
|
||||||
|
<!-- <script src="lz-string.js"></script> -->
|
||||||
<div id="stats"></div>
|
<div id="stats"></div>
|
||||||
</body>
|
</body>
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,508 @@
|
||||||
|
// Copyright (c) 2013 Pieroxy <pieroxy@pieroxy.net>
|
||||||
|
// This work is free. You can redistribute it and/or modify it
|
||||||
|
// under the terms of the WTFPL, Version 2
|
||||||
|
// For more information see LICENSE.txt or http://www.wtfpl.net/
|
||||||
|
//
|
||||||
|
// For more information, the home page:
|
||||||
|
// http://pieroxy.net/blog/pages/lz-string/testing.html
|
||||||
|
//
|
||||||
|
// LZ-based compression algorithm, version 1.4.4
|
||||||
|
var LZString = (function() {
|
||||||
|
|
||||||
|
// private property
|
||||||
|
var f = String.fromCharCode;
|
||||||
|
var keyStrBase64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
|
||||||
|
var keyStrUriSafe = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-$";
|
||||||
|
var baseReverseDic = {};
|
||||||
|
|
||||||
|
function getBaseValue(alphabet, character) {
|
||||||
|
if (!baseReverseDic[alphabet]) {
|
||||||
|
baseReverseDic[alphabet] = {};
|
||||||
|
for (var i=0 ; i<alphabet.length ; i++) {
|
||||||
|
baseReverseDic[alphabet][alphabet.charAt(i)] = i;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return baseReverseDic[alphabet][character];
|
||||||
|
}
|
||||||
|
|
||||||
|
var LZString = {
|
||||||
|
compressToBase64 : function (input) {
|
||||||
|
if (input == null) return "";
|
||||||
|
var res = LZString._compress(input, 6, function(a){return keyStrBase64.charAt(a);});
|
||||||
|
switch (res.length % 4) { // To produce valid Base64
|
||||||
|
default: // When could this happen ?
|
||||||
|
case 0 : return res;
|
||||||
|
case 1 : return res+"===";
|
||||||
|
case 2 : return res+"==";
|
||||||
|
case 3 : return res+"=";
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
decompressFromBase64 : function (input) {
|
||||||
|
if (input == null) return "";
|
||||||
|
if (input == "") return null;
|
||||||
|
return LZString._decompress(input.length, 32, function(index) { return getBaseValue(keyStrBase64, input.charAt(index)); });
|
||||||
|
},
|
||||||
|
|
||||||
|
compressToUTF16 : function (input) {
|
||||||
|
if (input == null) return "";
|
||||||
|
return LZString._compress(input, 15, function(a){return f(a+32);}) + " ";
|
||||||
|
},
|
||||||
|
|
||||||
|
decompressFromUTF16: function (compressed) {
|
||||||
|
if (compressed == null) return "";
|
||||||
|
if (compressed == "") return null;
|
||||||
|
return LZString._decompress(compressed.length, 16384, function(index) { return compressed.charCodeAt(index) - 32; });
|
||||||
|
},
|
||||||
|
|
||||||
|
//compress into uint8array (UCS-2 big endian format)
|
||||||
|
compressToUint8Array: function (uncompressed) {
|
||||||
|
var compressed = LZString.compress(uncompressed);
|
||||||
|
var buf=new Uint8Array(compressed.length*2); // 2 bytes per character
|
||||||
|
|
||||||
|
for (var i=0, TotalLen=compressed.length; i<TotalLen; i++) {
|
||||||
|
var current_value = compressed.charCodeAt(i);
|
||||||
|
buf[i*2] = current_value >>> 8;
|
||||||
|
buf[i*2+1] = current_value % 256;
|
||||||
|
}
|
||||||
|
return buf;
|
||||||
|
},
|
||||||
|
|
||||||
|
//decompress from uint8array (UCS-2 big endian format)
|
||||||
|
decompressFromUint8Array:function (compressed) {
|
||||||
|
if (compressed===null || compressed===undefined){
|
||||||
|
return LZString.decompress(compressed);
|
||||||
|
} else {
|
||||||
|
var buf=new Array(compressed.length/2); // 2 bytes per character
|
||||||
|
for (var i=0, TotalLen=buf.length; i<TotalLen; i++) {
|
||||||
|
buf[i]=compressed[i*2]*256+compressed[i*2+1];
|
||||||
|
}
|
||||||
|
|
||||||
|
var result = [];
|
||||||
|
buf.forEach(function (c) {
|
||||||
|
result.push(f(c));
|
||||||
|
});
|
||||||
|
return LZString.decompress(result.join(''));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
//compress into a string that is already URI encoded
|
||||||
|
compressToEncodedURIComponent: function (input) {
|
||||||
|
if (input == null) return "";
|
||||||
|
return LZString._compress(input, 6, function(a){return keyStrUriSafe.charAt(a);});
|
||||||
|
},
|
||||||
|
|
||||||
|
//decompress from an output of compressToEncodedURIComponent
|
||||||
|
decompressFromEncodedURIComponent:function (input) {
|
||||||
|
if (input == null) return "";
|
||||||
|
if (input == "") return null;
|
||||||
|
input = input.replace(/ /g, "+");
|
||||||
|
return LZString._decompress(input.length, 32, function(index) { return getBaseValue(keyStrUriSafe, input.charAt(index)); });
|
||||||
|
},
|
||||||
|
|
||||||
|
compress: function (uncompressed) {
|
||||||
|
return LZString._compress(uncompressed, 16, function(a){return f(a);});
|
||||||
|
},
|
||||||
|
_compress: function (uncompressed, bitsPerChar, getCharFromInt) {
|
||||||
|
if (uncompressed == null) return "";
|
||||||
|
var i, value,
|
||||||
|
context_dictionary= {},
|
||||||
|
context_dictionaryToCreate= {},
|
||||||
|
context_c="",
|
||||||
|
context_wc="",
|
||||||
|
context_w="",
|
||||||
|
context_enlargeIn= 2, // Compensate for the first entry which should not count
|
||||||
|
context_dictSize= 3,
|
||||||
|
context_numBits= 2,
|
||||||
|
context_data=[],
|
||||||
|
context_data_val=0,
|
||||||
|
context_data_position=0,
|
||||||
|
ii;
|
||||||
|
|
||||||
|
for (ii = 0; ii < uncompressed.length; ii += 1) {
|
||||||
|
context_c = uncompressed.charAt(ii);
|
||||||
|
if (!Object.prototype.hasOwnProperty.call(context_dictionary,context_c)) {
|
||||||
|
context_dictionary[context_c] = context_dictSize++;
|
||||||
|
context_dictionaryToCreate[context_c] = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
context_wc = context_w + context_c;
|
||||||
|
if (Object.prototype.hasOwnProperty.call(context_dictionary,context_wc)) {
|
||||||
|
context_w = context_wc;
|
||||||
|
} else {
|
||||||
|
if (Object.prototype.hasOwnProperty.call(context_dictionaryToCreate,context_w)) {
|
||||||
|
if (context_w.charCodeAt(0)<256) {
|
||||||
|
for (i=0 ; i<context_numBits ; i++) {
|
||||||
|
context_data_val = (context_data_val << 1);
|
||||||
|
if (context_data_position == bitsPerChar-1) {
|
||||||
|
context_data_position = 0;
|
||||||
|
context_data.push(getCharFromInt(context_data_val));
|
||||||
|
context_data_val = 0;
|
||||||
|
} else {
|
||||||
|
context_data_position++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
value = context_w.charCodeAt(0);
|
||||||
|
for (i=0 ; i<8 ; i++) {
|
||||||
|
context_data_val = (context_data_val << 1) | (value&1);
|
||||||
|
if (context_data_position == bitsPerChar-1) {
|
||||||
|
context_data_position = 0;
|
||||||
|
context_data.push(getCharFromInt(context_data_val));
|
||||||
|
context_data_val = 0;
|
||||||
|
} else {
|
||||||
|
context_data_position++;
|
||||||
|
}
|
||||||
|
value = value >> 1;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
value = 1;
|
||||||
|
for (i=0 ; i<context_numBits ; i++) {
|
||||||
|
context_data_val = (context_data_val << 1) | value;
|
||||||
|
if (context_data_position ==bitsPerChar-1) {
|
||||||
|
context_data_position = 0;
|
||||||
|
context_data.push(getCharFromInt(context_data_val));
|
||||||
|
context_data_val = 0;
|
||||||
|
} else {
|
||||||
|
context_data_position++;
|
||||||
|
}
|
||||||
|
value = 0;
|
||||||
|
}
|
||||||
|
value = context_w.charCodeAt(0);
|
||||||
|
for (i=0 ; i<16 ; i++) {
|
||||||
|
context_data_val = (context_data_val << 1) | (value&1);
|
||||||
|
if (context_data_position == bitsPerChar-1) {
|
||||||
|
context_data_position = 0;
|
||||||
|
context_data.push(getCharFromInt(context_data_val));
|
||||||
|
context_data_val = 0;
|
||||||
|
} else {
|
||||||
|
context_data_position++;
|
||||||
|
}
|
||||||
|
value = value >> 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
context_enlargeIn--;
|
||||||
|
if (context_enlargeIn == 0) {
|
||||||
|
context_enlargeIn = Math.pow(2, context_numBits);
|
||||||
|
context_numBits++;
|
||||||
|
}
|
||||||
|
delete context_dictionaryToCreate[context_w];
|
||||||
|
} else {
|
||||||
|
value = context_dictionary[context_w];
|
||||||
|
for (i=0 ; i<context_numBits ; i++) {
|
||||||
|
context_data_val = (context_data_val << 1) | (value&1);
|
||||||
|
if (context_data_position == bitsPerChar-1) {
|
||||||
|
context_data_position = 0;
|
||||||
|
context_data.push(getCharFromInt(context_data_val));
|
||||||
|
context_data_val = 0;
|
||||||
|
} else {
|
||||||
|
context_data_position++;
|
||||||
|
}
|
||||||
|
value = value >> 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
context_enlargeIn--;
|
||||||
|
if (context_enlargeIn == 0) {
|
||||||
|
context_enlargeIn = Math.pow(2, context_numBits);
|
||||||
|
context_numBits++;
|
||||||
|
}
|
||||||
|
// Add wc to the dictionary.
|
||||||
|
context_dictionary[context_wc] = context_dictSize++;
|
||||||
|
context_w = String(context_c);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Output the code for w.
|
||||||
|
if (context_w !== "") {
|
||||||
|
if (Object.prototype.hasOwnProperty.call(context_dictionaryToCreate,context_w)) {
|
||||||
|
if (context_w.charCodeAt(0)<256) {
|
||||||
|
for (i=0 ; i<context_numBits ; i++) {
|
||||||
|
context_data_val = (context_data_val << 1);
|
||||||
|
if (context_data_position == bitsPerChar-1) {
|
||||||
|
context_data_position = 0;
|
||||||
|
context_data.push(getCharFromInt(context_data_val));
|
||||||
|
context_data_val = 0;
|
||||||
|
} else {
|
||||||
|
context_data_position++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
value = context_w.charCodeAt(0);
|
||||||
|
for (i=0 ; i<8 ; i++) {
|
||||||
|
context_data_val = (context_data_val << 1) | (value&1);
|
||||||
|
if (context_data_position == bitsPerChar-1) {
|
||||||
|
context_data_position = 0;
|
||||||
|
context_data.push(getCharFromInt(context_data_val));
|
||||||
|
context_data_val = 0;
|
||||||
|
} else {
|
||||||
|
context_data_position++;
|
||||||
|
}
|
||||||
|
value = value >> 1;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
value = 1;
|
||||||
|
for (i=0 ; i<context_numBits ; i++) {
|
||||||
|
context_data_val = (context_data_val << 1) | value;
|
||||||
|
if (context_data_position == bitsPerChar-1) {
|
||||||
|
context_data_position = 0;
|
||||||
|
context_data.push(getCharFromInt(context_data_val));
|
||||||
|
context_data_val = 0;
|
||||||
|
} else {
|
||||||
|
context_data_position++;
|
||||||
|
}
|
||||||
|
value = 0;
|
||||||
|
}
|
||||||
|
value = context_w.charCodeAt(0);
|
||||||
|
for (i=0 ; i<16 ; i++) {
|
||||||
|
context_data_val = (context_data_val << 1) | (value&1);
|
||||||
|
if (context_data_position == bitsPerChar-1) {
|
||||||
|
context_data_position = 0;
|
||||||
|
context_data.push(getCharFromInt(context_data_val));
|
||||||
|
context_data_val = 0;
|
||||||
|
} else {
|
||||||
|
context_data_position++;
|
||||||
|
}
|
||||||
|
value = value >> 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
context_enlargeIn--;
|
||||||
|
if (context_enlargeIn == 0) {
|
||||||
|
context_enlargeIn = Math.pow(2, context_numBits);
|
||||||
|
context_numBits++;
|
||||||
|
}
|
||||||
|
delete context_dictionaryToCreate[context_w];
|
||||||
|
} else {
|
||||||
|
value = context_dictionary[context_w];
|
||||||
|
for (i=0 ; i<context_numBits ; i++) {
|
||||||
|
context_data_val = (context_data_val << 1) | (value&1);
|
||||||
|
if (context_data_position == bitsPerChar-1) {
|
||||||
|
context_data_position = 0;
|
||||||
|
context_data.push(getCharFromInt(context_data_val));
|
||||||
|
context_data_val = 0;
|
||||||
|
} else {
|
||||||
|
context_data_position++;
|
||||||
|
}
|
||||||
|
value = value >> 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
context_enlargeIn--;
|
||||||
|
if (context_enlargeIn == 0) {
|
||||||
|
context_enlargeIn = Math.pow(2, context_numBits);
|
||||||
|
context_numBits++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Mark the end of the stream
|
||||||
|
value = 2;
|
||||||
|
for (i=0 ; i<context_numBits ; i++) {
|
||||||
|
context_data_val = (context_data_val << 1) | (value&1);
|
||||||
|
if (context_data_position == bitsPerChar-1) {
|
||||||
|
context_data_position = 0;
|
||||||
|
context_data.push(getCharFromInt(context_data_val));
|
||||||
|
context_data_val = 0;
|
||||||
|
} else {
|
||||||
|
context_data_position++;
|
||||||
|
}
|
||||||
|
value = value >> 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Flush the last char
|
||||||
|
while (true) {
|
||||||
|
context_data_val = (context_data_val << 1);
|
||||||
|
if (context_data_position == bitsPerChar-1) {
|
||||||
|
context_data.push(getCharFromInt(context_data_val));
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
else context_data_position++;
|
||||||
|
}
|
||||||
|
return context_data.join('');
|
||||||
|
},
|
||||||
|
|
||||||
|
decompress: function (compressed) {
|
||||||
|
if (compressed == null) return "";
|
||||||
|
if (compressed == "") return null;
|
||||||
|
return LZString._decompress(compressed.length, 32768, function(index) { return compressed.charCodeAt(index); });
|
||||||
|
},
|
||||||
|
|
||||||
|
_decompress: function (length, resetValue, getNextValue) {
|
||||||
|
var dictionary = [],
|
||||||
|
next,
|
||||||
|
enlargeIn = 4,
|
||||||
|
dictSize = 4,
|
||||||
|
numBits = 3,
|
||||||
|
entry = "",
|
||||||
|
result = [],
|
||||||
|
i,
|
||||||
|
w,
|
||||||
|
bits, resb, maxpower, power,
|
||||||
|
c,
|
||||||
|
data = {val:getNextValue(0), position:resetValue, index:1};
|
||||||
|
|
||||||
|
for (i = 0; i < 3; i += 1) {
|
||||||
|
dictionary[i] = i;
|
||||||
|
}
|
||||||
|
|
||||||
|
bits = 0;
|
||||||
|
maxpower = Math.pow(2,2);
|
||||||
|
power=1;
|
||||||
|
while (power!=maxpower) {
|
||||||
|
resb = data.val & data.position;
|
||||||
|
data.position >>= 1;
|
||||||
|
if (data.position == 0) {
|
||||||
|
data.position = resetValue;
|
||||||
|
data.val = getNextValue(data.index++);
|
||||||
|
}
|
||||||
|
bits |= (resb>0 ? 1 : 0) * power;
|
||||||
|
power <<= 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (next = bits) {
|
||||||
|
case 0:
|
||||||
|
bits = 0;
|
||||||
|
maxpower = Math.pow(2,8);
|
||||||
|
power=1;
|
||||||
|
while (power!=maxpower) {
|
||||||
|
resb = data.val & data.position;
|
||||||
|
data.position >>= 1;
|
||||||
|
if (data.position == 0) {
|
||||||
|
data.position = resetValue;
|
||||||
|
data.val = getNextValue(data.index++);
|
||||||
|
}
|
||||||
|
bits |= (resb>0 ? 1 : 0) * power;
|
||||||
|
power <<= 1;
|
||||||
|
}
|
||||||
|
c = f(bits);
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
bits = 0;
|
||||||
|
maxpower = Math.pow(2,16);
|
||||||
|
power=1;
|
||||||
|
while (power!=maxpower) {
|
||||||
|
resb = data.val & data.position;
|
||||||
|
data.position >>= 1;
|
||||||
|
if (data.position == 0) {
|
||||||
|
data.position = resetValue;
|
||||||
|
data.val = getNextValue(data.index++);
|
||||||
|
}
|
||||||
|
bits |= (resb>0 ? 1 : 0) * power;
|
||||||
|
power <<= 1;
|
||||||
|
}
|
||||||
|
c = f(bits);
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
dictionary[3] = c;
|
||||||
|
w = c;
|
||||||
|
result.push(c);
|
||||||
|
while (true) {
|
||||||
|
if (data.index > length) {
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
|
bits = 0;
|
||||||
|
maxpower = Math.pow(2,numBits);
|
||||||
|
power=1;
|
||||||
|
while (power!=maxpower) {
|
||||||
|
resb = data.val & data.position;
|
||||||
|
data.position >>= 1;
|
||||||
|
if (data.position == 0) {
|
||||||
|
data.position = resetValue;
|
||||||
|
data.val = getNextValue(data.index++);
|
||||||
|
}
|
||||||
|
bits |= (resb>0 ? 1 : 0) * power;
|
||||||
|
power <<= 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (c = bits) {
|
||||||
|
case 0:
|
||||||
|
bits = 0;
|
||||||
|
maxpower = Math.pow(2,8);
|
||||||
|
power=1;
|
||||||
|
while (power!=maxpower) {
|
||||||
|
resb = data.val & data.position;
|
||||||
|
data.position >>= 1;
|
||||||
|
if (data.position == 0) {
|
||||||
|
data.position = resetValue;
|
||||||
|
data.val = getNextValue(data.index++);
|
||||||
|
}
|
||||||
|
bits |= (resb>0 ? 1 : 0) * power;
|
||||||
|
power <<= 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
dictionary[dictSize++] = f(bits);
|
||||||
|
c = dictSize-1;
|
||||||
|
enlargeIn--;
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
bits = 0;
|
||||||
|
maxpower = Math.pow(2,16);
|
||||||
|
power=1;
|
||||||
|
while (power!=maxpower) {
|
||||||
|
resb = data.val & data.position;
|
||||||
|
data.position >>= 1;
|
||||||
|
if (data.position == 0) {
|
||||||
|
data.position = resetValue;
|
||||||
|
data.val = getNextValue(data.index++);
|
||||||
|
}
|
||||||
|
bits |= (resb>0 ? 1 : 0) * power;
|
||||||
|
power <<= 1;
|
||||||
|
}
|
||||||
|
dictionary[dictSize++] = f(bits);
|
||||||
|
c = dictSize-1;
|
||||||
|
enlargeIn--;
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
return result.join('');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (enlargeIn == 0) {
|
||||||
|
enlargeIn = Math.pow(2, numBits);
|
||||||
|
numBits++;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (dictionary[c]) {
|
||||||
|
entry = dictionary[c];
|
||||||
|
} else {
|
||||||
|
if (c === dictSize) {
|
||||||
|
entry = w + w.charAt(0);
|
||||||
|
} else {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
result.push(entry);
|
||||||
|
|
||||||
|
// Add w+entry[0] to the dictionary.
|
||||||
|
dictionary[dictSize++] = w + entry.charAt(0);
|
||||||
|
enlargeIn--;
|
||||||
|
|
||||||
|
w = entry;
|
||||||
|
|
||||||
|
if (enlargeIn == 0) {
|
||||||
|
enlargeIn = Math.pow(2, numBits);
|
||||||
|
numBits++;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
return LZString;
|
||||||
|
})();
|
||||||
|
|
||||||
|
// if (typeof define === 'function' && define.amd) {
|
||||||
|
// define(function () { return LZString; });
|
||||||
|
// } else if( typeof module !== 'undefined' && module != null ) {
|
||||||
|
// module.exports = LZString
|
||||||
|
// } else if( typeof angular !== 'undefined' && angular != null ) {
|
||||||
|
// angular.module('LZString', [])
|
||||||
|
// .factory('LZString', function () {
|
||||||
|
// return LZString;
|
||||||
|
// });
|
||||||
|
// }
|
||||||
|
|
||||||
|
var aaa = 'aaax'
|
|
@ -0,0 +1 @@
|
||||||
|
var LZString=function(){function o(o,r){if(!t[o]){t[o]={};for(var n=0;n<o.length;n++)t[o][o.charAt(n)]=n}return t[o][r]}var r=String.fromCharCode,n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-$",t={},i={compressToBase64:function(o){if(null==o)return"";var r=i._compress(o,6,function(o){return n.charAt(o)});switch(r.length%4){default:case 0:return r;case 1:return r+"===";case 2:return r+"==";case 3:return r+"="}},decompressFromBase64:function(r){return null==r?"":""==r?null:i._decompress(r.length,32,function(e){return o(n,r.charAt(e))})},compressToUTF16:function(o){return null==o?"":i._compress(o,15,function(o){return r(o+32)})+" "},decompressFromUTF16:function(o){return null==o?"":""==o?null:i._decompress(o.length,16384,function(r){return o.charCodeAt(r)-32})},compressToUint8Array:function(o){for(var r=i.compress(o),n=new Uint8Array(2*r.length),e=0,t=r.length;t>e;e++){var s=r.charCodeAt(e);n[2*e]=s>>>8,n[2*e+1]=s%256}return n},decompressFromUint8Array:function(o){if(null===o||void 0===o)return i.decompress(o);for(var n=new Array(o.length/2),e=0,t=n.length;t>e;e++)n[e]=256*o[2*e]+o[2*e+1];var s=[];return n.forEach(function(o){s.push(r(o))}),i.decompress(s.join(""))},compressToEncodedURIComponent:function(o){return null==o?"":i._compress(o,6,function(o){return e.charAt(o)})},decompressFromEncodedURIComponent:function(r){return null==r?"":""==r?null:(r=r.replace(/ /g,"+"),i._decompress(r.length,32,function(n){return o(e,r.charAt(n))}))},compress:function(o){return i._compress(o,16,function(o){return r(o)})},_compress:function(o,r,n){if(null==o)return"";var e,t,i,s={},p={},u="",c="",a="",l=2,f=3,h=2,d=[],m=0,v=0;for(i=0;i<o.length;i+=1)if(u=o.charAt(i),Object.prototype.hasOwnProperty.call(s,u)||(s[u]=f++,p[u]=!0),c=a+u,Object.prototype.hasOwnProperty.call(s,c))a=c;else{if(Object.prototype.hasOwnProperty.call(p,a)){if(a.charCodeAt(0)<256){for(e=0;h>e;e++)m<<=1,v==r-1?(v=0,d.push(n(m)),m=0):v++;for(t=a.charCodeAt(0),e=0;8>e;e++)m=m<<1|1&t,v==r-1?(v=0,d.push(n(m)),m=0):v++,t>>=1}else{for(t=1,e=0;h>e;e++)m=m<<1|t,v==r-1?(v=0,d.push(n(m)),m=0):v++,t=0;for(t=a.charCodeAt(0),e=0;16>e;e++)m=m<<1|1&t,v==r-1?(v=0,d.push(n(m)),m=0):v++,t>>=1}l--,0==l&&(l=Math.pow(2,h),h++),delete p[a]}else for(t=s[a],e=0;h>e;e++)m=m<<1|1&t,v==r-1?(v=0,d.push(n(m)),m=0):v++,t>>=1;l--,0==l&&(l=Math.pow(2,h),h++),s[c]=f++,a=String(u)}if(""!==a){if(Object.prototype.hasOwnProperty.call(p,a)){if(a.charCodeAt(0)<256){for(e=0;h>e;e++)m<<=1,v==r-1?(v=0,d.push(n(m)),m=0):v++;for(t=a.charCodeAt(0),e=0;8>e;e++)m=m<<1|1&t,v==r-1?(v=0,d.push(n(m)),m=0):v++,t>>=1}else{for(t=1,e=0;h>e;e++)m=m<<1|t,v==r-1?(v=0,d.push(n(m)),m=0):v++,t=0;for(t=a.charCodeAt(0),e=0;16>e;e++)m=m<<1|1&t,v==r-1?(v=0,d.push(n(m)),m=0):v++,t>>=1}l--,0==l&&(l=Math.pow(2,h),h++),delete p[a]}else for(t=s[a],e=0;h>e;e++)m=m<<1|1&t,v==r-1?(v=0,d.push(n(m)),m=0):v++,t>>=1;l--,0==l&&(l=Math.pow(2,h),h++)}for(t=2,e=0;h>e;e++)m=m<<1|1&t,v==r-1?(v=0,d.push(n(m)),m=0):v++,t>>=1;for(;;){if(m<<=1,v==r-1){d.push(n(m));break}v++}return d.join("")},decompress:function(o){return null==o?"":""==o?null:i._decompress(o.length,32768,function(r){return o.charCodeAt(r)})},_decompress:function(o,n,e){var t,i,s,p,u,c,a,l,f=[],h=4,d=4,m=3,v="",w=[],A={val:e(0),position:n,index:1};for(i=0;3>i;i+=1)f[i]=i;for(p=0,c=Math.pow(2,2),a=1;a!=c;)u=A.val&A.position,A.position>>=1,0==A.position&&(A.position=n,A.val=e(A.index++)),p|=(u>0?1:0)*a,a<<=1;switch(t=p){case 0:for(p=0,c=Math.pow(2,8),a=1;a!=c;)u=A.val&A.position,A.position>>=1,0==A.position&&(A.position=n,A.val=e(A.index++)),p|=(u>0?1:0)*a,a<<=1;l=r(p);break;case 1:for(p=0,c=Math.pow(2,16),a=1;a!=c;)u=A.val&A.position,A.position>>=1,0==A.position&&(A.position=n,A.val=e(A.index++)),p|=(u>0?1:0)*a,a<<=1;l=r(p);break;case 2:return""}for(f[3]=l,s=l,w.push(l);;){if(A.index>o)return"";for(p=0,c=Math.pow(2,m),a=1;a!=c;)u=A.val&A.position,A.position>>=1,0==A.position&&(A.position=n,A.val=e(A.index++)),p|=(u>0?1:0)*a,a<<=1;switch(l=p){case 0:for(p=0,c=Math.pow(2,8),a=1;a!=c;)u=A.val&A.position,A.position>>=1,0==A.position&&(A.position=n,A.val=e(A.index++)),p|=(u>0?1:0)*a,a<<=1;f[d++]=r(p),l=d-1,h--;break;case 1:for(p=0,c=Math.pow(2,16),a=1;a!=c;)u=A.val&A.position,A.position>>=1,0==A.position&&(A.position=n,A.val=e(A.index++)),p|=(u>0?1:0)*a,a<<=1;f[d++]=r(p),l=d-1,h--;break;case 2:return w.join("")}if(0==h&&(h=Math.pow(2,m),m++),f[l])v=f[l];else{if(l!==d)return null;v=s+s.charAt(0)}w.push(v),f[d++]=s+v.charAt(0),h--,s=v,0==h&&(h=Math.pow(2,m),m++)}}};return i}();"function"==typeof define&&define.amd?define(function(){return LZString}):"undefined"!=typeof module&&null!=module&&(module.exports=LZString);
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue