diff --git a/.gitignore b/.gitignore
index 9373d85ca..3d8070a2c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -3,6 +3,5 @@ node_modules/
*.db
tmp-crx/
tmp-userscript/
-builds/4chan-X-Chrome.zip
-builds/4chan-X-Opera.nex
+builds/4chan-X.zip
Gruntfile.js
diff --git a/CHANGELOG.md b/CHANGELOG.md
old mode 100644
new mode 100755
index 192f39e78..67ef3bb20
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,37 +1,28 @@
+### v1.2.27
+*2013-08-12*
+
+**seaweedchan**:
+- Fix minor class name change from last version's merge
+
+### v1.2.26
+*2013-08-12*
+
**MayhemYDG**:
-- **New feature**: `Show Dice Roll` (with @carboncopy)
- - Shows dice that were entered into the email field on /tg/.
-- **Thread Watcher** improvements:
- - It is now possible to open all watched threads via the `Open all threads` button in the Thread Watcher's menu.
- - Added the `Current Board` setting to switch between showing watched threads from the current board or all boards, disabled by default.
- - About dead (404'd) threads:
-
- Dead threads will be typographically indicated with a strikethrough.
- Dead threads will directly link to the corresponding archive when available.
- A button to prune all 404'd threads from the list is now available.
- Added the `Auto Prune` setting to automatically prune 404'd threads, disabled by default.
-
- - The current thread is now highlighted in the list of watched threads.
- - Watching the current thread can be done in the Header's menu too.
-- Removed the `Check for Updates` setting:
- - Your browser/userscript manager should handle updates itself automatically.
-- Fix impossibility to create new threads when in dead threads.
+- Show dice rolls that were entered into the email field on /tg/.
- Fix flag filtering on /sp/ and /int/.
-- Update archives. (with @woxxy and @proplex)
- Minor fixes.
- Minor optimizations.
+**seaweedchan**:
+- Change new error message to link to ban page just in case
+
**Zixaphir**:
- Linkifier Rewrite.
-- Fix Quote Threading toggle.
- Added Twitch.tv and Vine embedding (with @ihavenoface)
- Keybinds to scroll to posts that quote you.
- Minor optimizations.
- Minor fixes.
-**aeosynth**:
-- Update Gruntfile.coffee.
-
### v1.2.25
*2013-08-04*
diff --git a/Gruntfile.coffee b/Gruntfile.coffee
old mode 100644
new mode 100755
index bc8f3251b..ac12b4958
--- a/Gruntfile.coffee
+++ b/Gruntfile.coffee
@@ -1,5 +1,6 @@
module.exports = (grunt) ->
+ pkg = grunt.file.readJSON 'package.json'
concatOptions =
process: Object.create(null, data:
get: -> grunt.config 'pkg'
@@ -12,7 +13,7 @@ module.exports = (grunt) ->
# Project configuration.
grunt.initConfig
- pkg: grunt.file.readJSON 'package.json'
+ pkg: pkg
concat:
coffee:
options: concatOptions
@@ -168,35 +169,39 @@ module.exports = (grunt) ->
grunt.registerTask 'release', [
'build'
+ 'compress:crx'
'shell:commit'
'shell:push'
- 'build-crx'
- 'compress:crx'
]
grunt.registerTask 'patch', [
'bump'
+ 'reloadPkg'
'updcl:3'
- 'release'
]
grunt.registerTask 'minor', [
'bump:minor'
+ 'reloadPkg'
'updcl:2'
- 'release'
]
grunt.registerTask 'major', [
'bump:major'
+ 'reloadPkg'
'updcl:1'
- 'release'
]
- grunt.registerTask 'updcl', 'Update the changelog', (headerLevel) ->
- headerPrefix = new Array(+headerLevel + 1).join '#'
- {version} = grunt.config 'pkg'
- today = grunt.template.today 'yyyy-mm-dd'
- changelog = grunt.file.read 'CHANGELOG.md'
+ grunt.registerTask 'reloadPkg', 'Reload the package', ->
+ # Update the `pkg` object with the new version.
+ pkg = grunt.file.readJSON('package.json')
+ grunt.config.data.pkg = concatOptions.process.data = pkg
+ grunt.log.ok('pkg reloaded.')
- grunt.file.write 'CHANGELOG.md', "#{headerPrefix} #{version} - *#{today}*\n\n#{changelog}"
- grunt.log.ok "Changelog updated for v#{version}."
+ grunt.registerTask 'updcl', 'Update the changelog', (i) ->
+ # i is the number of #s for markdown.
+ version = []
+ version.length = +i + 1
+ version = version.join('#') + ' v' + pkg.version + '\n*' + grunt.template.today('yyyy-mm-dd') + '*\n'
+ grunt.file.write 'CHANGELOG.md', version + '\n' + grunt.file.read('CHANGELOG.md')
+ grunt.log.ok 'Changelog updated for v' + pkg.version + '.'
diff --git a/LICENSE b/LICENSE
old mode 100644
new mode 100755
index 0e51b2c37..4cb85e680
--- a/LICENSE
+++ b/LICENSE
@@ -1,5 +1,5 @@
/*
-* 4chan X - Version 1.2.25 - 2013-08-14
+* 4chan X - Version 1.2.27 - 2013-08-14
*
* Licensed under the MIT license.
* https://github.com/seaweedchan/4chan-x/blob/master/LICENSE
diff --git a/README.md b/README.md
old mode 100644
new mode 100755
diff --git a/builds/4chan-X.js b/builds/4chan-X.js
old mode 100644
new mode 100755
index dd5c3e4fe..b5ea4362f
--- a/builds/4chan-X.js
+++ b/builds/4chan-X.js
@@ -19,7 +19,7 @@
// @icon data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwAgMAAAAqbBEUAAAACVBMVEUAAGcAAABmzDNZt9VtAAAAAXRSTlMAQObYZgAAAHFJREFUKFOt0LENACEIBdBv4Qju4wgWanEj3D6OcIVMKaitYHEU/jwTCQj8W75kiVCSBvdQ5/AvfVHBin11BgdRq3ysBgfwBDRrj3MCIA+oAQaku/Q1cNctrAmyDl577tOThYt/Y1RBM4DgOHzM0HFTAyLukH/cmRnqAAAAAElFTkSuQmCC
// ==/UserScript==
/*
-* 4chan X - Version 1.2.25 - 2013-08-04
+* 4chan X - Version 1.2.25 - 2013-08-11
*
* Licensed under the MIT license.
* https://github.com/seaweedchan/4chan-x/blob/master/LICENSE
@@ -340,7 +340,6 @@
Array.prototype.add = function(object, position) {
var keep;
-
keep = this.slice(position);
this.length = position;
this.push(object);
@@ -353,7 +352,6 @@
Array.prototype.indexOf = function(object) {
var i;
-
i = this.length;
while (i--) {
if (this[i] === object) {
@@ -365,7 +363,6 @@
Array.prototype.pushArrays = function() {
var arg, args, _i, _len;
-
args = arguments;
for (_i = 0, _len = args.length; _i < _len; _i++) {
arg = args[_i];
@@ -376,7 +373,6 @@
Array.prototype.remove = function(object) {
var index;
-
if ((index = this.indexOf(object)) > -1) {
return this.splice(index, 1);
} else {
@@ -393,7 +389,6 @@
$.extend = function(object, properties) {
var key, val;
-
for (key in properties) {
val = properties[key];
if (!properties.hasOwnProperty(key)) {
@@ -411,7 +406,6 @@
$.ready = function(fc) {
var cb, _ref;
-
if ((_ref = d.readyState) === 'interactive' || _ref === 'complete') {
$.queueTask(fc);
return;
@@ -425,7 +419,6 @@
$.formData = function(form) {
var fd, key, val;
-
if (form instanceof HTMLFormElement) {
return new FormData(form);
}
@@ -446,7 +439,6 @@
$.ajax = function(url, callbacks, opts) {
var cred, err, form, headers, key, r, sync, type, upCallbacks, val;
-
if (opts == null) {
opts = {};
}
@@ -472,11 +464,9 @@
$.cache = (function() {
var reqs;
-
reqs = {};
return function(url, cb) {
var err, req, rm;
-
if (req = reqs[url]) {
if (req.readyState === 4) {
cb.call(req, req.evt);
@@ -492,7 +482,6 @@
req = $.ajax(url, {
onload: function(e) {
var _i, _len, _ref;
-
_ref = this.callbacks;
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
cb = _ref[_i];
@@ -534,7 +523,6 @@
$.addStyle = function(css, id) {
var style;
-
style = $.el('style', {
id: id,
textContent: css
@@ -581,7 +569,6 @@
} else {
return function(el) {
var _ref;
-
return (_ref = el.parentNode) != null ? _ref.removeChild(el) : void 0;
};
}
@@ -589,7 +576,6 @@
$.rmAll = function(root) {
var node;
-
while (node = root.firstChild) {
root.removeChild(node);
}
@@ -605,7 +591,6 @@
$.nodes = function(nodes) {
var frag, node, _i, _len;
-
if (!(nodes instanceof Array)) {
return nodes;
}
@@ -639,7 +624,6 @@
$.el = function(tag, properties) {
var el;
-
el = d.createElement(tag);
if (properties) {
$.extend(el, properties);
@@ -649,7 +633,6 @@
$.on = function(el, events, handler) {
var event, _i, _len, _ref;
-
_ref = events.split(' ');
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
event = _ref[_i];
@@ -659,7 +642,6 @@
$.off = function(el, events, handler) {
var event, _i, _len, _ref;
-
_ref = events.split(' ');
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
event = _ref[_i];
@@ -683,7 +665,6 @@
$.debounce = function(wait, fn) {
var args, exec, lastCall, that, timeout;
-
lastCall = 0;
timeout = null;
that = null;
@@ -705,11 +686,9 @@
$.queueTask = (function() {
var execTask, taskChannel, taskQueue;
-
taskQueue = [];
execTask = function() {
var args, func, task;
-
task = taskQueue.shift();
func = task[0];
args = Array.prototype.slice.call(task, 1);
@@ -732,7 +711,6 @@
$.globalEval = function(code) {
var script;
-
script = $.el('script', {
textContent: code
});
@@ -742,7 +720,6 @@
$.bytesToString = function(size) {
var unit;
-
unit = 0;
while (size >= 1024) {
size /= 1024;
@@ -761,7 +738,6 @@
$.sync = (function() {
window.addEventListener('storage', function(e) {
var cb;
-
if (cb = $.syncing[e.key]) {
return cb(JSON.parse(e.newValue));
}
@@ -773,7 +749,6 @@
$.item = function(key, val) {
var item;
-
item = {};
item[key] = val;
return item;
@@ -781,11 +756,9 @@
(function() {
var scriptStorage;
-
scriptStorage = opera.scriptStorage;
$["delete"] = function(keys) {
var key, _i, _len;
-
if (!(keys instanceof Array)) {
keys = [keys];
}
@@ -798,7 +771,6 @@
};
$.get = function(key, val, cb) {
var items;
-
if (typeof cb === 'function') {
items = $.item(key, val);
} else {
@@ -816,7 +788,6 @@
};
$.set = (function() {
var set;
-
set = function(key, val) {
key = g.NAMESPACE + key;
val = JSON.stringify(val);
@@ -827,7 +798,6 @@
};
return function(keys, val) {
var key;
-
if (typeof keys === 'string') {
set(keys, val);
return;
@@ -896,7 +866,6 @@
function Post(root, thread, board, that) {
var alt, anchor, capcode, date, email, file, fileInfo, flag, info, name, post, size, subject, thumb, tripcode, uniqueID, unit;
-
this.thread = thread;
this.board = board;
if (that == null) {
@@ -995,7 +964,6 @@
Post.prototype.parseComment = function() {
var bq, data, i, node, nodes, text, _i, _len, _ref;
-
bq = this.nodes.comment.cloneNode(true);
_ref = $$('.abbr, .capcodeReplies, .exif, b', bq);
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
@@ -1013,7 +981,6 @@
Post.prototype.parseQuotes = function() {
var hash, pathname, quotelink, quotes, _i, _len, _ref;
-
quotes = {};
_ref = $$('.quotelink', this.nodes.comment);
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
@@ -1043,7 +1010,6 @@
Post.prototype.kill = function(file, now) {
var clone, quotelink, strong, _i, _j, _len, _len1, _ref, _ref1;
-
now || (now = new Date());
if (file) {
if (this.file.isDead) {
@@ -1092,7 +1058,6 @@
Post.prototype.resurrect = function() {
var clone, quotelink, strong, _i, _j, _len, _len1, _ref, _ref1;
-
delete this.isDead;
delete this.timeOfDeath;
$.rmClass(this.nodes.root, 'deleted-post');
@@ -1126,7 +1091,6 @@
Post.prototype.rmClone = function(index) {
var clone, _i, _len, _ref;
-
this.clones.splice(index, 1);
_ref = this.clones.slice(index);
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
@@ -1144,7 +1108,6 @@
function Clone(origin, context) {
var file, index, info, inline, inlined, key, nodes, post, root, val, _i, _j, _k, _len, _len1, _len2, _ref, _ref1, _ref2, _ref3;
-
this.origin = origin;
this.context = context;
_ref = ['ID', 'fullID', 'board', 'thread', 'info', 'quotes', 'isReply'];
@@ -1233,7 +1196,6 @@
function DataBoard(key, sync) {
var init,
_this = this;
-
this.key = key;
this.data = Conf[key];
$.sync(key, this.onSync.bind(this));
@@ -1250,7 +1212,6 @@
DataBoard.prototype["delete"] = function(_arg) {
var boardID, postID, threadID;
-
boardID = _arg.boardID, threadID = _arg.threadID, postID = _arg.postID;
if (postID) {
delete this.data.boards[boardID][threadID][postID];
@@ -1271,7 +1232,6 @@
DataBoard.prototype.deleteIfEmpty = function(_arg) {
var boardID, threadID;
-
boardID = _arg.boardID, threadID = _arg.threadID;
if (threadID) {
if (!Object.keys(this.data.boards[boardID][threadID]).length) {
@@ -1287,7 +1247,6 @@
DataBoard.prototype.set = function(_arg) {
var boardID, postID, threadID, val, _base, _base1, _base2;
-
boardID = _arg.boardID, threadID = _arg.threadID, postID = _arg.postID, val = _arg.val;
if (postID !== void 0) {
((_base = ((_base1 = this.data.boards)[boardID] || (_base1[boardID] = {})))[threadID] || (_base[threadID] = {}))[postID] = val;
@@ -1301,7 +1260,6 @@
DataBoard.prototype.get = function(_arg) {
var ID, board, boardID, defaultValue, postID, thread, threadID, val, _i, _len;
-
boardID = _arg.boardID, threadID = _arg.threadID, postID = _arg.postID, defaultValue = _arg.defaultValue;
if (board = this.data.boards[boardID]) {
if (!threadID) {
@@ -1325,7 +1283,6 @@
DataBoard.prototype.clean = function() {
var boardID, now, val, _ref;
-
_ref = this.data.boards;
for (boardID in _ref) {
val = _ref[boardID];
@@ -1345,10 +1302,8 @@
DataBoard.prototype.ajaxClean = function(boardID) {
var _this = this;
-
return $.cache("//api.4chan.org/" + boardID + "/threads.json", function(e) {
var board, page, thread, threads, _i, _j, _len, _len1, _ref, _ref1;
-
if (e.target.status === 404) {
_this["delete"](boardID);
} else if (e.target.status === 200) {
@@ -1459,7 +1414,6 @@
init: function() {
var barFixedToggler, barPositionToggler, customNavToggler, editCustomNav, footerToggler, headerToggler, linkJustifyToggler,
_this = this;
-
this.menu = new UI.Menu('header');
this.menuButton = $.el('span', {
className: 'menu-button',
@@ -1543,7 +1497,6 @@
}
$.asap((function() {
var _ref;
-
return $.id('boardNavMobile') || ((_ref = d.readyState) === 'interactive' || _ref === 'complete');
}), Header.setBoardList);
$.prepend(d.body, _this.bar);
@@ -1552,7 +1505,6 @@
});
return $.ready(function() {
var a, cs;
-
_this.footer = $.id('boardNavDesktopFoot');
if (a = $("a[href*='/" + g.BOARD + "/']", $.id('boardNavDesktopFoot'))) {
a.className = 'current';
@@ -1586,7 +1538,6 @@
}),
setBoardList: function() {
var a, boardList, btn, fourchannav, fullBoardList;
-
fourchannav = $.id('boardNavDesktop');
if (a = $("a[href*='/" + g.BOARD + "/']", fourchannav)) {
a.className = 'current';
@@ -1608,7 +1559,6 @@
},
generateBoardList: function(text) {
var as, list, nodes;
-
list = $('#custom-board-list', Header.bar);
$.rmAll(list);
if (!text) {
@@ -1617,7 +1567,6 @@
as = $$('#full-board-list a', Header.bar);
nodes = text.match(/[\w@]+((-(all|title|replace|full|index|catalog|url:"[^"]+[^"]"|text:"[^"]+")|\,"[^"]+[^"]"))*|[^\w@]+/g).map(function(t) {
var a, board, m, _i, _len;
-
if (/^[^\w@]/.test(t)) {
return $.tn(t);
}
@@ -1664,7 +1613,6 @@
},
toggleBoardList: function() {
var bar, custom, full, showBoardList;
-
bar = Header.bar;
custom = $('#custom-board-list', bar);
full = $('#full-board-list', bar);
@@ -1700,7 +1648,6 @@
},
toggleLinkJustify: function() {
var centered;
-
$.event('CloseMenu');
centered = this.nodeName === 'INPUT' ? this.checked : void 0;
Header.setLinkJustify(centered);
@@ -1730,7 +1677,6 @@
},
toggleBarVisibility: function(e) {
var hide, message;
-
if (e.type === 'mousedown' && e.button !== 0) {
return;
}
@@ -1747,7 +1693,6 @@
},
toggleFooterVisibility: function() {
var hide, message;
-
$.event('CloseMenu');
hide = this.nodeName === 'INPUT' ? this.checked : !!Header.footer.hidden;
Header.setFooterVisibility(hide);
@@ -1757,7 +1702,6 @@
},
setCustomNav: function(show) {
var btn, cust, full, _ref;
-
Header.customNavToggler.checked = show;
cust = $('#custom-board-list', Header.bar);
full = $('#full-board-list', Header.bar);
@@ -1770,14 +1714,12 @@
},
editCustomNav: function() {
var settings;
-
Settings.open('Advanced');
settings = $.id('fourchanx-settings');
return $('input[name=boardnav]', settings).focus();
},
hashScroll: function() {
var hash, post;
-
if (!((hash = this.location.hash.slice(1)) && (post = $.id(hash)))) {
return;
}
@@ -1788,7 +1730,6 @@
},
scrollToPost: function(post) {
var headRect, top;
-
top = post.getBoundingClientRect().top;
if (Conf['Fixed Header'] && !Conf['Bottom Header']) {
headRect = Header.bar.getBoundingClientRect();
@@ -1798,7 +1739,6 @@
},
addShortcut: function(el) {
var shortcut;
-
shortcut = $.el('span', {
className: 'shortcut fourchanx-link'
});
@@ -1810,7 +1750,6 @@
},
createNotification: function(e) {
var cb, content, lifetime, notif, type, _ref;
-
_ref = e.detail, type = _ref.type, content = _ref.content, lifetime = _ref.lifetime, cb = _ref.cb;
notif = new Notification(type, content, lifetime);
if (cb) {
@@ -1823,7 +1762,6 @@
spoilerRange: {},
shortFilename: function(filename, isReply) {
var threshold;
-
threshold = isReply ? 30 : 40;
if (filename.length - 4 > threshold) {
return "" + filename.slice(0, threshold - 5) + "(...)." + filename.slice(-3);
@@ -1833,7 +1771,6 @@
},
postFromObject: function(data, boardID) {
var o;
-
o = {
postID: data.no,
threadID: data.resto || data.no,
@@ -1877,7 +1814,6 @@
*/
var a, boardID, capcode, capcodeClass, capcodeStart, closed, comment, container, date, dateUTC, email, emailEnd, emailStart, ext, file, fileDims, fileHTML, fileInfo, fileSize, fileThumb, filename, flag, flagCode, flagName, href, imgSrc, isClosed, isOP, isSticky, name, postID, quote, shortFilename, spoilerRange, staticPath, sticky, subject, threadID, tripcode, uniqueID, userID, _i, _len, _ref;
-
postID = o.postID, threadID = o.threadID, boardID = o.boardID, name = o.name, capcode = o.capcode, tripcode = o.tripcode, uniqueID = o.uniqueID, email = o.email, subject = o.subject, flagCode = o.flagCode, flagName = o.flagName, date = o.date, dateUTC = o.dateUTC, isSticky = o.isSticky, isClosed = o.isClosed, comment = o.comment, file = o.file;
isOP = postID === threadID;
staticPath = '//static.4chan.org/image/';
@@ -1973,7 +1909,6 @@
Get = {
threadExcerpt: function(thread) {
var OP, excerpt, _ref;
-
OP = thread.OP;
excerpt = ((_ref = OP.info.subject) != null ? _ref.trim() : void 0) || OP.info.comment.replace(/\n+/g, ' // ') || Conf['Anonymize'] && 'Anonymous' || $('.nameBlock', OP.nodes.info).textContent.trim();
if (excerpt.length > 70) {
@@ -1986,7 +1921,6 @@
},
postFromRoot: function(root) {
var boardID, index, link, post, postID;
-
link = $('a[title="Highlight this post"]', root);
boardID = link.pathname.split('/')[1];
postID = link.hash.slice(2);
@@ -2006,7 +1940,6 @@
},
postDataFromLink: function(link) {
var boardID, path, postID, threadID;
-
if (link.hostname === 'boards.4chan.org') {
path = link.pathname.split('/');
boardID = path[1];
@@ -2025,7 +1958,6 @@
},
allQuotelinksLinkingTo: function(post) {
var ID, quote, quotedPost, quotelinks, quoterPost, _i, _j, _k, _len, _len1, _len2, _ref, _ref1, _ref2, _ref3;
-
quotelinks = [];
_ref = g.posts;
for (ID in _ref) {
@@ -2054,14 +1986,12 @@
}
return quotelinks.filter(function(quotelink) {
var boardID, postID, _ref4;
-
_ref4 = Get.postDataFromLink(quotelink), boardID = _ref4.boardID, postID = _ref4.postID;
return boardID === post.board.ID && postID === post.ID;
});
},
postClone: function(boardID, threadID, postID, root, context) {
var post, url;
-
if (post = g.posts["" + boardID + "." + postID]) {
Get.insert(post, root, context);
return;
@@ -2082,7 +2012,6 @@
},
insert: function(post, root, context) {
var clone, nodes;
-
if (!root.parentNode) {
return;
}
@@ -2096,7 +2025,6 @@
},
fetchedPost: function(req, boardID, threadID, postID, root, context) {
var board, post, posts, status, thread, url, _i, _len;
-
if (post = g.posts["" + boardID + "." + postID]) {
Get.insert(post, root, context);
return;
@@ -2146,7 +2074,6 @@
},
archivedPost: function(req, boardID, postID, root, context) {
var board, bq, comment, data, o, post, thread, threadID, _ref;
-
if (post = g.posts["" + boardID + "." + postID]) {
Get.insert(post, root, context);
return;
@@ -2240,10 +2167,8 @@
UI = (function() {
var Menu, dialog, drag, dragend, dragstart, hover, hoverend, hoverstart, touchend, touchmove;
-
dialog = function(id, position, html) {
var child, el, move, _i, _len, _ref;
-
el = $.el('div', {
className: 'dialog',
innerHTML: html,
@@ -2283,7 +2208,6 @@
Menu.prototype.makeMenu = function() {
var menu;
-
menu = $.el('div', {
className: 'dialog',
id: 'menu',
@@ -2298,7 +2222,6 @@
Menu.prototype.toggle = function(e, button, data) {
var previousButton;
-
e.preventDefault();
e.stopPropagation();
if (currentMenu) {
@@ -2316,7 +2239,6 @@
Menu.prototype.open = function(button, data) {
var bLeft, bRect, bTop, bottom, cHeight, cWidth, entry, left, mRect, menu, right, style, top, _i, _len, _ref, _ref1, _ref2;
-
menu = this.makeMenu();
currentMenu = menu;
lastToggledButton = button;
@@ -2355,7 +2277,6 @@
Menu.prototype.insertEntry = function(entry, parent, data) {
var subEntry, submenu, _i, _len, _ref;
-
if (typeof entry.open === 'function') {
if (!entry.open(data)) {
return;
@@ -2389,7 +2310,6 @@
Menu.prototype.findNextEntry = function(entry, direction) {
var entries;
-
entries = __slice.call(entry.parentNode.children);
entries.sort(function(first, second) {
return +(first.style.order || first.style.webkitOrder) - +(second.style.order || second.style.webkitOrder);
@@ -2399,7 +2319,6 @@
Menu.prototype.keybinds = function(e) {
var entry, next, nextPrev, subEntry, submenu;
-
entry = $('.focused', currentMenu);
while (subEntry = $('.focused', entry)) {
entry = subEntry;
@@ -2445,7 +2364,6 @@
Menu.prototype.focus = function(entry) {
var bottom, cHeight, cWidth, eRect, focused, left, right, sRect, style, submenu, top, _i, _len, _ref, _ref1, _ref2;
-
while (focused = $.x('parent::*/child::*[contains(@class,"focused")]', entry)) {
$.rmClass(focused, 'focused');
}
@@ -2473,7 +2391,6 @@
Menu.prototype.addEntry = function(e) {
var entry;
-
entry = e.detail;
if (entry.type !== this.type) {
return;
@@ -2484,7 +2401,6 @@
Menu.prototype.parseEntry = function(entry) {
var el, style, subEntries, subEntry, _i, _len;
-
el = entry.el, subEntries = entry.subEntries;
$.addClass(el, 'entry');
$.on(el, 'focus mouseover', (function(e) {
@@ -2508,7 +2424,6 @@
})();
dragstart = function(e) {
var el, isTouching, o, rect, screenHeight, screenWidth, _ref;
-
if (e.type === 'mousedown' && e.button !== 0) {
return;
}
@@ -2547,7 +2462,6 @@
};
touchmove = function(e) {
var touch, _i, _len, _ref;
-
_ref = e.changedTouches;
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
touch = _ref[_i];
@@ -2559,7 +2473,6 @@
};
drag = function(e) {
var bottom, clientX, clientY, left, right, style, top;
-
clientX = e.clientX, clientY = e.clientY;
left = clientX - this.dx;
left = left < 10 ? 0 : this.width - left < 10 ? null : left / this.screenWidth * 100 + '%';
@@ -2575,7 +2488,6 @@
};
touchend = function(e) {
var touch, _i, _len, _ref;
-
_ref = e.changedTouches;
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
touch = _ref[_i];
@@ -2597,7 +2509,6 @@
};
hoverstart = function(_arg) {
var asapTest, cb, el, endEvents, latestEvent, o, root;
-
root = _arg.root, el = _arg.el, latestEvent = _arg.latestEvent, endEvents = _arg.endEvents, asapTest = _arg.asapTest, cb = _arg.cb;
o = {
root: root,
@@ -2626,7 +2537,6 @@
};
hover = function(e) {
var clientX, clientY, height, left, right, style, top, _ref;
-
this.latestEvent = e;
height = this.el.offsetHeight;
clientX = e.clientX, clientY = e.clientY;
@@ -2669,7 +2579,6 @@
},
node: function() {
var email, name, tripcode, _ref;
-
if (this.info.capcode || this.isClone) {
return;
}
@@ -2696,7 +2605,6 @@
filters: {},
init: function() {
var boards, err, filter, hl, key, op, regexp, stub, top, _i, _len, _ref, _ref1, _ref2, _ref3, _ref4;
-
if (g.VIEW === 'catalog' || !Conf['Filter']) {
return;
}
@@ -2733,7 +2641,6 @@
op = ((_ref2 = filter.match(/[^t]op:(yes|no|only)/)) != null ? _ref2[1] : void 0) || 'yes';
stub = (function() {
var _ref3;
-
switch ((_ref3 = filter.match(/stub:(yes|no)/)) != null ? _ref3[1] : void 0) {
case 'yes':
return true;
@@ -2764,7 +2671,6 @@
},
createFilter: function(regexp, op, stub, hl, top) {
var settings, test;
-
test = typeof regexp === 'string' ? function(value) {
return regexp === value;
} : function(value) {
@@ -2788,7 +2694,6 @@
},
node: function() {
var filter, firstThread, key, result, thisThread, value, _i, _len, _ref;
-
if (this.isClone) {
return;
}
@@ -2900,7 +2805,6 @@
menu: {
init: function() {
var div, entry, type, _i, _len, _ref;
-
if (g.VIEW === 'catalog' || !Conf['Menu'] || !Conf['Filter']) {
return;
}
@@ -2926,7 +2830,6 @@
},
createSubEntry: function(text, type) {
var el;
-
el = $.el('a', {
href: 'javascript:;',
textContent: text
@@ -2937,7 +2840,6 @@
el: el,
open: function(post) {
var value;
-
value = Filter[type](post);
return value !== false;
}
@@ -2945,7 +2847,6 @@
},
makeFilter: function() {
var re, type, value;
-
type = this.dataset.type;
value = Filter[type](Filter.menu.post);
re = ['uniqueID', 'MD5'].contains(type) ? value : value.replace(/\/|\\|\^|\$|\n|\.|\(|\)|\{|\}|\[|\]|\?|\*|\+|\|/g, function(c) {
@@ -2960,7 +2861,6 @@
re = ['uniqueID', 'MD5'].contains(type) ? "/" + re + "/" : "/^" + re + "$/";
return $.get(type, Conf[type], function(item) {
var save, section, select, ta, tl;
-
save = item[type];
save = save ? "" + save + "\n" + re : re;
$.set(type, save);
@@ -2994,7 +2894,6 @@
},
node: function() {
var data;
-
if (!this.isReply || this.isClone) {
return;
}
@@ -3018,7 +2917,6 @@
menu: {
init: function() {
var apply, div, hideStubLink, makeStub, replies, thisPost;
-
if (g.VIEW === 'catalog' || !Conf['Menu'] || !Conf['Reply Hiding Link']) {
return;
}
@@ -3089,7 +2987,6 @@
order: 20,
open: function(post) {
var data;
-
if (!post.isReply || post.isClone || !post.isHidden) {
return false;
}
@@ -3121,7 +3018,6 @@
order: 15,
open: function(post) {
var data;
-
if (!post.isReply || post.isClone || !post.isHidden) {
return false;
}
@@ -3138,7 +3034,6 @@
},
hide: function() {
var makeStub, parent, post, replies, thisPost;
-
parent = this.parentNode;
thisPost = $('input[name=thisPost]', parent).checked;
replies = $('input[name=replies]', parent).checked;
@@ -3157,7 +3052,6 @@
},
show: function() {
var data, parent, post, replies, thisPost;
-
parent = this.parentNode;
thisPost = $('input[name=thisPost]', parent).checked;
replies = $('input[name=replies]', parent).checked;
@@ -3181,7 +3075,6 @@
},
hideStub: function() {
var post;
-
post = PostHiding.menu.post;
post.nodes.root.hidden = true;
$.event('CloseMenu');
@@ -3189,7 +3082,6 @@
},
makeButton: function(post, type) {
var a;
-
a = $.el('a', {
className: "" + type + "-reply-button",
innerHTML: " " + (type === 'hide' ? '-' : '+') + " ",
@@ -3200,7 +3092,6 @@
},
saveHiddenState: function(post, isHiding, thisPost, makeStub, hideRecursively) {
var data;
-
data = {
boardID: post.board.ID,
threadID: post.thread.ID,
@@ -3219,7 +3110,6 @@
},
toggle: function() {
var post;
-
post = Get.postFromNode(this);
if (post.isHidden) {
PostHiding.show(post);
@@ -3230,7 +3120,6 @@
},
hide: function(post, makeStub, hideRecursively) {
var a, postInfo, quotelink, _i, _len, _ref;
-
if (makeStub == null) {
makeStub = Conf['Stubs'];
}
@@ -3268,7 +3157,6 @@
},
show: function(post, showRecursively) {
var quotelink, _i, _len, _ref;
-
if (showRecursively == null) {
showRecursively = Conf['Recursive Hiding'];
}
@@ -3304,7 +3192,6 @@
},
node: function() {
var i, obj, quote, recursive, _i, _j, _len, _len1, _ref, _ref1;
-
if (this.isClone) {
return;
}
@@ -3322,7 +3209,6 @@
},
add: function() {
var args, obj, post, recursive, _base, _name;
-
recursive = arguments[0], post = arguments[1], args = 3 <= arguments.length ? __slice.call(arguments, 2) : [];
obj = (_base = Recursive.recursives)[_name = post.fullID] || (_base[_name] = {
recursives: [],
@@ -3333,7 +3219,6 @@
},
rm: function(recursive, post) {
var i, obj, rec, _i, _len, _ref;
-
if (!(obj = Recursive.recursives[post.fullID])) {
return;
}
@@ -3348,7 +3233,6 @@
},
apply: function() {
var ID, args, fullID, post, recursive, _ref;
-
recursive = arguments[0], post = arguments[1], args = 3 <= arguments.length ? __slice.call(arguments, 2) : [];
fullID = post.fullID;
_ref = g.posts;
@@ -3375,7 +3259,6 @@
},
node: function() {
var data;
-
if (data = ThreadHiding.db.get({
boardID: this.board.ID,
threadID: this.ID
@@ -3389,7 +3272,6 @@
},
syncCatalog: function() {
var hiddenThreads, hiddenThreadsOnCatalog, threadID;
-
hiddenThreads = ThreadHiding.db.get({
boardID: g.BOARD.ID,
defaultValue: {}
@@ -3416,7 +3298,6 @@
cleanCatalog: function(hiddenThreadsOnCatalog) {
return $.cache("//api.4chan.org/" + g.BOARD + "/threads.json", function() {
var page, thread, threads, _i, _j, _len, _len1, _ref, _ref1;
-
if (this.status !== 200) {
return;
}
@@ -3442,7 +3323,6 @@
menu: {
init: function() {
var apply, div, hideStubLink, makeStub;
-
if (g.VIEW !== 'index' || !Conf['Menu'] || !Conf['Thread Hiding Link']) {
return;
}
@@ -3469,7 +3349,6 @@
order: 20,
open: function(_arg) {
var isReply, thread;
-
thread = _arg.thread, isReply = _arg.isReply;
if (isReply || thread.isHidden) {
return false;
@@ -3491,7 +3370,6 @@
order: 15,
open: function(_arg) {
var isReply, thread;
-
thread = _arg.thread, isReply = _arg.isReply;
if (isReply || !thread.isHidden) {
return false;
@@ -3502,7 +3380,6 @@
},
hide: function() {
var makeStub, thread;
-
makeStub = $('input', this.parentNode).checked;
thread = ThreadHiding.menu.thread;
ThreadHiding.hide(thread, makeStub);
@@ -3511,7 +3388,6 @@
},
hideStub: function() {
var thread;
-
thread = ThreadHiding.menu.thread;
ThreadHiding.hide(thread, false);
$.event('CloseMenu');
@@ -3519,7 +3395,6 @@
},
makeButton: function(thread, type) {
var a;
-
a = $.el('a', {
className: "" + type + "-thread-button",
innerHTML: " " + (type === 'hide' ? '-' : '+') + " ",
@@ -3531,7 +3406,6 @@
},
saveHiddenState: function(thread, makeStub) {
var hiddenThreadsOnCatalog;
-
hiddenThreadsOnCatalog = JSON.parse(localStorage.getItem("4chan-hide-t-" + g.BOARD)) || {};
if (thread.isHidden) {
ThreadHiding.db.set({
@@ -3564,7 +3438,6 @@
},
hide: function(thread, makeStub) {
var OP, a, numReplies, opInfo, span, threadRoot;
-
if (makeStub == null) {
makeStub = Conf['Stubs'];
}
@@ -3595,7 +3468,6 @@
},
show: function(thread) {
var threadRoot;
-
if (thread.stub) {
$.rm(thread.stub);
delete thread.stub;
@@ -3608,7 +3480,6 @@
QuoteBacklink = {
init: function() {
var format;
-
if (g.VIEW === 'catalog' || !Conf['Quote Backlinks']) {
return;
}
@@ -3626,7 +3497,6 @@
},
firstNode: function() {
var a, clone, container, containers, frag, link, post, quote, _i, _j, _k, _len, _len1, _len2, _ref, _ref1;
-
if (this.isClone || !this.quotes.length) {
return;
}
@@ -3664,7 +3534,6 @@
},
secondNode: function() {
var container;
-
if (this.isClone && (this.origin.isReply || Conf['OP Backlinks'])) {
this.nodes.backlinkContainer = $('.container', this.nodes.info);
return;
@@ -3678,7 +3547,6 @@
},
getContainer: function(id) {
var _base;
-
return (_base = this.containers)[id] || (_base[id] = $.el('span', {
className: 'container'
}));
@@ -3701,7 +3569,6 @@
},
node: function() {
var board, boardID, quotelink, quotelinks, quotes, thread, threadID, _i, _len, _ref, _ref1;
-
if (this.isClone && this.thread === this.context.thread) {
return;
}
@@ -3737,7 +3604,6 @@
if (Conf['Quote Hash Navigation']) {
this.node = function() {
var link, _i, _len, _ref;
-
_ref = this.nodes.quotelinks.concat(__slice.call(this.nodes.backlinks));
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
link = _ref[_i];
@@ -3750,7 +3616,6 @@
} else {
this.node = function() {
var link, _i, _len, _ref;
-
_ref = this.nodes.quotelinks.concat(__slice.call(this.nodes.backlinks));
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
link = _ref[_i];
@@ -3774,7 +3639,6 @@
},
toggle: function(e) {
var boardID, context, postID, threadID, _ref;
-
if (e.shiftKey || e.altKey || e.ctrlKey || e.metaKey || e.button !== 0) {
return;
}
@@ -3800,7 +3664,6 @@
},
add: function(quotelink, boardID, threadID, postID, context) {
var inline, isBacklink, post, qroot, root;
-
isBacklink = $.hasClass(quotelink, 'backlink');
inline = $.el('div', {
id: "i" + postID,
@@ -3825,7 +3688,6 @@
},
rm: function(quotelink, boardID, threadID, postID, context) {
var el, inlined, isBacklink, post, qroot, root, _ref;
-
isBacklink = $.hasClass(quotelink, 'backlink');
root = QuoteInline.findRoot(quotelink, isBacklink);
root = $.x("following-sibling::div[@id='i" + postID + "'][1]", root);
@@ -3867,7 +3729,6 @@
},
node: function() {
var boardID, op, postID, quotelink, quotelinks, quotes, _i, _j, _len, _len1, _ref;
-
if (this.isClone && this.thread === this.context.thread) {
return;
}
@@ -3910,7 +3771,6 @@
},
node: function() {
var link, _i, _len, _ref;
-
_ref = this.nodes.quotelinks.concat(__slice.call(this.nodes.backlinks));
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
link = _ref[_i];
@@ -3919,7 +3779,6 @@
},
mouseover: function(e) {
var boardID, clone, origin, post, postID, posts, qp, quote, quoterID, root, threadID, workaround, _i, _j, _len, _len1, _ref, _ref1;
-
if ($.hasClass(this, 'inlined')) {
return;
}
@@ -3975,7 +3834,6 @@
},
mouseout: function() {
var clone, post, root, _i, _len, _ref;
-
if (!(root = this.el.firstElementChild)) {
return;
}
@@ -4005,7 +3863,6 @@
},
node: function() {
var boardID, postID, quotelink, _i, _len, _ref, _ref1, _ref2;
-
if (this.isClone) {
return;
}
@@ -4028,7 +3885,6 @@
QuoteThreading = {
init: function() {
var input;
-
if (!(Conf['Quote Threading'] && g.VIEW === 'thread')) {
return;
}
@@ -4051,7 +3907,6 @@
},
setup: function() {
var ID, post, posts;
-
$.off(d, '4chanXInitFinished', QuoteThreading.setup);
posts = g.posts;
for (ID in posts) {
@@ -4064,7 +3919,6 @@
},
node: function() {
var ID, fullID, keys, len, post, posts, qid, quote, quotes, uniq, _i, _len;
-
if (this.isClone || !QuoteThreading.enabled || this.thread.OP === this) {
return;
}
@@ -4094,7 +3948,6 @@
},
nodeinsert: function() {
var bottom, height, posts, qpost, qroot, threadContainer, top, _ref;
-
posts = g.posts;
qpost = posts[this.threaded];
delete this.threaded;
@@ -4124,14 +3977,12 @@
},
toggle: function() {
var container, containers, node, nodes, replies, reply, thread, _i, _j, _len, _len1;
-
thread = $('.thread');
replies = $$('.thread > .replyContainer, .threadContainer > .replyContainer', thread);
QuoteThreading.enabled = this.checked;
if (this.checked) {
nodes = (function() {
var _i, _len, _results;
-
_results = [];
for (_i = 0, _len = replies.length; _i < _len; _i++) {
reply = replies[_i];
@@ -4146,7 +3997,6 @@
} else {
replies.sort(function(a, b) {
var aID, bID;
-
aID = Number(a.id.slice(2));
bID = Number(b.id.slice(2));
return aID - bID;
@@ -4162,7 +4012,6 @@
},
kb: function() {
var control;
-
control = $.id('threadingControl');
return control.click();
}
@@ -4189,7 +4038,6 @@
},
node: function() {
var quotelink, _i, _len, _ref;
-
if (this.isClone) {
return;
}
@@ -4225,7 +4073,6 @@
},
node: function() {
var deadlink, _i, _len, _ref;
-
_ref = $$('.deadlink', this.nodes.comment);
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
deadlink = _ref[_i];
@@ -4240,7 +4087,6 @@
},
parseDeadlink: function(deadlink) {
var a, boardID, m, post, postID, quote, quoteID, redirect, _ref;
-
if (deadlink.parentNode.className === 'prettyprint') {
$.replace(deadlink, __slice.call(deadlink.childNodes));
return;
@@ -4320,7 +4166,6 @@
cypher: $.el('div'),
node: function() {
var a, child, cypher, cypherText, data, embed, embedder, embeds, i, index, len, link, links, lookahead, name, next, node, nodes, snapshot, spoiler, text, _i, _j, _k, _l, _len, _len1, _len2, _len3, _len4, _m, _ref, _ref1, _ref2;
-
if (this.isClone && Conf['Embedding']) {
_ref = $$('.embedder', this.nodes.comment);
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
@@ -4405,7 +4250,6 @@
},
toggle: function() {
var el, embed, style, type, url;
-
embed = this.previousElementSibling;
if (this.className.contains("embedded")) {
el = $.el('a', {
@@ -4499,7 +4343,6 @@
style: 'height: auto; width: 500px; display: inline-block;',
el: function() {
var div;
-
div = $.el('div', {
className: "soundcloud",
name: "soundcloud"
@@ -4525,7 +4368,6 @@
regExp: /.*(?:pastebin.com\/(?!u\/))([^#\&\?]*).*/,
el: function() {
var div;
-
return div = $.el('iframe', {
src: "http://pastebin.com/embed_iframe.php?i=" + this.name
});
@@ -4535,7 +4377,6 @@
regExp: /.*(?:gist.github.com.*\/)([^\/][^\/]*)$/,
el: function() {
var div;
-
return div = $.el('iframe', {
src: "http://www.purplegene.com/script?url=https://gist.github.com/" + this.name + ".js"
});
@@ -4546,7 +4387,6 @@
},
text: function() {
var file, response;
-
response = JSON.parse(this.responseText).files;
for (file in response) {
if (response.hasOwnProperty(file)) {
@@ -4567,14 +4407,12 @@
},
embedder: function(a) {
var callbacks, embed, key, match, service, titles, type, _ref;
-
if (!Conf['Link Title']) {
return [a];
}
titles = {};
callbacks = function() {
var title;
-
return a.textContent = (function() {
switch (this.status) {
case 200:
@@ -4616,7 +4454,6 @@
if (Conf['Link Title'] && (service = type.title)) {
$.get('CachedTitles', {}, function(item) {
var err, title;
-
titles = item['CachedTitles'];
if (title = titles[match[1]]) {
a.textContent = title[0];
@@ -4640,7 +4477,6 @@
QR = {
init: function() {
var sc;
-
if (!Conf['Quick Reply']) {
return;
}
@@ -4687,7 +4523,6 @@
},
initReady: function() {
var link;
-
QR.postingIsEnabled = !!$.id('postForm');
if (!QR.postingIsEnabled) {
return;
@@ -4707,13 +4542,11 @@
$.before($.id('postForm'), link);
$.on(d, 'QRGetSelectedPost', function(_arg) {
var cb;
-
cb = _arg.detail;
return cb(QR.selected);
});
$.on(d, 'QRAddPreSubmitHook', function(_arg) {
var cb;
-
cb = _arg.detail;
return QR.preSubmitHooks.push(cb);
});
@@ -4742,7 +4575,6 @@
},
open: function() {
var err;
-
if (QR.nodes) {
QR.nodes.el.hidden = false;
QR.unhide();
@@ -4761,7 +4593,6 @@
},
close: function() {
var i, _i, _len, _ref;
-
if (QR.req) {
QR.abort();
return;
@@ -4808,7 +4639,6 @@
},
error: function(err) {
var el;
-
QR.open();
if (typeof err === 'string') {
el = $.tn(err);
@@ -4836,7 +4666,6 @@
notifications: [],
cleanNotifications: function() {
var notification, _i, _len, _ref;
-
_ref = QR.notifications;
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
notification = _ref[_i];
@@ -4846,7 +4675,6 @@
},
status: function() {
var disabled, status, value;
-
if (!QR.nodes) {
return;
}
@@ -4867,7 +4695,6 @@
QR.persona.getPassword();
return $.get('QR.personas', Conf['QR.personas'], function(_arg) {
var arr, item, personas, type, types, _i, _len, _ref;
-
personas = _arg['QR.personas'];
types = {
name: [],
@@ -4887,7 +4714,6 @@
},
parseItem: function(item, types) {
var boards, match, type, val, _ref, _ref1;
-
if (item[0] === '#') {
return;
}
@@ -4916,7 +4742,6 @@
},
loadPersonas: function(type, arr) {
var list, val, _i, _len;
-
list = $("#list-" + type, QR.nodes.el);
for (_i = 0, _len = arr.length; _i < _len; _i++) {
val = arr[_i];
@@ -4930,7 +4755,6 @@
},
getPassword: function() {
var input, m;
-
if (!QR.persona.pwd) {
QR.persona.pwd = (m = d.cookie.match(/4chan_pass=([^;]+)/)) ? decodeURIComponent(m[1]) : (input = $.id('postPassword')) ? input.value : $.id('delPassword').value;
}
@@ -4939,7 +4763,6 @@
get: function(cb) {
return $.get('QR.persona', {}, function(_arg) {
var persona;
-
persona = _arg['QR.persona'];
return cb(persona);
});
@@ -4947,7 +4770,6 @@
set: function(post) {
return $.get('QR.persona', {}, function(_arg) {
var persona;
-
persona = _arg['QR.persona'];
persona = {
name: post.name,
@@ -4961,7 +4783,6 @@
cooldown: {
init: function() {
var board;
-
if (!Conf['Cooldown']) {
return;
}
@@ -5003,7 +4824,6 @@
},
sync: function(cooldowns) {
var id;
-
for (id in cooldowns) {
QR.cooldown.cooldowns[id] = cooldowns[id];
}
@@ -5011,7 +4831,6 @@
},
set: function(data) {
var cooldown, delay, hasFile, isReply, isSage, post, req, start, type, upSpd;
-
if (!Conf['Cooldown']) {
return;
}
@@ -5051,7 +4870,6 @@
},
count: function() {
var cooldown, cooldowns, elapsed, hasFile, isReply, isSage, now, post, seconds, start, type, types, upSpd, upSpdAccuracy, update, _ref;
-
if (!Object.keys(QR.cooldown.cooldowns).length) {
$["delete"]("" + g.BOARD + ".cooldown");
delete QR.cooldown.isCounting;
@@ -5105,7 +4923,6 @@
},
quote: function(e) {
var OP, caretPos, com, index, post, range, s, sel, selectionRoot, text, thread, _ref;
-
if (e != null) {
e.preventDefault();
}
@@ -5145,7 +4962,6 @@
},
characterCount: function() {
var count, counter;
-
counter = QR.nodes.charCount;
count = QR.nodes.com.textLength;
counter.textContent = count;
@@ -5154,7 +4970,6 @@
},
drag: function(e) {
var toggle;
-
toggle = e.type === 'dragstart' ? $.off : $.on;
toggle(d, 'dragover', QR.dragOver);
return toggle(d, 'drop', QR.dropFile);
@@ -5174,7 +4989,6 @@
},
paste: function(e) {
var blob, files, item, _i, _len, _ref;
-
files = [];
_ref = e.clipboardData.items;
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
@@ -5202,7 +5016,6 @@
},
fileInput: function(files) {
var file, length, max, post, _i, _len;
-
if (this instanceof Element) {
files = __slice.call(this.files);
QR.nodes.fileInput.value = null;
@@ -5251,7 +5064,6 @@
function _Class(select) {
var el, event, prev, _i, _len, _ref,
_this = this;
-
el = $.el('a', {
className: 'qr-preview',
draggable: true,
@@ -5305,7 +5117,6 @@
_Class.prototype.rm = function() {
var index;
-
$.rm(this.nodes.el);
index = QR.posts.indexOf(this);
if (QR.posts.length === 1) {
@@ -5323,7 +5134,6 @@
_Class.prototype.lock = function(lock) {
var name, _i, _len, _ref;
-
if (lock == null) {
lock = true;
}
@@ -5348,7 +5158,6 @@
_Class.prototype.select = function() {
var rectEl, rectList;
-
if (QR.selected) {
QR.selected.nodes.el.id = null;
QR.selected.forceSave();
@@ -5365,7 +5174,6 @@
_Class.prototype.load = function() {
var name, _i, _len, _ref;
-
_ref = ['thread', 'name', 'email', 'sub', 'com'];
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
name = _ref[_i];
@@ -5377,7 +5185,6 @@
_Class.prototype.save = function(input) {
var value, _ref;
-
if (input.type === 'checkbox') {
this.spoiler = input.checked;
return;
@@ -5396,7 +5203,6 @@
_Class.prototype.forceSave = function() {
var name, _i, _len, _ref;
-
if (this !== QR.selected) {
return;
}
@@ -5428,7 +5234,6 @@
_Class.prototype.setThumbnail = function(fileURL) {
var img, reader,
_this = this;
-
if (!window.URL) {
if (!fileURL) {
reader = new FileReader();
@@ -5444,7 +5249,6 @@
img = $.el('img');
img.onload = function() {
var applyBlob, cv, data, height, i, l, s, ui8a, width, _i;
-
s = 90 * 2;
if (_this.file.type === 'image/gif') {
s *= 3;
@@ -5524,11 +5328,9 @@
_Class.prototype.pasteText = function(file) {
var reader,
_this = this;
-
reader = new FileReader();
reader.onload = function(e) {
var text;
-
text = e.target.result;
if (_this.com) {
_this.com += "\n" + text;
@@ -5566,7 +5368,6 @@
_Class.prototype.drop = function() {
var el, index, newIndex, oldIndex, post;
-
el = $('.drag', this.parentNode);
$.rmClass(el, 'drag');
$.rmClass(this, 'over');
@@ -5601,7 +5402,6 @@
ready: function() {
var imgContainer, input, observer, setLifetime,
_this = this;
-
setLifetime = function(e) {
return _this.lifetime = e.detail;
};
@@ -5643,7 +5443,6 @@
});
$.get('captchas', [], function(_arg) {
var captchas;
-
captchas = _arg.captchas;
return _this.sync(captchas);
});
@@ -5658,7 +5457,6 @@
},
getOne: function() {
var captcha, challenge, response;
-
this.clear();
if (captcha = this.captchas.shift()) {
challenge = captcha.challenge, response = captcha.response;
@@ -5683,7 +5481,6 @@
},
save: function() {
var response;
-
if (!(response = this.nodes.input.value.trim())) {
return;
}
@@ -5698,7 +5495,6 @@
},
clear: function() {
var captcha, i, now, _i, _len, _ref;
-
now = Date.now();
_ref = this.captchas;
for (i = _i = 0, _len = _ref.length; _i < _len; i = ++_i) {
@@ -5716,7 +5512,6 @@
},
load: function() {
var challenge;
-
if (!this.nodes.challenge.firstChild) {
return;
}
@@ -5729,7 +5524,6 @@
},
count: function() {
var count;
-
count = this.captchas.length;
this.nodes.input.placeholder = (function() {
switch (count) {
@@ -5762,7 +5556,6 @@
},
dialog: function() {
var dialog, mimeTypes, name, nodes, thread, _i, _len, _ref;
-
dialog = UI.dialog('qr', 'top:0;right:0;', " ");
QR.nodes = nodes = {
el: dialog,
@@ -5864,7 +5657,6 @@
preSubmitHooks: [],
submit: function(e) {
var callbacks, challenge, err, filetag, hook, opts, post, postData, response, textOnly, thread, threadID, _i, _len, _ref, _ref1;
-
if (e != null) {
e.preventDefault();
}
@@ -5950,7 +5742,7 @@
QR.cooldown.auto = false;
QR.status();
return QR.error($.el('span', {
- innerHTML: "4chan X encountered an error while posting. Please try again. \n[? ]"
+ innerHTML: "4chan X encountered an error while posting. \n[Banned? ] [More info ]"
}));
}
};
@@ -5977,7 +5769,6 @@
},
response: function() {
var URL, ban, board, err, h1, isReply, m, post, postID, req, threadID, tmpDoc, _, _ref, _ref1;
-
QR.req.upload.onload();
req = QR.req;
delete QR.req;
@@ -6081,7 +5872,6 @@
FappeTyme = {
init: function() {
var el, input;
-
if (!Conf['Fappe Tyme'] || g.VIEW === 'catalog' || g.BOARD === 'f') {
return;
}
@@ -6133,7 +5923,6 @@
},
node: function() {
var thumb, _ref;
-
if (!((_ref = this.file) != null ? _ref.isImage : void 0)) {
return;
}
@@ -6158,7 +5947,6 @@
},
toggleAll: function() {
var ID, file, func, post, _i, _len, _ref, _ref1;
-
$.event('CloseMenu');
if (ImageExpand.on = $.hasClass(ImageExpand.EAI, 'expand-all-shortcut')) {
ImageExpand.EAI.className = 'contract-all-shortcut';
@@ -6207,7 +5995,6 @@
},
toggle: function(post) {
var headRect, node, rect, root, thumb, top;
-
thumb = post.file.thumb;
if (!(post.file.isExpanded || $.hasClass(thumb, 'expanding'))) {
ImageExpand.expand(post);
@@ -6252,7 +6039,6 @@
},
expand: function(post, src) {
var img, thumb;
-
thumb = post.file.thumb;
if (post.isHidden || post.file.isExpanded || $.hasClass(thumb, 'expanding')) {
return;
@@ -6280,7 +6066,6 @@
},
completeExpand: function(post) {
var prev, thumb;
-
thumb = post.file.thumb;
if (!$.hasClass(thumb, 'expanding')) {
return;
@@ -6294,7 +6079,6 @@
prev = post.nodes.root.getBoundingClientRect();
return $.queueTask(function() {
var curr, root;
-
$.addClass(post.nodes.root, 'expanded-image');
$.rmClass(post.file.thumb, 'expanding');
if (!(prev.top + prev.height <= 0)) {
@@ -6307,7 +6091,6 @@
},
error: function() {
var URL, post, src, timeoutID;
-
post = Get.postFromNode(this);
$.rm(this);
delete post.file.fullImage;
@@ -6333,7 +6116,6 @@
return $.ajax("//api.4chan.org/" + post.board + "/res/" + post.thread + ".json", {
onload: function() {
var postObj, _i, _len, _ref;
-
if (this.status !== 200) {
return;
}
@@ -6357,7 +6139,6 @@
menu: {
init: function() {
var conf, createSubEntry, el, key, subEntries, _ref;
-
if (g.VIEW === 'catalog' || !Conf['Image Expansion']) {
return;
}
@@ -6381,7 +6162,6 @@
},
createSubEntry: function(type, config) {
var input, label;
-
label = $.el('label', {
innerHTML: " " + type
});
@@ -6417,7 +6197,6 @@
},
node: function() {
var _ref;
-
if (!((_ref = this.file) != null ? _ref.isImage : void 0)) {
return;
}
@@ -6425,7 +6204,6 @@
},
mouseover: function(e) {
var el, post;
-
post = Get.postFromNode(this);
el = $.el('img', {
id: 'ihover',
@@ -6447,7 +6225,6 @@
error: function() {
var URL, post, src, timeoutID,
_this = this;
-
if (!doc.contains(this)) {
return;
}
@@ -6472,7 +6249,6 @@
return $.ajax("//api.4chan.org/" + post.board + "/res/" + post.thread + ".json", {
onload: function() {
var postObj, _i, _len, _ref;
-
if (this.status !== 200) {
return;
}
@@ -6498,7 +6274,6 @@
ImageLoader = {
init: function() {
var prefetch;
-
if (g.VIEW === 'catalog') {
return;
}
@@ -6525,7 +6300,6 @@
},
node: function() {
var URL, img, string, style, thumb, type, _ref, _ref1;
-
if (this.isClone || this.isHidden || this.thread.isHidden || !((_ref = this.file) != null ? _ref.isImage : void 0)) {
return;
}
@@ -6547,7 +6321,6 @@
},
toggle: function() {
var enabled, id, post, _ref;
-
enabled = Conf['prefetch'] = this.checked;
if (enabled) {
_ref = g.threads["" + g.BOARD.ID + "." + g.THREADID].posts;
@@ -6571,7 +6344,6 @@
},
node: function() {
var thumb, _ref;
-
if (this.isClone || !((_ref = this.file) != null ? _ref.isSpoiler : void 0)) {
return;
}
@@ -6584,7 +6356,6 @@
ArchiveLink = {
init: function() {
var div, entry, type, _i, _len, _ref;
-
if (g.VIEW === 'catalog' || !Conf['Menu'] || !Conf['Archive Link']) {
return;
}
@@ -6597,7 +6368,6 @@
order: 90,
open: function(_arg) {
var ID, board, thread;
-
ID = _arg.ID, thread = _arg.thread, board = _arg.board;
return !!Redirect.to('thread', {
postID: ID,
@@ -6616,14 +6386,12 @@
},
createSubEntry: function(text, type) {
var el, open;
-
el = $.el('a', {
textContent: text,
target: '_blank'
});
open = type === 'post' ? function(_arg) {
var ID, board, thread;
-
ID = _arg.ID, thread = _arg.thread, board = _arg.board;
el.href = Redirect.to('thread', {
postID: ID,
@@ -6633,7 +6401,6 @@
return true;
} : function(post) {
var value;
-
value = Filter[type](post);
if (!value) {
return false;
@@ -6656,7 +6423,6 @@
DeleteLink = {
init: function() {
var div, fileEl, fileEntry, postEl, postEntry;
-
if (g.VIEW === 'catalog' || !Conf['Menu'] || !Conf['Delete Link']) {
return;
}
@@ -6684,7 +6450,6 @@
el: fileEl,
open: function(_arg) {
var file;
-
file = _arg.file;
if (!file || file.isDead) {
return false;
@@ -6700,7 +6465,6 @@
order: 40,
open: function(post) {
var node;
-
if (post.isDead || post.board.ID === 'q') {
return false;
}
@@ -6715,7 +6479,6 @@
},
"delete": function() {
var fileOnly, form, link, post;
-
post = DeleteLink.post;
if (DeleteLink.cooldown.counting === post) {
return;
@@ -6744,7 +6507,6 @@
},
load: function(link, post, fileOnly, html) {
var msg, s, tmpDoc;
-
tmpDoc = d.implementation.createHTMLDocument('');
tmpDoc.documentElement.innerHTML = html;
if (tmpDoc.title === '4chan - Banned') {
@@ -6767,7 +6529,6 @@
cooldown: {
start: function(post, node) {
var length, seconds, _ref;
-
if (!((_ref = QR.db) != null ? _ref.get({
boardID: post.board.ID,
threadID: post.thread.ID,
@@ -6801,7 +6562,6 @@
DownloadLink = {
init: function() {
var a;
-
if (g.VIEW === 'catalog' || !Conf['Menu'] || !Conf['Download Link']) {
return;
}
@@ -6815,7 +6575,6 @@
order: 100,
open: function(_arg) {
var file;
-
file = _arg.file;
if (!file) {
return false;
@@ -6841,7 +6600,6 @@
},
node: function() {
var button;
-
button = Menu.makeButton(this);
if (this.isClone) {
$.replace($('.menu-button', this.nodes.info), button);
@@ -6851,11 +6609,9 @@
},
makeButton: (function() {
var a;
-
a = null;
return function(post) {
var clone;
-
a || (a = $.el('a', {
className: 'menu-button fourchanx-link',
innerHTML: ' ',
@@ -6872,7 +6628,6 @@
})(),
toggle: function(e) {
var post;
-
post = this.dataset.clone ? Get.postFromNode(this) : g.posts[this.dataset.postid];
return Menu.menu.toggle(e, this, post);
}
@@ -6881,7 +6636,6 @@
ReportLink = {
init: function() {
var a;
-
if (g.VIEW === 'catalog' || !Conf['Menu'] || !Conf['Report Link']) {
return;
}
@@ -6903,7 +6657,6 @@
},
report: function() {
var id, post, set, url;
-
post = ReportLink.post;
url = "//sys.4chan.org/" + post.board + "/imgboard.php?mode=report&no=" + post;
id = Date.now();
@@ -6916,7 +6669,6 @@
init: function() {
return $.ready(function() {
var href;
-
Favicon.el = $('link[rel="shortcut icon"]', d.head);
Favicon.el.type = 'image/x-icon';
href = Favicon.el.href;
@@ -6989,7 +6741,6 @@
init: function() {
var sc,
_this = this;
-
if (g.VIEW !== 'thread' || !Conf['Thread Stats']) {
return;
}
@@ -7019,7 +6770,6 @@
},
node: function() {
var ID, fileCount, post, postCount, _ref;
-
postCount = 0;
fileCount = 0;
_ref = this.posts;
@@ -7037,7 +6787,6 @@
},
onUpdate: function(e) {
var fileCount, postCount, _ref;
-
if (e.detail[404]) {
return;
}
@@ -7046,7 +6795,6 @@
},
update: function(postCount, fileCount) {
var fileCountEl, postCountEl, thread;
-
thread = ThreadStats.thread, postCountEl = ThreadStats.postCountEl, fileCountEl = ThreadStats.fileCountEl;
postCountEl.textContent = postCount;
fileCountEl.textContent = fileCount;
@@ -7073,7 +6821,6 @@
},
onThreadsLoad: function() {
var page, pages, thread, _i, _j, _len, _len1, _ref;
-
if (!Conf["Page Count in Stats"]) {
return;
}
@@ -7101,7 +6848,6 @@
init: function() {
var checked, conf, el, input, name, sc, settings, subEntries, _ref,
_this = this;
-
if (g.VIEW !== 'thread' || !Conf['Thread Updater']) {
return;
}
@@ -7252,7 +6998,6 @@
},
interval: function() {
var val;
-
val = +this.value;
if (val < 1) {
val = 1;
@@ -7262,7 +7007,6 @@
},
load: function() {
var klass, req, text, _ref;
-
req = ThreadUpdater.req;
switch (req.status) {
case 200:
@@ -7306,7 +7050,6 @@
},
getInterval: function() {
var i, j;
-
i = ThreadUpdater.interval;
j = Math.min(ThreadUpdater.outdateCount, 10);
if (!d.hidden) {
@@ -7316,14 +7059,12 @@
},
intervalShortcut: function() {
var settings;
-
Settings.open('Advanced');
settings = $.id('fourchanx-settings');
return $('input[name=Interval]', settings).focus();
},
set: function(name, text, klass) {
var el, node;
-
el = ThreadUpdater[name];
if (node = el.firstChild) {
node.data = text;
@@ -7336,7 +7077,6 @@
},
timeout: function() {
var n;
-
ThreadUpdater.timeoutID = setTimeout(ThreadUpdater.timeout, 1000);
if (!(n = --ThreadUpdater.seconds)) {
return ThreadUpdater.update();
@@ -7349,7 +7089,6 @@
},
update: function() {
var url;
-
if (!ThreadUpdater.online) {
return;
}
@@ -7374,7 +7113,6 @@
},
updateThreadStatus: function(title, OP) {
var icon, message, root, titleLC;
-
titleLC = title.toLowerCase();
if (ThreadUpdater.thread["is" + title] === !!OP[titleLC]) {
return;
@@ -7401,7 +7139,6 @@
},
parse: function(postObjects) {
var ID, OP, count, deletedFiles, deletedPosts, files, index, key, node, num, post, postObject, posts, root, scroll, _i, _len, _ref;
-
OP = postObjects[0];
Build.spoilerRange[ThreadUpdater.thread.board] = OP.custom_spoiler;
ThreadUpdater.updateThreadStatus('Sticky', OP);
@@ -7487,7 +7224,6 @@
}
$.queueTask(function() {
var length, threadID;
-
threadID = ThreadUpdater.thread.ID;
length = $$('.thread > .postContainer', ThreadUpdater.root).length;
return Fourchan.parseThread(threadID, length - count, length);
@@ -7508,7 +7244,6 @@
ThreadWatcher = {
init: function() {
var sc;
-
if (!Conf['Thread Watcher']) {
return;
}
@@ -7542,7 +7277,6 @@
node: function() {
var favicon,
_this = this;
-
favicon = $.el('a', {
className: 'watch-thread-link',
href: 'javascript:;'
@@ -7562,7 +7296,6 @@
},
refresh: function(watched) {
var ID, board, div, favicon, id, link, nodes, props, thread, x, _ref, _ref1;
-
if (!watched) {
$.get('WatchedThreads', {}, function(item) {
return ThreadWatcher.refresh(item['WatchedThreads']);
@@ -7611,13 +7344,11 @@
},
x: function() {
var thread;
-
thread = this.nextElementSibling.pathname.split('/');
return ThreadWatcher.unwatch(thread[1], thread[3]);
},
post: function(e) {
var board, postID, threadID, _ref;
-
_ref = e.detail, board = _ref.board, postID = _ref.postID, threadID = _ref.threadID;
if (postID === threadID) {
if (Conf['Auto Watch']) {
@@ -7638,7 +7369,6 @@
unwatch: function(board, threadID) {
return $.get('WatchedThreads', {}, function(item) {
var watched;
-
watched = item['WatchedThreads'];
delete watched[board][threadID];
if (!Object.keys(watched[board]).length) {
@@ -7651,7 +7381,6 @@
watch: function(thread) {
return $.get('WatchedThreads', {}, function(item) {
var watched, _name;
-
watched = item['WatchedThreads'];
watched[_name = thread.board] || (watched[_name] = {});
watched[thread.board][thread] = {
@@ -7697,7 +7426,6 @@
},
ready: function() {
var ID, post, posts, _ref;
-
$.off(d, '4chanXInitFinished', Unread.ready);
posts = [];
_ref = Unread.thread.posts;
@@ -7714,7 +7442,6 @@
},
scroll: function() {
var checkPosition, hash, onload, post, posts, prevID, root;
-
if ((hash = location.hash.match(/\d+/)) && hash[0] in Unread.thread.posts) {
return;
}
@@ -7746,7 +7473,6 @@
}
checkPosition = function(target) {
var height, top, _ref;
-
_ref = target.getBoundingClientRect(), top = _ref.top, height = _ref.height;
return top + height - doc.clientHeight > 0;
};
@@ -7754,7 +7480,6 @@
},
sync: function() {
var lastReadPost;
-
lastReadPost = Unread.db.get({
boardID: Unread.thread.board.ID,
threadID: Unread.thread.ID,
@@ -7771,7 +7496,6 @@
},
addPosts: function(posts) {
var ID, data, post, _i, _len, _ref;
-
for (_i = 0, _len = posts.length; _i < _len; _i++) {
post = posts[_i];
ID = post.ID;
@@ -7799,7 +7523,6 @@
},
addPostQuotingYou: function(post) {
var quotelink, _i, _len, _ref;
-
if (!QR.db) {
return;
}
@@ -7820,7 +7543,6 @@
},
readSinglePost: function(post) {
var i;
-
if ((i = Unread.posts.indexOf(post)) === -1) {
return;
}
@@ -7836,7 +7558,6 @@
},
readArray: function(arr) {
var i, post, _i, _len;
-
for (i = _i = 0, _len = arr.length; _i < _len; i = ++_i) {
post = arr[i];
if (post.ID > Unread.lastReadPost) {
@@ -7847,7 +7568,6 @@
},
read: $.debounce(50, function(e) {
var ID, bottom, height, i, post, posts, read;
-
if (d.hidden || !Unread.posts.length) {
return;
}
@@ -7881,7 +7601,6 @@
}),
setLine: function(force) {
var post, root;
-
if (!(d.hidden || force === true)) {
return;
}
@@ -7896,7 +7615,6 @@
},
update: function() {
var count;
-
count = Unread.posts.length;
if (Conf['Unread Count']) {
d.title = "" + (Conf['Quoted Title'] && Unread.postsQuotingYou.length ? '(!) ' : '') + (count || !Conf['Hide Unread Count at (0)'] ? "(" + count + ") " : '') + (g.DEAD ? "/" + g.BOARD + "/ - 404" : "" + Unread.title);
@@ -7915,7 +7633,6 @@
file: {},
init: function() {
var archive, arr, boardID, data, id, name, type, _i, _len, _ref, _ref1, _ref2, _ref3;
-
_ref = Conf['selectedArchives'];
for (boardID in _ref) {
data = _ref[boardID];
@@ -8042,7 +7759,6 @@
},
to: function(dest, data) {
var archive;
-
archive = (dest === 'search' ? Redirect.thread : Redirect[dest])[data.boardID];
if (!archive) {
return '';
@@ -8051,7 +7767,6 @@
},
protocol: function(archive) {
var protocol;
-
protocol = location.protocol;
if (!archive[protocol.slice(0, -1)]) {
protocol = protocol === 'https:' ? 'http:' : 'https:';
@@ -8060,7 +7775,6 @@
},
thread: function(archive, _arg) {
var boardID, path, postID, threadID;
-
boardID = _arg.boardID, threadID = _arg.threadID, postID = _arg.postID;
path = threadID ? "" + boardID + "/thread/" + threadID : "" + boardID + "/post/" + postID;
if (archive.software === 'foolfuuka') {
@@ -8073,7 +7787,6 @@
},
post: function(archive, _arg) {
var boardID, postID, protocol;
-
boardID = _arg.boardID, postID = _arg.postID;
protocol = Redirect.protocol(archive);
if (['Foolz', 'NSFW Foolz'].contains(archive.name)) {
@@ -8083,13 +7796,11 @@
},
file: function(archive, _arg) {
var boardID, filename;
-
boardID = _arg.boardID, filename = _arg.filename;
return "" + (Redirect.protocol(archive)) + archive.domain + "/" + boardID + "/full_image/" + filename;
},
search: function(archive, _arg) {
var boardID, path, type, value;
-
boardID = _arg.boardID, type = _arg.type, value = _arg.value;
type = type === 'name' ? 'username' : type === 'MD5' ? 'image' : type;
value = encodeURIComponent(value);
@@ -8108,7 +7819,6 @@
},
setup: function() {
var btn, entry, psa;
-
$.off(d, '4chanXInitFinished', PSAHiding.setup);
if (!(psa = $.id('globalMessage'))) {
$.rmClass(doc, 'hide-announcement');
@@ -8137,7 +7847,6 @@
$.on(btn, 'click', PSAHiding.toggle);
$.get('hiddenPSA', 0, function(_arg) {
var hiddenPSA;
-
hiddenPSA = _arg.hiddenPSA;
PSAHiding.sync(hiddenPSA);
$.before(psa, btn);
@@ -8147,7 +7856,6 @@
},
toggle: function(e) {
var UTC;
-
if ($.hasClass(this, 'hide-announcement')) {
UTC = +$.id('globalMessage').dataset.utc;
$.set('hiddenPSA', UTC);
@@ -8159,7 +7867,6 @@
},
sync: function(UTC) {
var hr, psa;
-
psa = $.id('globalMessage');
psa.hidden = PSAHiding.btn.hidden = UTC && UTC >= +psa.dataset.utc ? true : false;
if ((hr = psa.nextElementSibling) && hr.nodeName === 'HR') {
@@ -8171,7 +7878,6 @@
CatalogLinks = {
init: function() {
var el, input;
-
if (!Conf['Catalog Links']) {
return;
}
@@ -8195,14 +7901,12 @@
},
toggle: function() {
var useCatalog;
-
$.event('CloseMenu');
$.set('Header catalog links', useCatalog = this.checked);
return CatalogLinks.set(useCatalog);
},
set: function(useCatalog) {
var a, board, path, _i, _len, _ref;
-
path = useCatalog ? 'catalog' : '';
_ref = $$("#board-list a[href*=\"boards.4chan.org\"]:not(.catalog),\n#boardNavDesktopFoot a[href*=\"boards.4chan.org\"]");
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
@@ -8236,7 +7940,6 @@
},
node: function(post) {
var str, uid;
-
if (!(uid = $('.hand', this.nodes.uniqueID))) {
return;
}
@@ -8248,7 +7951,6 @@
ids: {},
compute: function(str) {
var hash, rgb;
-
hash = this.hash(str);
rgb = [(hash >> 24) & 0xFF, (hash >> 16) & 0xFF, (hash >> 8) & 0xFF];
rgb[3] = ((rgb[0] * 0.299) + (rgb[1] * 0.587) + (rgb[2] * 0.114)) > 125;
@@ -8257,13 +7959,11 @@
},
apply: function() {
var rgb;
-
rgb = IDColor.ids[this] || IDColor.compute(this);
return ("background-color: rgb(" + rgb[0] + "," + rgb[1] + "," + rgb[2] + "); color: ") + (rgb[3] ? "black; border-radius: 3px; padding: 0px 2px;" : "white; border-radius: 3px; padding: 0px 2px;");
},
hash: function(str) {
var i, j, msg;
-
msg = 0;
i = 0;
j = str.length;
@@ -8302,7 +8002,6 @@
Emoji = {
init: function() {
var css, icon, name, pos, _ref;
-
if (!Conf['Emoji']) {
return;
}
@@ -8372,7 +8071,6 @@
},
node: function() {
var a;
-
if (a = $('.abbr > a:not([onclick])', this.nodes.comment)) {
return $.on(a, 'click', ExpandComment.cb);
}
@@ -8380,14 +8078,12 @@
callbacks: [],
cb: function(e) {
var post;
-
e.preventDefault();
post = Get.postFromNode(this);
return ExpandComment.expand(post);
},
expand: function(post) {
var a;
-
if (post.nodes.longComment && !post.nodes.longComment.parentNode) {
$.replace(post.nodes.shortComment, post.nodes.longComment);
post.nodes.comment = post.nodes.longComment;
@@ -8403,7 +8099,6 @@
},
contract: function(post) {
var a;
-
if (!post.nodes.shortComment) {
return;
}
@@ -8414,7 +8109,6 @@
},
parse: function(req, a, post) {
var callback, clone, comment, href, postObj, posts, quote, spoilerRange, status, _i, _j, _k, _len, _len1, _len2, _ref, _ref1;
-
status = req.status;
if (![200, 304].contains(status)) {
a.textContent = "Error " + req.statusText + " (" + status + ")";
@@ -8471,7 +8165,6 @@
},
node: function() {
var a, span;
-
if (!(span = $('.summary', this.OP.nodes.root.parentNode))) {
return;
}
@@ -8485,13 +8178,11 @@
},
cbToggle: function() {
var op;
-
op = Get.postFromRoot(this.previousElementSibling);
return ExpandThread.toggle(op.thread);
},
toggle: function(thread) {
var a, inlined, num, post, replies, reply, threadRoot, _i, _j, _k, _len, _len1, _len2, _ref, _ref1;
-
threadRoot = thread.OP.nodes.root.parentNode;
a = $('.summary', threadRoot);
switch (thread.isExpanded) {
@@ -8560,7 +8251,6 @@
},
parse: function(req, thread, a) {
var link, node, nodes, post, posts, replies, reply, spoilerRange, status, _i, _len;
-
if (a.textContent[0] === '+') {
return;
}
@@ -8618,7 +8308,6 @@
},
createFunc: function(format) {
var code;
-
code = format.replace(/%(.)/g, function(s, c) {
if (c in FileInfo.formatters) {
return "' + FileInfo.formatters." + c + ".call(post) + '";
@@ -8630,7 +8319,6 @@
},
convertUnit: function(size, unit) {
var i;
-
if (unit === 'B') {
return "" + (size.toFixed()) + " Bytes";
}
@@ -8661,7 +8349,6 @@
},
n: function() {
var fullname, shortname;
-
fullname = this.file.name;
shortname = Build.shortFilename(this.file.name, this.isReply);
if (fullname === shortname) {
@@ -8705,7 +8392,6 @@
Fourchan = {
init: function() {
var board;
-
if (g.VIEW === 'catalog') {
return;
}
@@ -8727,7 +8413,6 @@
},
code: function() {
var pre, _i, _len, _ref;
-
if (this.isClone) {
return;
}
@@ -8757,13 +8442,11 @@
Keybinds = {
init: function() {
var init;
-
if (g.VIEW === 'catalog' || !Conf['Keybinds']) {
return;
}
init = function() {
var node, _i, _len, _ref;
-
$.off(d, '4chanXInitFinished', init);
$.on(d, 'keydown', Keybinds.keydown);
_ref = $$('[accesskey]');
@@ -8776,7 +8459,6 @@
},
keydown: function(e) {
var form, key, notification, notifications, op, target, thread, threadRoot, _i, _len;
-
if (!(key = Keybinds.keyCode(e))) {
return;
}
@@ -8951,7 +8633,6 @@
},
keyCode: function(e) {
var kc, key;
-
key = (function() {
switch (kc = e.keyCode) {
case 8:
@@ -9007,7 +8688,6 @@
},
tags: function(tag, ta) {
var range, selEnd, selStart, value;
-
value = ta.value;
selStart = ta.selectionStart;
selEnd = ta.selectionEnd;
@@ -9018,13 +8698,11 @@
},
sage: function() {
var isSage;
-
isSage = /sage/i.test(QR.nodes.email.value);
return QR.nodes.email.value = isSage ? "" : "sage";
},
img: function(thread, all) {
var post;
-
if (all) {
return ImageExpand.cb.toggleAll();
} else {
@@ -9034,7 +8712,6 @@
},
open: function(thread, tab) {
var url;
-
if (g.VIEW !== 'index') {
return;
}
@@ -9047,7 +8724,6 @@
},
hl: function(delta, thread) {
var axe, headRect, next, postEl, rect, replies, reply, root, topMargin, _i, _len;
-
if (!delta) {
if (postEl = $('.reply.highlight', thread)) {
$.rmClass(postEl, 'highlight');
@@ -9107,7 +8783,6 @@
Nav = {
init: function() {
var append, next, prev, span;
-
switch (g.VIEW) {
case 'index':
if (!Conf['Index Navigation']) {
@@ -9158,7 +8833,6 @@
},
getThread: function(full) {
var headRect, i, rect, thread, threads, topMargin, _i, _len;
-
if (Conf['Bottom header'] || !Conf['Fixed Header']) {
topMargin = 0;
} else {
@@ -9184,7 +8858,6 @@
},
scroll: function(delta) {
var i, rect, thread, threads, top, topMargin, _ref, _ref1;
-
_ref = Nav.getThread(true), threads = _ref[0], thread = _ref[1], i = _ref[2], rect = _ref[3], topMargin = _ref[4];
top = rect.top - topMargin;
if (!((delta === -1 && Math.ceil(top) < 0) || (delta === +1 && top > 1))) {
@@ -9210,7 +8883,6 @@
},
node: function() {
var dateEl;
-
if (this.isClone) {
return;
}
@@ -9220,7 +8892,6 @@
},
relative: function(diff, now, date) {
var days, months, number, rounded, unit, years;
-
unit = (number = diff / $.DAY) >= 1 ? (years = now.getYear() - date.getYear(), months = now.getMonth() - date.getMonth(), days = now.getDate() - date.getDate(), years > 1 ? (number = years - (months < 0 || months === 0 && days < 0), 'year') : years === 1 && (months > 0 || months === 0 && days >= 0) ? (number = years, 'year') : (months = (months + 12) % 12) > 1 ? (number = months - (days < 0), 'month') : months === 1 && days >= 0 ? (number = months, 'month') : 'day') : (number = diff / $.HOUR) >= 1 ? 'hour' : (number = diff / $.MINUTE) >= 1 ? 'minute' : (number = Math.max(0, diff) / $.SECOND, 'second');
rounded = Math.round(number);
if (rounded !== 1) {
@@ -9231,7 +8902,6 @@
stale: [],
flush: function() {
var now, update, _i, _len, _ref;
-
if (d.hidden) {
return;
}
@@ -9247,16 +8917,13 @@
},
setUpdate: function(post) {
var markStale, setOwnTimeout, update;
-
setOwnTimeout = function(diff) {
var delay;
-
delay = diff < $.MINUTE ? $.SECOND - (diff + $.SECOND / 2) % $.SECOND : diff < $.HOUR ? $.MINUTE - (diff + $.MINUTE / 2) % $.MINUTE : diff < $.DAY ? $.HOUR - (diff + $.HOUR / 2) % $.HOUR : $.DAY - (diff + $.DAY / 2) % $.DAY;
return setTimeout(markStale, delay);
};
update = function(now) {
var date, diff, relative, singlePost, _i, _len, _ref;
-
date = post.info.date;
diff = now - date;
relative = RelativeDates.relative(diff, now, date);
@@ -9297,7 +8964,6 @@
},
node: function(post) {
var spoiler, spoilers, _i, _len;
-
spoilers = $$('s', this.nodes.comment);
for (_i = 0, _len = spoilers.length; _i < _len; _i++) {
spoiler = spoilers[_i];
@@ -9317,7 +8983,6 @@
},
ready: function() {
var field;
-
field = $.id('recaptcha_response_field');
$.on(field, 'keydown', function(e) {
if (e.keyCode === 8 && !field.value) {
@@ -9326,7 +8991,6 @@
});
return $.on($('form'), 'submit', function(e) {
var response;
-
e.preventDefault();
response = field.value.trim();
if (!/\s/.test(response)) {
@@ -9340,7 +9004,6 @@
Sauce = {
init: function() {
var err, link, links, _i, _len, _ref;
-
if (g.VIEW === 'catalog' || !Conf['Sauce']) {
return;
}
@@ -9372,7 +9035,6 @@
},
createSauceLink: function(link) {
var m, text;
-
link = link.replace(/%(T?URL|MD5|board)/ig, function(parameter) {
switch (parameter) {
case '%TURL':
@@ -9393,7 +9055,6 @@
},
node: function() {
var link, nodes, _i, _len, _ref;
-
if (this.isClone || !this.file) {
return;
}
@@ -9426,7 +9087,6 @@
},
createFunc: function(format) {
var code;
-
code = format.replace(/%([A-Za-z])/g, function(s, c) {
if (c in Time.formatters) {
return "' + Time.formatters." + c + ".call(date) + '";
@@ -9511,7 +9171,6 @@
Settings = {
init: function() {
var link, settings;
-
link = $.el('a', {
className: 'settings-link',
textContent: 'Settings',
@@ -9521,7 +9180,6 @@
Header.addShortcut(link);
$.get('previousversion', null, function(item) {
var changelog, el, previous;
-
if (previous = item['previousversion']) {
if (previous === g.VERSION) {
return;
@@ -9559,7 +9217,6 @@
},
open: function(openSection) {
var dialog, html, link, links, overlay, section, sectionToOpen, _i, _len, _ref;
-
$.off(d, '4chanXInitFinished', Settings.open);
if (Settings.dialog) {
return;
@@ -9612,7 +9269,6 @@
sections: [],
addSection: function(title, open) {
var hyphenatedTitle, _ref;
-
if (typeof title !== 'string') {
_ref = title.detail, title = _ref.title, open = _ref.open;
}
@@ -9625,7 +9281,6 @@
},
openSection: function() {
var section, selected;
-
if (selected = $('.tab-selected', Settings.dialog)) {
$.rmClass(selected, 'tab-selected');
}
@@ -9639,7 +9294,6 @@
},
main: function(section) {
var arr, button, description, div, fs, hiddenNum, input, inputs, items, key, obj, _ref;
-
items = {};
inputs = {};
_ref = Config.main;
@@ -9664,7 +9318,6 @@
}
$.get(items, function(items) {
var val;
-
for (key in items) {
val = items[key];
inputs[key].checked = val;
@@ -9679,7 +9332,6 @@
boards: {}
}, function(item) {
var ID, board, thread, _ref1;
-
_ref1 = item.hiddenThreads.boards;
for (ID in _ref1) {
board = _ref1[ID];
@@ -9694,7 +9346,6 @@
boards: {}
}, function(item) {
var ID, board, post, thread, _ref1;
-
_ref1 = item.hiddenPosts.boards;
for (ID in _ref1) {
board = _ref1[ID];
@@ -9714,7 +9365,6 @@
boards: {}
}, function(item) {
var boardID;
-
for (boardID in item.hiddenThreads.boards) {
localStorage.removeItem("4chan-hide-t-" + boardID);
}
@@ -9725,7 +9375,6 @@
},
"export": function(now, data) {
var a, db, _i, _len;
-
if (typeof now !== 'number') {
now = Date.now();
data = {
@@ -9760,7 +9409,6 @@
},
onImport: function() {
var file, output, reader;
-
if (!(file = this.files[0])) {
return;
}
@@ -9772,7 +9420,6 @@
reader = new FileReader();
reader.onload = function(e) {
var data, err;
-
try {
data = JSON.parse(e.target.result);
Settings.loadSettings(data);
@@ -9789,7 +9436,6 @@
},
loadSettings: function(data) {
var key, val, version, _ref;
-
version = data.version.split('.');
if (version[0] === '2') {
data = Settings.convertSettings(data, {
@@ -9879,7 +9525,6 @@
},
convertSettings: function(data, map) {
var newKey, prevKey;
-
for (prevKey in map) {
newKey = map[prevKey];
if (newKey) {
@@ -9891,7 +9536,6 @@
},
filter: function(section) {
var select;
-
section.innerHTML = "Guide Name Unique ID Tripcode Capcode E-mail Subject Comment Flag Filename Image dimensions Filesize Image MD5
";
select = $('select', section);
$.on(select, 'change', Settings.selectFilter);
@@ -9899,7 +9543,6 @@
},
selectFilter: function() {
var div, name, ta;
-
div = this.nextElementSibling;
if ((name = this.value) !== 'guide') {
$.rmAll(div);
@@ -9919,7 +9562,6 @@
},
sauce: function(section) {
var ta;
-
section.innerHTML = " Sauce is disabled.
Lines starting with a # will be ignored.
You can specify a display text by appending ;text:[text] to the URL.
These parameters will be replaced by their corresponding values:\n%TURL: Thumbnail URL.%URL: Full image URL.%MD5: MD5 hash.%board: Current board. ";
ta = $('textarea', section);
$.get('sauces', Conf['sauces'], function(item) {
@@ -9929,7 +9571,6 @@
},
advanced: function(section) {
var archive, boardID, boardOptions, boardSelect, boards, data, event, input, inputs, item, items, name, row, rows, ta, table, _i, _j, _k, _l, _len, _len1, _len2, _len3, _ref, _ref1, _ref2, _ref3, _ref4;
-
section.innerHTML = " Archiver 404 Redirect is disabled.
Thread redirection Post fetching File redirection
Disabled selections indicate that only one archive is available for that board and redirection type. Custom Board Navigation
New lines will be converted into spaces. In the following examples for /g/, g can be changed to a different board ID (a, b, etc...), the current board (current), or the Status/Twitter link (status, @).
Board link: g
Title link: g-title
Board link (Replace with title when on that board): g-replace
Full text link: g-full
Custom text link: g-text:\"Install Gentoo\"
Index-only link: g-index
Catalog-only link: g-catalog
External link: external-text:\"Google\",\"http://www.google.com\"
Combinations are possible: g-index-text:\"Technology Index\"
Full board list toggle: toggle-all
[ toggle-all ] [current-title] [g-title / a-title / jp-title] [x / wsg / h] [t-text:\"Piracy\"] \n will give you[ + ] [Technology] [Technology / Anime & Manga / Otaku Culture] [x / wsg / h] [Piracy] \n if you are on /g/.\n
Time Formatting is disabled. :
Day: %a, %A, %d, %e
Month: %m, %b, %B
Year: %y, %Y
Hour: %k, %H, %l, %I, %p, %P
Minute: %M
Second: %S
Quote Backlinks formatting is disabled. :
File Info Formatting is disabled. :
Link: %l (truncated), %L (untruncated), %T (Unix timestamp)
Original file name: %n (truncated), %N (untruncated), %t (Unix timestamp)
Spoiler indicator: %p
Size: %B (Bytes), %K (KB), %M (MB), %s (4chan default)
Resolution: %r (Displays 'PDF' for PDF files)
Quick Reply Personas is disabled. \n One item per line. \n Items will be added in the relevant input's auto-completion list. \n Password items will always be used, since there is no password input. \n Lines starting with a # will be ignored.\n
You can use these settings with each item, separate them with semicolons:\n Possible items are: name, email, subject and password. Wrap values of items with quotes, like this: email:\"sage\". Force values as defaults with the always keyword, for example: email:\"sage\";always. Select specific boards for an item, separated with commas, for example: email:\"sage\";boards:jp;always. Unread Favicon is disabled. ferongr xat- Mayhem Original Emoji is disabled. \n Sage Icon: 4chan SS appchan
\n Position: Before After
Thread Updater is disabled. \n Interval:
Custom CSSApply CSS ";
items = {};
inputs = {};
@@ -9949,7 +9590,6 @@
$.on(ta, 'change', $.cb.value);
$.get(items, function(items) {
var key, val;
-
for (key in items) {
val = items[key];
if (['emojiPos'].contains(key)) {
@@ -10020,7 +9660,6 @@
});
$.get('selectedArchives', Conf['selectedArchives'], function(_arg) {
var option, selectedArchives, type;
-
selectedArchives = _arg.selectedArchives;
for (boardID in selectedArchives) {
data = selectedArchives[boardID];
@@ -10035,7 +9674,6 @@
},
addArchiveCell: function(boardID, data, type) {
var archive, i, length, options, select, td;
-
length = data[type].length;
td = $.el('td', {
className: 'archive-cell'
@@ -10065,10 +9703,8 @@
},
saveSelectedArchive: function() {
var _this = this;
-
return $.get('selectedArchives', Conf['selectedArchives'], function(_arg) {
var selectedArchives, _name;
-
selectedArchives = _arg.selectedArchives;
(selectedArchives[_name = _this.dataset.boardid] || (selectedArchives[_name] = {}))[_this.dataset.type] = _this.value;
return $.set('selectedArchives', selectedArchives);
@@ -10079,7 +9715,6 @@
},
time: function() {
var funk;
-
funk = Time.createFunc(this.value);
return this.nextElementSibling.textContent = funk(Time, new Date());
},
@@ -10088,7 +9723,6 @@
},
fileInfo: function() {
var data, funk;
-
data = {
isReply: true,
file: {
@@ -10127,7 +9761,6 @@
},
keybinds: function(section) {
var arr, input, inputs, items, key, tbody, tr, _ref;
-
section.innerHTML = "Keybinds are disabled.
Allowed keys: a-z , 0-9 , Ctrl , Shift , Alt , Meta , Enter , Esc , Up , Down , Right , Left .
Press Backspace to disable a keybind.
";
tbody = $('tbody', section);
items = {};
@@ -10148,7 +9781,6 @@
}
return $.get(items, function(items) {
var val;
-
for (key in items) {
val = items[key];
inputs[key].value = val;
@@ -10157,7 +9789,6 @@
},
keybind: function(e) {
var key;
-
if (e.keyCode === 9) {
return;
}
@@ -10174,10 +9805,8 @@
Main = {
init: function(items) {
var db, flatten, _i, _len;
-
flatten = function(parent, obj) {
var key, val;
-
if (obj instanceof Array) {
Conf[parent] = obj[0];
} else if (typeof obj === 'object') {
@@ -10201,13 +9830,11 @@
$.on(d, '4chanMainInit', Main.initStyle);
return $.asap((function() {
var _ref;
-
return d.head && $('link[rel="shortcut icon"]', d.head) || ((_ref = d.readyState) === 'interactive' || _ref === 'complete');
}), Main.initStyle);
},
initFeatures: function(items) {
var init, pathname, _ref;
-
Conf = items;
pathname = location.pathname.split('/');
g.BOARD = new Board(pathname[1]);
@@ -10236,7 +9863,6 @@
case 'images.4chan.org':
$.ready(function() {
var URL;
-
if (Conf['404 Redirect'] && d.title === '4chan - 404 Not Found') {
Redirect.init();
pathname = location.pathname.split('/');
@@ -10253,7 +9879,6 @@
}
init = function(features) {
var err, module, name;
-
for (name in features) {
module = features[name];
try {
@@ -10329,7 +9954,6 @@
},
initStyle: function() {
var mainStyleSheet, observer, setStyle, style, styleSheets, _ref;
-
$.off(d, '4chanMainInit', Main.initStyle);
if (!Main.isThisPageLegit() || $.hasClass(doc, 'fourchan-x')) {
return;
@@ -10350,7 +9974,6 @@
styleSheets = $$('link[rel="alternate stylesheet"]', d.head);
setStyle = function() {
var styleSheet, _i, _len;
-
$.rmClass(doc, style);
for (_i = 0, _len = styleSheets.length; _i < _len; _i++) {
styleSheet = styleSheets[_i];
@@ -10377,7 +10000,6 @@
},
initReady: function() {
var board, boardChild, err, errors, href, passLink, posts, styleSelector, thread, threadChild, threads, _i, _j, _len, _len1, _ref, _ref1;
-
if (d.title === '4chan - 404 Not Found') {
if (Conf['404 Redirect'] && g.VIEW === 'thread') {
href = Redirect.to('thread', {
@@ -10454,7 +10076,6 @@
},
callbackNodes: function(klass, nodes) {
var callback, err, errors, i, len, node, _i, _len, _ref;
-
len = nodes.length;
_ref = klass.prototype.callbacks;
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
@@ -10482,11 +10103,9 @@
},
callbackNodesDB: function(klass, nodes, cb) {
var errors, func, i, len, node, queue, softTask;
-
queue = [];
softTask = function() {
var args, func, task;
-
task = queue.shift();
func = task[0];
args = Array.prototype.slice.call(task, 1);
@@ -10505,7 +10124,6 @@
errors = null;
func = function(node, i) {
var callback, err, _i, _len, _ref;
-
_ref = klass.prototype.callbacks;
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
callback = _ref[_i];
@@ -10539,7 +10157,6 @@
},
addCallback: function(e) {
var Klass, obj;
-
obj = e.detail;
if (typeof obj.callback.name !== 'string') {
throw new Error("Invalid callback name: " + obj.callback.name);
@@ -10559,7 +10176,6 @@
},
message: function(e) {
var el, version;
-
version = e.data.version;
if (version && version !== g.VERSION) {
el = $.el('span', {
@@ -10570,14 +10186,12 @@
},
checkUpdate: function() {
var now;
-
if (!(Conf['Check for Updates'] && Main.isThisPageLegit())) {
return;
}
now = Date.now();
return $.get('lastchecked', 0, function(_arg) {
var lastchecked;
-
lastchecked = _arg.lastchecked;
if (lastchecked > now - $.DAY) {
return;
@@ -10593,7 +10207,6 @@
},
handleErrors: function(errors) {
var div, error, logs, _i, _len;
-
if (!(errors instanceof Array)) {
error = errors;
} else if (errors.length === 1) {
@@ -10608,7 +10221,6 @@
});
$.on(div.lastElementChild, 'click', function() {
var _ref;
-
return _ref = this.textContent === 'show' ? ['hide', false] : ['show', true], this.textContent = _ref[0], logs.hidden = _ref[1], _ref;
});
logs = $.el('div', {
@@ -10622,7 +10234,6 @@
},
parseError: function(data) {
var error, message;
-
Main.logError(data);
message = $.el('div', {
textContent: data.message
@@ -10639,7 +10250,6 @@
},
isThisPageLegit: function() {
var _ref;
-
if (!('thisPageIsLegit' in Main)) {
Main.thisPageIsLegit = location.hostname === 'boards.4chan.org' && !$('link[href*="favicon-status.ico"]', d.head) && ((_ref = d.title) !== '4chan - Temporarily Offline' && _ref !== '4chan - Error');
}
diff --git a/builds/4chan-X.meta.js b/builds/4chan-X.meta.js
old mode 100644
new mode 100755
index 6729e9eac..9f7b6b329
--- a/builds/4chan-X.meta.js
+++ b/builds/4chan-X.meta.js
@@ -1,6 +1,6 @@
// ==UserScript==
// @name 4chan X
-// @version 1.2.25
+// @version 1.2.27
// @namespace 4chan-X
// @description Cross-browser userscript for maximum lurking on 4chan.
// @license MIT; https://github.com/seaweedchan/4chan-x/blob/master/LICENSE
diff --git a/builds/4chan-X.user.js b/builds/4chan-X.user.js
index 54f04af0f..6dd8f0796 100644
--- a/builds/4chan-X.user.js
+++ b/builds/4chan-X.user.js
@@ -1,7 +1,7 @@
// Generated by CoffeeScript
// ==UserScript==
// @name 4chan X
-// @version 1.2.25
+// @version 1.2.27
// @namespace 4chan-X
// @description Cross-browser userscript for maximum lurking on 4chan.
// @license MIT; https://github.com/seaweedchan/4chan-x/blob/master/LICENSE
@@ -19,7 +19,7 @@
// @icon data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwAgMAAAAqbBEUAAAACVBMVEUAAGcAAABmzDNZt9VtAAAAAXRSTlMAQObYZgAAAHFJREFUKFOt0LENACEIBdBv4Qju4wgWanEj3D6OcIVMKaitYHEU/jwTCQj8W75kiVCSBvdQ5/AvfVHBin11BgdRq3ysBgfwBDRrj3MCIA+oAQaku/Q1cNctrAmyDl577tOThYt/Y1RBM4DgOHzM0HFTAyLukH/cmRnqAAAAAElFTkSuQmCC
// ==/UserScript==
/*
-* 4chan X - Version 1.2.25 - 2013-08-14
+* 4chan X - Version 1.2.27 - 2013-08-14
*
* Licensed under the MIT license.
* https://github.com/seaweedchan/4chan-x/blob/master/LICENSE
@@ -326,7 +326,7 @@
doc = d.documentElement;
g = {
- VERSION: '1.2.25',
+ VERSION: '1.2.27',
NAMESPACE: '4chan X.',
boards: {},
threads: {},
@@ -1591,7 +1591,7 @@
}
boardList = $.el('span', {
id: 'board-list',
- innerHTML: " - " + fourchannav.innerHTML + " "
+ innerHTML: " - " + fourchannav.innerHTML + " "
});
fullBoardList = $('#full-board-list', boardList);
btn = $('.hide-board-list-button', fullBoardList);
@@ -1802,7 +1802,7 @@
var shortcut;
shortcut = $.el('span', {
- className: 'shortcut fourchanx-link'
+ className: 'shortcut brackets-wrap'
});
$.add(shortcut, el);
return $.prepend(Header.shortcuts, shortcut);
@@ -1958,7 +1958,7 @@
container = $.el('div', {
id: "pc" + postID,
className: "postContainer " + (isOP ? 'op' : 'reply') + "Container",
- innerHTML: "" + (isOP ? '' : ">>
") + "" + (name || '') + " " + (tripcode + capcodeStart + capcode + userID + flag + sticky + closed) + " " + subject + "" + date + "No. " + postID + " " + (isOP ? fileHTML : '') + "
" + subject + "
" + emailStart + "" + (name || '') + " " + (tripcode + capcodeStart + emailEnd + capcode + userID + flag + sticky + closed) + " " + " " + "
" + date + " " + " " + "
No. " + postID + " " + (isOP ? '' : fileHTML) + "
" + (comment || '') + " " + " " + "
"
+ innerHTML: "" + (isOP ? '' : ">>
") + "" + (name || '') + " " + (tripcode + capcodeStart + capcode + userID + flag + sticky + closed) + " " + subject + "" + date + "No. " + postID + " " + (isOP ? fileHTML : '') + "
" + subject + "
" + emailStart + "" + (name || '') + " " + (tripcode + capcodeStart + emailEnd + capcode + userID + flag + sticky + closed) + " " + " " + "
" + date + " " + " " + "
No. " + postID + " " + (isOP ? '' : fileHTML) + "
" + (comment || '') + " " + " " + "
"
});
_ref = $$('.quotelink', container);
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
@@ -3258,7 +3258,7 @@
a = $.el('a', {
className: "" + type + "-reply-button",
- innerHTML: " " + (type === 'hide' ? '-' : '+') + " ",
+ innerHTML: " " + (type === 'hide' ? '-' : '+') + " ",
href: 'javascript:;'
});
$.on(a, 'click', PostHiding.toggle);
@@ -3612,7 +3612,7 @@
a = $.el('a', {
className: "" + type + "-thread-button",
- innerHTML: " " + (type === 'hide' ? '-' : '+') + " ",
+ innerHTML: " " + (type === 'hide' ? '-' : '+') + " ",
href: 'javascript:;'
});
a.dataset.fullID = thread.fullID;
@@ -6187,7 +6187,7 @@
QR.cooldown.auto = false;
QR.status();
return QR.error($.el('span', {
- innerHTML: "4chan X encountered an error while posting. Please try again.\n[? ]"
+ innerHTML: "4chan X encountered an error while posting. \n[Banned? ] [More info ]"
}));
}
};
@@ -7765,7 +7765,7 @@
className: 'disabled'
});
this.db = new DataBoard('watchedThreads', this.refresh, true);
- this.dialog = UI.dialog('thread-watcher', 'top: 50px; left: 0px;', "
");
+ this.dialog = UI.dialog('thread-watcher', 'top: 50px; left: 0px;', "
");
this.status = $('#watcher-status', this.dialog);
this.list = this.dialog.lastElementChild;
$.on(d, 'QRPostSuccessful', this.cb.post);
@@ -7815,7 +7815,7 @@
var toggler;
toggler = $.el('img', {
- className: 'watcher-toggler'
+ className: 'watch-thread-link'
});
$.on(toggler, 'click', ThreadWatcher.cb.toggle);
return $.before($('input', this.OP.nodes.post), toggler);
@@ -8047,7 +8047,7 @@
_ref2 = g.BOARD.threads;
for (threadID in _ref2) {
thread = _ref2[threadID];
- toggler = $('.watcher-toggler', thread.OP.nodes.post);
+ toggler = $('.watch-thread-link', thread.OP.nodes.post);
watched = ThreadWatcher.db.get({
boardID: thread.board.ID,
threadID: threadID
@@ -8747,7 +8747,7 @@
$.event('AddMenuEntry', entry);
$.on(entry.el, 'click', PSAHiding.toggle);
PSAHiding.btn = btn = $.el('a', {
- innerHTML: ' - ',
+ innerHTML: ' - ',
title: 'Hide announcement.',
className: 'hide-announcement',
href: 'javascript:;'
@@ -9969,7 +9969,7 @@
Report = {
init: function() {
- if (!(/report/.test(location.search) && !d.cookie.contains('pass_enabled=1'))) {
+ if (!/report/.test(location.search)) {
return;
}
return $.asap((function() {
@@ -10129,7 +10129,6 @@
}
return $.set({
archives: Conf['archives'],
- lastarchivecheck: now,
previousversion: g.VERSION
});
});
@@ -10764,26 +10763,8 @@
Main = {
init: function() {
- var db, flatten, pathname, _i, _len, _ref;
+ var db, flatten, _i, _len;
- pathname = location.pathname.split('/');
- g.BOARD = new Board(pathname[1]);
- if ((_ref = g.BOARD.ID) === 'z' || _ref === 'fk') {
- return;
- }
- g.VIEW = (function() {
- switch (pathname[2]) {
- case 'res':
- return 'thread';
- case 'catalog':
- return 'catalog';
- default:
- return 'index';
- }
- })();
- if (g.VIEW === 'thread') {
- g.THREADID = +pathname[3];
- }
flatten = function(parent, obj) {
var key, val;
@@ -10817,7 +10798,6 @@
}), Main.initStyle);
},
initFeatures: function() {
- Conf;
var init, pathname, _ref;
pathname = location.pathname.split('/');
@@ -11209,7 +11189,7 @@
}
return Main.thisPageIsLegit;
},
- css: "/* General */\n.dialog {\nbox-shadow: 0 1px 2px rgba(0, 0, 0, .15);\nborder: 1px solid;\ndisplay: block;\npadding: 0;\n}\n.captcha-img,\n.field {\nbackground-color: #FFF;\nborder: 1px solid #CCC;\n-moz-box-sizing: border-box;\nbox-sizing: border-box;\ncolor: #333;\nfont: 13px sans-serif;\noutline: none;\ntransition: color .25s, border-color .25s;\ntransition: color .25s, border-color .25s;\n}\n.field::-moz-placeholder,\n.field:hover::-moz-placeholder {\ncolor: #AAA !important;\nfont-size: 13px !important;\nopacity: 1.0 !important;\n}\n.captch-img:hover,\n.field:hover {\nborder-color: #999;\n}\n.field:hover, .field:focus {\ncolor: #000;\n}\n.field[disabled] {\nbackground-color: #F2F2F2;\ncolor: #888;\n}\n.move {\ncursor: move;\noverflow: hidden;\n}\nlabel,\n.watcher-toggler {\ncursor: pointer;\n}\na[href=\"javascript:;\"] {\ntext-decoration: none;\n}\n.warning {\ncolor: red;\n}\n#boardNavDesktop {\ndisplay: none !important;\n}\na {\noutline: none !important;\n}\n\n/* 4chan style fixes */\n.opContainer, .op {\ndisplay: block !important;\noverflow: visible !important;\n}\n[hidden] {\ndisplay: none !important;\n}\n\n/* fixed, z-index */\n#overlay,\n#fourchanx-settings,\n#qp, #ihover,\n#navlinks, .fixed #header-bar,\n:root.float #updater,\n:root.float #thread-stats,\n#qr {\nposition: fixed;\n}\n#fourchanx-settings {\nz-index: 999;\n}\n#overlay {\nz-index: 900;\n}\n#notifications {\nz-index: 70;\n}\n#qp, #ihover {\nz-index: 60;\n}\n#menu {\nz-index: 50;\n}\n#navlinks, #updater, #thread-stats {\nz-index: 40;\n}\n.fixed #header-bar.autohide {\nz-index: 35;\n}\n#qr {\nz-index: 30;\n}\n#thread-watcher {\nz-index: 8;\n}\n:root.fixed-watcher #thread-watcher {\nz-index: 20;\n}\n.fixed #header-bar {\nz-index: 10;\n}\n/* Header */\n.fixed.top body {\npadding-top: 2em;\n}\n.fixed.bottom body {\npadding-bottom: 2em;\n}\n.fixed #header-bar {\nright: 0;\nleft: 0;\npadding: 3px 4px 4px;\n}\n.fixed.top #header-bar {\ntop: 0;\n}\n.fixed.bottom #header-bar {\nbottom: 0;\n}\n#header-bar {\nborder-width: 0;\ntransition: all .1s .05s ease-in-out;\n}\n:root.centered-links #shortcuts {\nwidth: 300px;\ntext-align: right;\n}\n:root.centered-links #header-bar {\ntext-align: center;\n}\n:root.centered-links #custom-board-list {\nposition: relative;\nleft: 150px;\n}\n.fixed.top #header-bar {\nborder-bottom-width: 1px;\n}\n.fixed.bottom #header-bar {\nbox-shadow: 0 -1px 2px rgba(0, 0, 0, .15);\nborder-top-width: 1px;\n}\n.fixed.bottom #header-bar .menu-button i {\nborder-top: none;\nborder-bottom: 6px solid;\n}\n#board-list {\ntext-align: center;\n}\n.fixed #header-bar.autohide:not(:hover) {\nbox-shadow: none;\ntransition: all .8s .6s cubic-bezier(.55, .055, .675, .19);\n}\n.fixed.top #header-bar.autohide:not(:hover) {\nmargin-bottom: -1em;\n-webkit-transform: translateY(-100%);\ntransform: translateY(-100%);\n}\n.fixed.bottom #header-bar.autohide:not(:hover) {\n-webkit-transform: translateY(100%);\ntransform: translateY(100%);\n}\n#scroll-marker {\nleft: 0;\nright: 0;\nheight: 10px;\nposition: absolute;\n}\n:root:not(.autohide) #scroll-marker {\npointer-events: none;\n}\n#header-bar #scroll-marker {\ndisplay: none;\n}\n.fixed #header-bar #scroll-marker {\ndisplay: block;\n}\n.fixed.top #header-bar #scroll-marker {\ntop: 100%;\n}\n.fixed.bottom #header-bar #scroll-marker {\nbottom: 100%;\n}\n#header-bar a:not(.entry):not(.close) {\ntext-decoration: none;\npadding: 1px;\n}\n#header-bar input {\nmargin: 0;\nvertical-align: bottom;\n}\n#shortcuts:empty {\ndisplay: none;\n}\n.brackets-wrap::before {\ncontent: \"\\00a0[\";\n}\n.brackets-wrap::after {\ncontent: \"]\\00a0\";\n}\n.dead-thread,\n.disabled,\n.expand-all-shortcut {\nopacity: .45;\n}\n#shortcuts {\nfloat: right;\n}\n.shortcut {\nmargin-left: 3px;\n}\n#navbotright,\n#navtopright {\ndisplay: none;\n}\n#toggleMsgBtn {\ndisplay: none !important;\n}\n.current {\nfont-weight: bold;\n}\n/* 4chan X link brackets */\n.fourchanx-link::after {\ncontent: \"]\";\n}\n.fourchanx-link::before {\ncontent: \"[\";\n}\n/* Notifications */\n#notifications {\nposition: fixed;\ntop: 0;\nheight: 0;\ntext-align: center;\nright: 0;\nleft: 0;\ntransition: all .8s .6s cubic-bezier(.55, .055, .675, .19);\n}\n.fixed.top #header-bar #notifications {\nposition: absolute;\ntop: 100%;\n}\n.notification {\ncolor: #FFF;\nfont-weight: 700;\ntext-shadow: 0 1px 2px rgba(0, 0, 0, .5);\nbox-shadow: 0 1px 2px rgba(0, 0, 0, .15);\nborder-radius: 2px;\nmargin: 1px auto;\nwidth: 500px;\nmax-width: 100%;\nposition: relative;\ntransition: all .25s ease-in-out;\n}\n.notification.error {\nbackground-color: hsla(0, 100%, 38%, .9);\n}\n.notification.warning {\nbackground-color: hsla(36, 100%, 38%, .9);\n}\n.notification.info {\nbackground-color: hsla(200, 100%, 38%, .9);\n}\n.notification.success {\nbackground-color: hsla(104, 100%, 38%, .9);\n}\n.notification a {\ncolor: white;\n}\n.notification > .close {\npadding: 6px;\ntop: 0;\nright: 5px;\nposition: absolute;\n}\n.message {\n-moz-box-sizing: border-box;\nbox-sizing: border-box;\npadding: 6px 20px;\nmax-height: 200px;\nwidth: 100%;\noverflow: auto;\n}\n\n/* Settings */\n:root.fourchan-x body {\n-moz-box-sizing: border-box;\nbox-sizing: border-box;\n}\n#overlay {\nbackground-color: rgba(0, 0, 0, .5);\ntop: 0;\nleft: 0;\nheight: 100%;\nwidth: 100%;\n}\n#fourchanx-settings {\n-moz-box-sizing: border-box;\nbox-sizing: border-box;\nbox-shadow: 0 0 15px rgba(0, 0, 0, .15);\nheight: 600px;\nmax-height: 100%;\nwidth: 900px;\nmax-width: 100%;\nmargin: auto;\npadding: 3px;\ntop: 50%;\nleft: 50%;\n-moz-transform: translate(-50%, -50%);\n-webkit-transform: translate(-50%, -50%);\ntransform: translate(-50%, -50%);\n}\n#fourchanx-settings > nav {\npadding: 2px 2px 0;\nheight: 15px;\n}\n#fourchanx-settings > nav a {\ntext-decoration: underline;\n}\n#fourchanx-settings > nav a.close {\ntext-decoration: none;\npadding: 2px;\n}\n.section-container {\noverflow: auto;\nposition: absolute;\ntop: 2.1em;\nright: 5px;\nbottom: 5px;\nleft: 5px;\npadding-right: 5px;\n}\n.sections-list {\npadding: 0 3px;\nfloat: left;\n}\n.credits {\nfloat: right;\n}\n.tab-selected {\nfont-weight: 700;\n}\n.section-sauce ul,\n.section-advanced ul {\nlist-style: none;\nmargin: 0;\n}\n.section-sauce ul {\npadding: 8px;\n}\n.section-advanced ul {\npadding: 0px;\n}\n.section-sauce li,\n.section-advanced li {\npadding-left: 4px;\n}\n.section-main label {\ntext-decoration: underline;\n}\n.section-filter ul {\npadding: 0;\n}\n.section-filter li {\nmargin: 10px 40px;\n}\n.section-filter textarea {\nheight: 500px;\n}\n.section-sauce textarea {\nheight: 350px;\n}\n.section-advanced .field[name=\"boardnav\"] {\nwidth: 100%;\n}\n.section-advanced textarea {\nheight: 150px;\n}\n.section-advanced .archive-cell {\nmin-width: 160px;\ntext-align: center;\n}\n.section-advanced #archive-board-select {\nposition: absolute;\n}\n.section-advanced .note {\nfont-size: 0.8em;\nfont-style: italic;\nmargin-left: 10px;\n}\n.section-advanced .note code {\nfont-style: normal;\nfont-size: 11px;\n}\n.section-keybinds .field {\nfont-family: monospace;\n} \n#fourchanx-settings fieldset {\nborder: 1px solid;\nborder-radius: 3px;\n}\n#fourchanx-settings legend {\nfont-weight: 700;\n}\n#fourchanx-settings textarea {\nfont-family: monospace;\nmin-width: 100%;\nmax-width: 100%;\n}\n#fourchanx-settings code {\ncolor: #000;\nbackground-color: #FFF;\npadding: 0 2px;\n}\n.unscroll {\noverflow: hidden;\n}\n\n/* Announcement Hiding */\n:root.hide-announcement #globalMessage {\ndisplay: none;\n}\na.hide-announcement {\nfloat: left;\n}\n\n/* Unread */\n#unread-line {\nmargin: 0;\nborder-color: rgb(255,0,0);\n}\n\n/* Thread Updater */\n#updater {\nbackground: none;\nborder: none;\nbox-shadow: none;\n}\n#updater > .move {\npadding: 5px 3px 0px;\nmargin-bottom: -3px;\n}\n#updater > div:last-child {\ntext-align: center;\n}\n#updater input[type=number] {\nwidth: 4em;\n}\n:root.float #updater {\npadding: 0px 3px;\n}\n.new {\ncolor: limegreen;\n}\n#update-status.new {\nmargin-right: 5px;\n}\n#update-timer {\ncursor: pointer;\n}\n\n/* Thread Watcher */\n#thread-watcher {\nposition: absolute;\n}\n#thread-watcher {\npadding-bottom: 3px;\noverflow: hidden;\nwhite-space: nowrap;\nmin-width: 120px;\nmax-height: 92%;\noverflow-y: auto;\n}\n:root.fixed-watcher #thread-watcher {\nposition: fixed;\n}\n:root:not(.fixed-watcher) #thread-watcher:not(:hover) {\nmax-height: 210px;\noverflow-y: hidden;\n}\n#thread-watcher > .move {\npadding-top: 3px;\n}\n#thread-watcher > div {\nmax-width: 250px;\noverflow: hidden;\npadding-left: 3px;\npadding-right: 3px;\ntext-overflow: ellipsis;\n}\n#thread-watcher a {\ntext-decoration: none;\n}\n#thread-watcher .move>.close {\nposition: absolute;\nright: 0px;\ntop: 0px;\npadding: 0px 4px;\n}\n.watcher-toggler {\npadding-top: 18px;\nwidth: 18px;\nheight: 0px;\ndisplay: inline-block;\nbackground-repeat: no-repeat;\nopacity: 0.2;\nposition: relative;\ntop: 1px;\n}\n.watcher-toggler.watched {\nopacity: 1;\n}\n\n\n/* Thread Stats */\n#thread-stats {\nbackground: none;\nborder: none;\nbox-shadow: none;\n}\n:root.float #post-count, :root.float #file-count {\npointer-events: none;\n}\n:root.float #thread-stats {\npadding: 0px 3px;\n}\n\n/* Quote */\n.deadlink {\ntext-decoration: none !important;\n}\n.backlink.deadlink:not(.forwardlink),\n.quotelink.deadlink:not(.forwardlink) {\ntext-decoration: underline !important;\n}\n.inlined {\nopacity: .5;\n}\n#qp input, .forwarded {\ndisplay: none;\n}\n.quotelink.forwardlink,\n.backlink.forwardlink {\ntext-decoration: none;\nborder-bottom: 1px dashed;\n}\n.filtered {\ntext-decoration: underline line-through;\n}\n:root.hide-backlinks .backlink.filtered {\ndisplay: none;\n}\n.inline {\nborder: 1px solid;\ndisplay: table;\nmargin: 2px 0;\n}\n.inline .post {\nborder: 0 !important;\nbackground-color: transparent !important;\ndisplay: table !important;\nmargin: 0 !important;\npadding: 1px 2px !important;\n}\n#qp > .opContainer::after {\ncontent: '';\nclear: both;\ndisplay: table;\n}\n#qp .post {\nborder: none;\nmargin: 0;\npadding: 2px 2px 5px;\n}\n#qp img {\nmax-height: 80vh;\nmax-width: 50vw;\n}\n.qphl {\noutline: 2px solid rgba(216, 94, 49, .7);\n}\n:root.highlight-own .yourPost > .reply,\n:root.highlight-you .quotesYou > .reply {\nborder-left: 2px solid rgba(221,0,0,.5);\n}\n/* Quote Threading */\n.threadContainer {\nmargin-left: 20px;\nborder-left: 1px solid rgba(128,128,128,.3);\n}\n.threadOP {\nclear: both;\n} \n\n/* File */\n.fileText:hover .fntrunc,\n.fileText:not(:hover) .fnfull,\n.expanded-image > .post > .file > .fileThumb > img[data-md5],\n:not(.expanded-image) > .post > .file > .fileThumb > .full-image {\ndisplay: none;\n}\n.expanding {\nopacity: .5;\n}\n:root.fit-height .full-image {\nmax-height: 100vh;\n}\n:root.fit-width .full-image {\nmax-width: 100%;\n}\n:root.gecko.fit-width .full-image {\nwidth: 100%;\n}\n#ihover {\n-moz-box-sizing: border-box;\nbox-sizing: border-box;\nmax-height: 100%;\nmax-width: 75%;\npadding-bottom: 16px;\n}\n.fappeTyme .thread > .noFile,\n.fappeTyme .threadContainer > .noFile {\ndisplay: none;\n}\n\n/* Index/Reply Navigation */\n#navlinks {\nfont-size: 16px;\ntop: 25px;\nright: 10px;\n}\n\n/* Filter */\n.opContainer.filter-highlight {\nbox-shadow: inset 5px 0 rgba(255, 0, 0, .5);\n}\n.filter-highlight > .reply {\nbox-shadow: -5px 0 rgba(255, 0, 0, .5);\n}\n\n/* Spoiler text */\n:root.reveal-spoilers s {\ncolor: white !important;\n}\n\n/* Thread & Reply Hiding */\n.hide-thread-button,\n.hide-reply-button {\nfloat: left;\nmargin-right: 2px;\n}\n.stub ~ * {\ndisplay: none !important;\n}\n.stub input {\ndisplay: inline-block;\n}\n\n/* QR */\n:root.hide-original-post-form #postForm,\n:root.hide-original-post-form .postingMode,\n:root.hide-original-post-form #togglePostForm,\n#qr.autohide:not(.has-focus):not(:hover) > form,\n.postingMode ~ #qr select,\n#file-n-submit:not(.has-file) #qr-filerm {\ndisplay: none;\n}\n#qr select,\n#dump-button,\n.remove,\n.captcha-img {\ncursor: pointer;\n}\n#qr {\nz-index: 20;\nposition: fixed;\npadding: 1px;\nborder: 1px solid transparent;\nmin-width: 300px;\nborder-radius: 3px 3px 0 0;\n}\n#qrtab {\nborder-radius: 3px 3px 0 0;\n}\n#qrtab {\nmargin-bottom: 1px;\n}\n#qr .close {\nfloat: right;\npadding: 0 3px;\n}\n#qr .warning {\nmin-height: 1.6em;\nvertical-align: middle;\npadding: 0 1px;\nborder-width: 1px;\nborder-style: solid;\n}\n.qr-link-container {\ntext-align: center;\n}\n.persona {\nwidth: 248px;\nmax-width: 100%;\nmin-width: 100%;\n}\n#dump-button {\nwidth: 10%;\nmargin: 0;\nmargin-right: 4px;\nfont: 13px sans-serif;\npadding: 1px 0px 2px;\nopacity: 0.6;\n}\n.persona .field:not(#dump) {\nwidth: 95px;\nmin-width: 33.3%;\nmax-width: 33.3%;\n}\n#qr textarea.field {\nheight: 14.8em;\nmin-height: 9em;\n}\n#qr.has-captcha textarea.field {\nheight: 9em;\n}\ninput.field.tripped:not(:hover):not(:focus) {\ncolor: transparent !important;\ntext-shadow: none !important;\n}\n#qr textarea {\nresize: both;\n}\n.captcha-img {\nmargin: 0px;\ntext-align: center;\nbackground-image: #fff;\nfont-size: 0px;\nmin-height: 59px;\nmin-width: 302px;\n}\n.captcha-input {\nwidth: 100%;\nmargin: 1px 0 0;\n}\n.captcha-input.error:focus {\nborder-color: rgb(255,0,0) !important;\n}\n.field {\n-moz-box-sizing: border-box;\nmargin: 0px;\npadding: 2px 4px 3px;\n}\n#qr textarea {\nmin-width: 100%;\n}\n#qr [type='submit'] {\nwidth: 25%;\nvertical-align: top;\n}\n:root.webkit #qr [type='submit'] {\nheight: 24px;\n}\n/* Fake File Input */\n#qr-filename,\n.has-file #qr-no-file {\ndisplay: none;\n}\n#qr-no-file,\n.has-file #qr-filename {\ndisplay: inline-block;\npadding: 0px 4px;\nmargin-bottom: 2px;\noverflow: hidden;\ntext-overflow: ellipsis;\nmax-width: 88%;\n}\n#qr-no-file {\ncolor: #AAA;\n}\n#qr-filename-container {\n-moz-box-sizing: border-box;\ndisplay: inline-block;\nposition: relative;\nwidth: 100px;\nmin-width: 74.6%;\nmax-width: 74.6%;\nmargin-right: 0.4%;\nmargin-top: 1px;\noverflow: hidden;\npadding: 2px 1px 0;\nheight: 22px;\n}\n#qr-filename-container:hover {\ncursor: text;\n}\n#qr-extras-container {\nposition: absolute;\nright: 0px;\n}\n#qr-filerm {\nmargin-right: 2px;\nz-index: 2;\n}\n#file-n-submit {\nheight: 23px;\n}\n#qr input[type=file] {\nvisibility: hidden;\nposition: absolute;\n}\n/* Thread Select / Spoiler Label */\n#qr select {\nfloat: right;\n}\n#qr.has-spoiler .has-file #qr-spoiler-label {\nwidth: 6.7%;\nmin-width: 6.7%;\nmax-width: 6.7%;\ndisplay: inline-block;\ntext-align: center;\nvertical-align: top;\n}\n#qr.has-spoiler #file-n-submit:not(.has-file) #qr-spoiler-label {\ndisplay: none;\n}\n#qr.has-spoiler .has-file #qr-filename-container {\nmax-width: 67.9%;\nmin-width: 67.9%;\n}\n#qr-spoiler-label input {\nposition: relative;\ntop: 3px;\n}\n/* Dumping UI */\n.dump #dump-list-container {\ndisplay: block;\n}\n#dump-list-container {\ndisplay: none;\nposition: relative;\noverflow-y: hidden;\nmargin-top: 1px;\n}\n#dump-list {\noverflow-x: auto;\noverflow-y: hidden;\nwhite-space: nowrap;\nwidth: 248px;\nmax-width: 100%;\nmin-width: 100%;\n}\n#dump-list:hover {\noverflow-x: auto;\n}\n.qr-preview {\n-moz-box-sizing: border-box;\ncounter-increment: thumbnails;\ncursor: move;\ndisplay: inline-block;\nheight: 90px;\nwidth: 90px;\npadding: 2px;\nopacity: .5;\noverflow: hidden;\nposition: relative;\ntext-shadow: 0 1px 1px #000;\n-moz-transition: opacity .25s ease-in-out;\nvertical-align: top;\nbackground-size: cover;\n}\n.qr-preview:hover,\n.qr-preview:focus {\nopacity: .9;\n}\n.qr-preview::before {\ncontent: counter(thumbnails);\ncolor: #fff;\nposition: absolute;\ntop: 3px;\nright: 3px;\ntext-shadow: 0 0 3px #000, 0 0 8px #000;\n}\n.qr-preview#selected {\nopacity: 1;\n}\n.qr-preview.drag {\nbox-shadow: 0 0 10px rgba(0,0,0,.5);\n}\n.qr-preview.over {\nborder-color: #fff;\n}\n.qr-preview > span {\ncolor: #fff;\n}\n.remove {\nbackground: none;\ncolor: #e00;\nfont-weight: 700;\npadding: 3px;\n}\na:only-of-type > .remove {\ndisplay: none;\n}\n.remove:hover::after {\ncontent: \" Remove\";\n}\n.qr-preview > label {\nbackground: rgba(0,0,0,.5);\ncolor: #fff;\nright: 0;\nbottom: 0;\nleft: 0;\nposition: absolute;\ntext-align: center;\n}\n.qr-preview > label > input {\nmargin: 0;\n}\n#add-post {\ncursor: pointer;\nfont-size: 2em;\nposition: absolute;\ntop: 50%;\nright: 10px;\n-moz-transform: translateY(-50%);\n}\n.textarea {\nposition: relative;\n}\n:root.webkit .textarea {\nmargin-bottom: -2px;\n}\n#char-count {\ncolor: #000;\nbackground: hsla(0, 0%, 100%, .5);\nfont-size: 8pt;\nposition: absolute;\nbottom: 1px;\nright: 1px;\npointer-events: none;\n}\n\n/* Menu */\n.menu-button {\ndisplay: inline-block;\nposition: relative;\ncursor: pointer;\n}\n.menu-button i {\nborder-top: 6px solid;\nborder-right: 4px solid transparent;\nborder-left: 4px solid transparent;\ndisplay: inline-block;\nmargin: 2px;\nvertical-align: middle;\n}\n#menu {\nposition: fixed;\noutline: none;\n}\n.entry {\nborder-bottom: 1px solid rgba(0,0,0,.25);\ncursor: pointer;\ndisplay: block;\noutline: none;\npadding: 3px 7px;\nposition: relative;\ntext-decoration: none;\nwhite-space: nowrap;\n}\n.left>.entry.has-submenu {\npadding-right: 17px !important;\n}\n.entry:last-child {\nborder-bottom: 0;\n}\n.has-submenu::after {\ncontent: \"\";\nborder-left: .5em solid;\nborder-top: .3em solid transparent;\nborder-bottom: .3em solid transparent;\ndisplay: inline-block;\nmargin: .3em;\nposition: absolute;\nright: 3px;\n}\n.left .has-submenu::after {\nborder-left: 0;\nborder-right: .5em solid;\n}\n.submenu {\ndisplay: none;\nposition: absolute;\nleft: 100%;\ntop: -1px;\n}\n.focused .submenu {\ndisplay: block;\n}\n.imp-exp-result {\nposition: absolute;\ntext-align: center;\nmargin: auto;\nright: 0px;\nleft: 0px;\nwidth: 200px;\n}\n.export, .import {\ncursor: pointer;\ntext-decoration: none !important;\n}\n/* Link Title Favicons */\n.linkify.YouTube {\nbackground: transparent url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAMCAYAAABr5z2BAAABIklEQVQoz53LvUrDUBjG8bOoOammSf1IoBSvoCB4JeIqOHgBLt6AIMRBBQelWurQ2kERnMRBsBUcIp5FJSBI5oQsJVkkUHh8W0o5nhaFHvjBgef/Mq+Q46RJBMkI/vE+aOus956tnEswIZe1LV0QyJ5sE2GzgZfVMtRNIdiDpccEssdlB1mW4bvTwdvWJtRdErM7U+8S/FJykCRJX5qm+KpVce8UMNLRLbulz4iSjTAMh6Iowsd5BeNadp3nUF0VlxAEwZBotXC0Usa4ll3meZdA1iguwvf9vpvDA2wvmKgYGtSud8suDB4TyGr2PF49D/vra9jRZ1BVdknMzgwuCGSnZEObwu6sBnVTCHZiaC7BhFx2PKdxUidiAH/4lLo9Mv0DELVs9qsOHXwAAAAASUVORK5CYII=') center left no-repeat!important;\npadding-left: 18px;\n}\n.linkify.Vimeo {\nbackground: transparent url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAadEVYdFNvZnR3YXJlAFBhaW50Lk5FVCB2My41LjEwMPRyoQAAASJJREFUOE9jYAAC7ln7/pODQXrBmq333PvPu/YaSRikB6QXbACpmmHqsRoAMll7+20UQ0H8tmuv/pdffPFfZtNNuByGASBFIPDh5x+4IV6HHoDFYGDJgw+YBoBMBUkgA5BtIKduuvvy//svX+FSB+88wTTAc+/t/83bj/0HScLA5BPXwc7lKJ36f+L6XXDxhUfOYxrAPWUnWKFp9UQUm3iWQxSDXAEDSX3zcIcB96wD/x+8eA1XDNKMHAYg20GW4Y0FkCIYAAUqzEBQOIBciRzlWKMxZelOlMCEcVxq+jHSC1YDJPs3YBgA8jey0/F6ARRwsFAHORukmat9NdbUijMpg/wKcrJodDFOzSBXwA3Alh9AToZFI7a8Asu98BxJbnYGAJb5vYLDANzSAAAAAElFTkSuQmCC') center left no-repeat!important;\npadding-left: 18px;\n}\n.linkify.SoundCloud {\nbackground: transparent url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABsklEQVQ4y5WTy2pUQRCGv2rbzDjJeAlIBmOyipGIIJqFEBDElwh4yULGeRFXPoEIBl/AvQ/gC2RnxCAoxijiwks852S6+3dxzslcHJCpTXVX11/Xv0097gLPgVNMJxnQNfX4zsqleWbnpoMf/oa9d988MM9MC/rp+E0a+A0dsVobMNMCOO8B6McRoABJI+A6gJmN3D2A8jgEBCEkSEMBrcrsDAzDWWn3AjgKFaDMmgRqniGFgsaDp1jrLOngDf1XT1D+A1dFc4MKAkkiCVKjjVu7g9+4Rzx4i1u6hjXbuMWr0O5QPNvCu7IaCZwEKQukLGDrm5x8uI0tr6MkiGlkiv7yLfzN+6S5i6QsIMABkEfcxhbWWYMkVAOjxvYAjc3HNHrbKI9VBQBFwF25XQKSBjqIf1YBuAurEMrczgDygD6/x2LCpFLXLUyQ+PoldphhBhYfIX09XU1+Flaukz7uYqs3SHs7cG4BmTsmkBUF9mmXEwa28BNLPaQPLepuNcbGSWQquQC2/Kdcox1FUGkcB0ykck1nA2+wTzMs8stGnP4rbWGw74EuS/GFQWfK7/wF6P4F7fzIAYkdmdEAAAAASUVORK5CYII=') center left no-repeat!important;\npadding-left: 18px;\n}\n.linkify.audio {\nbackground: transparent url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAadEVYdFNvZnR3YXJlAFBhaW50Lk5FVCB2My41LjEwMPRyoQAAAitJREFUOE9jYCAWKJWwavr0KyXWb/FIbDtUFFyzJx6nVofE2Xo5nXsj0rqPNSR0nVkR2Hjmgmfd+U9Otdf+m5Vf/6+SfeU/R9ChVVgNYDRtlfJuuPA/rPfe/4QpD/6nznj0P27Kw/9unff/69Xf+69c/+C/SO7N/0z+OAxgMmmRCe++/r9i3ev/KWvf/vdY8PK/bt/9/wrNV3/IN5y/IVt1YqNg4pGTTP4HsbuA2bhZ2qvpyn+xjIObxAp3VwqlrgngLFyryVy5nhPmZJHANS2cwYexG8BmVC/pWn3hP4NZlzWuQDJI3dIiFnUUuwEsQAOcq87jNcC7fHeLUtJxHF4AGmBWeAavAWH1+1rUUk7giAWjOknllON4DXAs2NEiG4/DBQxAF/CFHfrPYI4jDFSLuJVjNrUJhB/B7gIGo1pJRt99GAZYJK7wLJ1z7Xzl4vu/7aqv/GRBj0bjqAX2qb0nJ7mXH17C4HcUxQA+hymWtSue/C5a9up/9Ozn/7Vr7v1nRY7GqMb91T3b3v6vWvPmf/S0p/9ZQk+DDLCBRSOz06Jqk+o7/21nvfqvsebDf7kZL/5zBaxphkezd+OFn7HzXvz3Wvjmv9a8N//5Ek//ZTBpVYUrMG2X5wjcdl68+uI/wa5Lr3hSNjczGFeywOVZ/bbcVGp//F9izfv/Ql03f3P4LC/HSEQquYwMFnUCDJ7dzBhyjGZNQpye89M5gpfnMvtNUyE2h4PUAQBovvT7lyNljwAAAABJRU5ErkJggg==') center left no-repeat!important;\npadding-left: 18px;\n}\n.linkify.LiveLeak {\nbackground: transparent url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAadEVYdFNvZnR3YXJlAFBhaW50Lk5FVCB2My41LjEwMPRyoQAAAydJREFUOE9Nk1tIk2EYx79NyUNqTk0o6KYrnZeChodLDxfeZpCbJk4RXU5Nm7tYRYhiYXbQlaeGutyW2gxtpB1RIyKDEjKwA6Ti2dR5KNDn+fq/S6TBj/f93r3P732e53s/qfnkSdej4GB2SBLbwf+jmB+gUMgOheLg/z7EdCUnO6Ref392SpK8Hyh3I+gBwBo7lUp2xcbyQEoKD6alyQOpqd754/h4FjJXZCRJTl9ftmEzoK5/wdQJxPgkLY2WV1dpc2uLtnZ2eHNnhza3t2nd46GhjAzuValY6jx0iIfS03msoIDuQ9COQCtoUSjohU5HuwgaN5loeXycd3d3aW9vzwvW2K5SkdTi58fvzGb+3tdHFggA3QONEAzn59PvjQ1yqNX0zenkvX0B4ffWaGRraChJd/385JGqKvlzTw/fRqOaIGkEd1DjU52O/3g83BkTw5MOh7yJuUCUM2o0yi2hoSw1IIOhykr+YLNRHYKu4XQvyKA/N5c8yMCCDD7Z7bz26xcJ1rH2rKKCG0UJdRAMlJbyG6uVrkJQjWAB5tSbk0Nr2HwDgvcQiIYur6zQyvo6ucvLueHIEZKuQPBQr+dXra1kRuqXEOwFArtWSytra1QdFUVjNhvPLS3R3OIiLUDUD0F1WBhJJtwDW2Ehu5uaqBICI4IFlRB0QLCEzaboaHrd0cHzCBYsIIuesjK+LAQXkEFrXh676uupGCWcR6AeghLQptGQONUAwfOuLp6Zn6eZuTmaXVig7pISrhI90ENgQbdHhoep32JhFzLpu3WLio8epUYIfs7OUjF6UKJW88XERLqYkEBNej11oG8XhCAvMFAuOn5cNiclsTkhQTbhmpri4lgbEMANWi1DwC/xit3t7bK7rY0Fo4OD3G4wyEURESzloAdnceezlErK8vH5N4KzPj50PTOTfkxP0+THj/RlYoInJyZI8HVqim5qNFwQHk7SucBAPo2PKRMNPLM/4pnFszYkhJsNBu6uqWFHba1sr61lQSveQFZQkFx07BhJmhMnrLn4NLMPH/aSExR0QDbmWhwgyEapwDvXoDxdWBiXnjrV/Bdm2kYUxLwmEgAAAABJRU5ErkJggg==') center left no-repeat!important;\npadding-left: 18px;\n}\n.linkify.Vocaroo {\nbackground: transparent url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAadEVYdFNvZnR3YXJlAFBhaW50Lk5FVCB2My41LjEwMPRyoQAAAw9JREFUOE9jYMABuMwYmCyTJKUCGlSnFSy02TTzeOyCiQcDViX26qVz2TAyYtWmEMwuoZ3M7V40LcB79pHkc0svpvzY8jD//87nxf+3Pyn8v/ZO8v+VNyP/2mZJumI1QCWSI8232Hjumitlfw5+qPp/9l8TCt76JP//xkdx/wsXWCzjtWFkwTCkbWFe9plPk/+ga4Txz/xt/D/hkN//gMXif21a+NbyWjIwoRiy6GDT5rP/mlFsPfyp5n/NpOj/22+0gMUXXIz/H7hC/L/bFKFbPDZMrHAD5H35OPt2J9zacDv/f3V7xv9FhwrBGubsT/1//Pjx/1GJ/mD+/nfl/1v3Ovy3KRJNQbHdOlXCvOO03/+pm1P/v3v37n90hhtYw9HPtf8Xb2v937cmHswHeWPRxYj/LvkK3igGKARwicTO07118H3V/5kbi/4vPZMJtK3s/6YH2f+Pfq1B8VbjWrdnMu5s4nAD9CNFhKwz5DTUvLl419zKvAcLtG1P84BRl/b/5M/6/6f/NPzf/qzo84yj0Uus0xUU4Zor54bm9+4OfZG02OCuoAMTb9ZkC9ull1Nvrr2Z+XvRpaRfc65H/68F+jl9svEhzyLFWoccWVc+eyTHq/twydjlKRln7jX9bNMkMJnbhoFRL1xCqmKx6/yi2fYXa/c5/e846PV/5fW0/7OPx/yfcjzop34ulxdGGvDuU8mMXaX507lBuiN6ueadmQeT/p/93vf/1O+G//sP5fw/eL3o/5JLif8zVxs+Tlir9S26UyeFQQvJGBE7FvaFZ9LfN+1y+WjbItSb3GmXvXd15v8zroH/HxgE/D+aGPx/18vi/z07PeZNPRKxe/Kh0Ae8toxscCO4zBkYXArk9C1SxJUYjBkYPPIVtbbuTftz3cz//2O9wP/75iSAXdO72/dt2HL5F6YlfBW4MiJYXMiBiW3t7azHBx+V/t89N+H/8a+1//e9K/9attDp5LQjYX8SuvVL8RoAkmxa65299Erq1FnHo0qrl7t4BddriIs4MrM3rfWcFd+pGwVSAwBZ0bKP8yrZPAAAAABJRU5ErkJggg==') center left no-repeat!important;\npadding-left: 18px;\n}\n.linkify.pastebin {\nbackground: transparent url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAadEVYdFNvZnR3YXJlAFBhaW50Lk5FVCB2My41LjEwMPRyoQAAAtZJREFUOE+NU91LWmEc7sJtQew/2MUY7INg7CLY3W5GMHazyzEQo9UmfYxZTbAiVlgRqLMSZ+XnDC3z2+Y0+8JGakKZTtR0Tl2wtgtLLQh29cz3ZZ3h3Q68vOc95zzP73l+z+/U1f292O09DRxubxOH23P//1bvtQts3dPnry7LZnXJhcUl5Avf8dHtwY+fv2AyW5DOfIXFakMm+w0G4wISyRRm55TQG0y/Wzv6mikJ52Xf9TmVBoFAAD6fDwqFAqFQCJubmzCbzZiensbp6SmkUikikQi0Wi0kEgm6ewVaStDCfXPDandifn6egoaGhrCzswO1Wg2Hw4HBwUGk02kIBAL4/X4IhUJMTk6ii8dfYggy2RwymQzOz88Rj8dRLpexv7+PSqWCYDCIQqGAra0tJBIJrK2t0XdVAjNDEIl+wfj4OEqlEq2wt7dHrchkMmrBYDCAz+fTIjweD7FYrJbgIJOlgLOzM8jlcip1eXmZ2rFarVAqlRCLxcjlchCJRFRljYJYPAG32418Pg+n04lsNouVlRUcHh7C4/FQIOlHNBqlezgcJgQWxkIgGMbExASVNjY2hvX1dVo9mUzS5wREFLhcLrqTcw2B//M2RkdHodPp4PV6oVKpqH+SCom3v7+fNnF4eJiJusbCJ6+PviSyScakiaR5RIHRaKQpmEwmbAdCeD8zB6vdhebHT8SMhcUlC83bbrdTJRsbG3RwiCVCRNJJpDIoVeNNJJJQzKryV+rrmxiCtyNCCmaz2VhdXQWXy6XDpNfrodFoYLXZUTw+pk222Z3lW3ca26rgSwzBwqIZAwMDlITMAVEwNTVFR5fEJpK8Qyp1AJvDVbrTeLenCmxgfiZ22+urCtWHyu7uLp2wVCpFKx0dHaFYLOLk5KT6Y9kgk89kb95ubK0BX7A8a+1qannRLeW0daj/rU51S3tn9dypfvDw0QiLxbpX/Z7FVK7e/AEj4Wf24/2f5AAAAABJRU5ErkJggg==') center left no-repeat!important;\npadding-left: 18px;\n}\n.linkify.gist {\nbackground: transparent url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAk1JREFUeNqUkzuIE1EUhv955MnsbB6r4kYQLUQQFncV3SnCIqJsoWGDYOGjsIiCtY2Kla1sjLBIsFFcXJC1kaSwENQmXUQSRSUSjCQSTCbkbR4z47lXEgtBNwcu3DNzvvO8R8jlcj7LshKmaWqYQERRTAmCcEru9/sJr9er0QF92BJMAVGr1TQ6CeZAc7lcGAwGkyQAxpTLZU0eDoc8crfbRTgcRjAYRCQSYSmi1WpxY7fbjU6ng1gshmaziXg8zhnGIpVKWbquW9ls1mLZsaMoiqWq6lgnBxY55He/328Vi0XOMFZmqVMD4fF4QBAajcY48khY9JE4HA4enTGMFVkaTHmy+ZzD/5NSqYSNB484w1h55ODO3TVu4FXcWDywl24Cmp0e1WBhyuWELAtIf/qKUrWOONmev3Lpt4NRCXq1gplpBS/v3cDc0nGg9h1o1ZkfwO4Atu1B8cM7HLt8k37V/y5B2b4bJxf2Y+7oEbyJrkMvUjki0YYJ03LidfQxAt4dOHdCw5RdGZcgGobBlQtnV/BDr1GfDai7ZiHZZRi9PoY/e5SCCTUwC9gk1GmMh5YWOcNYkR4Sv1y9uAJbYB82N57h4OnDmN7phjQ0qUkWRJuB+TMaPn/5iFfvv+Ha7eucYey4iWw8q6tRJJNJ3Fp7ClUawEkViBTfkCR0YUNTVHD/4Tpm/P4/U2CeKpUKfD4fJDIMhUKEhP45St50XedZyLQY6Xw+v8AUemVb2oNqtYpCocCWKi2TLLfb7ReZTGZ+kmUi7i2VvfxLgAEAZChMriPcl+IAAAAASUVORK5CYII=') center left no-repeat!important;\npadding-left: 18px;\n}\n.linkify.image {\nbackground: transparent url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAadEVYdFNvZnR3YXJlAFBhaW50Lk5FVCB2My41LjEwMPRyoQAAAs5JREFUOE+lk/tvi1EYx98/xT8gW4REIpGFMEQWl2FiM9ZMZhm2xRAyOsmujFFmdFRHu0tWm87UypxStr69zPauN5e5rHVp3IYhbOvHy+wHEQlxkm+ek+d8nm9OznkeSfrfldmgJC7QyUlTymsJTfuTZ25z4HdWYwyLreYhtpgekGPw0+kKvo1Eo+IXRSIiEhkWZuc9tqnsJD9EqTUopCxjSGTpB0iueczSo1HyW8cpsExQ1DbxI2pt45j9cXpexul4FEd79RnZphAa/SD7WvuFtO6UItbU9LC+YQxNI2w0wwYT5LRAdhOU3oBTIXC9gXP3oUSGgz2vST3gYHejR0jptT1C332f8yrUEYHrz8CgxDnpm6DKCUfc0KnmXa/AEVPPwnDcD0cvetA2uYRk67Ive/lpjO7YBO1PPuF8Df3vwf4cbNE4tqdw7YVq8HYyHx6FvhE1hkMEg8HDUqvFkjT4aIjMqkqyqkswDSrcfBfH+Q561YLAZ/B+BLda6FXlU/cPv0AoEPhuoP1h4Av7Wbh9E/Py15NWWUjeSR3nZDfeN+N0DY9hG/7K1eGP3P0S5/EYRFUF/IOTBrUXHPm9fT6mr1xEwupkZqxbzLyiDJYUZ5NSnkdqdSHpxyrYdFpPgdmAsdfJwPMI/Yr65bf7tZLGGBQ7DNdJWFtIYvoOZmbuZE7OXpIKKli86zAr9p9gTVktWTVnKTI2U95uRWe3U2IJUDbVB5p6hVm5x5m9Vc/cnedZUNzC8lILaQesZBy6hEZ3maKzgvJWFzVWD9XtXvVGQbSWASFtMATVRlJIKbOTWtlJXaeXepuPM1f6MNp9GLt8mLvvYLmp0OhQ2Fwvk6m7xaqDTvY0eYWUVtcnllXfYlGpnfklVuraHHg8HjxuN+6fktUHlWWZPaZeUo/ILK0UKttBcbNbSB9GP0yLxWJJUxoZGUn80zD9C/vXQ/4NHY10h3M1zmQAAAAASUVORK5CYII=') center left no-repeat!important;\npadding-left: 18px;\n}\n.linkify.InstallGentoo {\nbackground: transparent url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAadEVYdFNvZnR3YXJlAFBhaW50Lk5FVCB2My41LjEwMPRyoQAAAklJREFUOE9jYEAAASBTCorZkcSRmTjVCDLziCwG4hfM3EIvGNm44oC6WNEM4WXi5FsEkmfhFX3BxMmfAJSHW9Qr55Px3aZp3X/btq3/hQydPzKysMcCFbBBDeFj4uBdqBJR/gskb1W34j+PmulLoJwbzBJJoMm7dNO7/ntMP/XfpW/v//SKvk+7tl7fvXfTpx5pCdWVSiHFv1wnHQbLi9sE/Wdk5SwBauaCGQB3gUPb5v+7Lr/8/+fvr/9fv/z+f+Pyr/9bV735l9Wy/79Dx/b/Nk0bsLoAHgbeAVHv/v77/f8f0IB7N7+cu3DuecK54z9+7lzz639e9pK/7HwSWMMA5BJwCJeXtOm/fvVj1fcfv369f//92cN7X6ZcPvf9x6Htv//vXP3r/+T245UEYgpskPTNq08LgN749/PH7/93rv/6f/rw7//nj//4f+bU0zQcUQwWBkdVbGz62y+fv3wHeeXrlz//H9798//qpY//M3KqfzGxc8djiWKwZnBUuWQ2/fr46fv/P39+///x/ff/d69//z97+s7fyMb5/+y7d2GLYriDZikFF/1qXXXj/4Pbv/8/f/jn/5MH316/eP6jVlBAaIt6VO1/jxmn/zv27P7Pp2HxEajLD90ra9Sj6/979O37X73w0n+vqOL/0lJyMVBFq0EGgDSD0oKAlu1/oHg4ugGzVCKqfouYuL1Xj676Iajr8AnJFricGqYc3Bw+Zi6BVUxsXLHAdL6QiYMPFNrwpIxHDsUhgtAMAopKDjQn4pPDF7P45QC4hSmc1eX8WgAAAABJRU5ErkJggg==') center left no-repeat!important;\npadding-left: 18px;\n}\n\n/* General */\n:root.yotsuba .dialog {\nbackground-color: #F0E0D6;\nborder-color: #D9BFB7;\n}\n:root.yotsuba .field:focus {\nborder-color: #EA8;\n}\n\n/* Header */\n:root.yotsuba #header-bar, :root.yotsuba #notifications {\nfont-size: 9pt;\ncolor: #B86;\n}\n:root.yotsuba #header-bar a, :root.yotsuba #notifications a {\ncolor: #800000;\n}\n\n/* Settings */\n:root.yotsuba #fourchanx-settings fieldset {\nborder-color: #D9BFB7;\n}\n\n/* Quote */\n:root.yotsuba .backlink.deadlink {\ncolor: #00E !important;\n}\n:root.yotsuba .inline {\nborder-color: #D9BFB7;\nbackground-color: rgba(255, 255, 255, .14);\n}\n\n/* QR */\n.yotsuba #dump-list::-webkit-scrollbar-thumb {\nbackground-color: #F0E0D6;\nborder-color: #D9BFB7;\n}\n:root.yotsuba .qr-preview {\nbackground-color: rgba(0, 0, 0, .15);\n}\n\n/* Menu */\n:root.yotsuba #menu {\ncolor: #800000;\n}\n:root.yotsuba .entry {\nborder-bottom: 1px solid #D9BFB7;\nfont-size: 10pt;\n}\n:root.yotsuba .focused.entry {\nbackground: rgba(255, 255, 255, .33);\n}\n\n/* Watcher Favicon */\n:root.yotsuba .watcher-toggler\n{\nbackground-image: url(\"data:image/svg+xml, \");\n}\n\n/* General */\n:root.yotsuba-b .dialog {\nbackground-color: #D6DAF0;\nborder-color: #B7C5D9;\n}\n:root.yotsuba-b .field:focus {\nborder-color: #98E;\n}\n\n/* Header */\n:root.yotsuba-b #header-bar, :root.yotsuba-b #notifications {\nfont-size: 9pt;\ncolor: #89A;\n}\n:root.yotsuba-b #header-bar a, :root.yotsuba-b #notifications a {\ncolor: #34345C;\n}\n\n/* Settings */\n:root.yotsuba-b #fourchanx-settings fieldset {\nborder-color: #B7C5D9;\n}\n\n/* Quote */\n:root.yotsuba-b .backlink.deadlink {\ncolor: #34345C !important;\n}\n:root.yotsuba-b .inline {\nborder-color: #B7C5D9;\nbackground-color: rgba(255, 255, 255, .14);\n}\n\n/* QR */\n.yotsuba-b #dump-list::-webkit-scrollbar-thumb {\nbackground-color: #D6DAF0;\nborder-color: #B7C5D9;\n}\n:root.yotsuba-b .qr-preview {\nbackground-color: rgba(0, 0, 0, .15);\n}\n\n/* Menu */\n:root.yotsuba-b #menu {\ncolor: #000;\n}\n:root.yotsuba-b .entry {\nborder-bottom: 1px solid #B7C5D9;\nfont-size: 10pt;\n}\n:root.yotsuba-b .focused.entry {\nbackground: rgba(255, 255, 255, .33);\n}\n\n/* Watcher Favicon */\n:root.yotsuba-b .watcher-toggler\n{\nbackground-image: url(\"data:image/svg+xml, \");\n}\n\n/* General */\n:root.futaba .dialog {\nbackground-color: #F0E0D6;\nborder-color: #D9BFB7;\n}\n:root.futaba .field:focus {\nborder-color: #EA8;\n}\n\n/* Header */\n:root.futaba #header-bar, :root.futaba #notifications {\nfont-size: 11pt;\ncolor: #B86;\n}\n:root.futaba #header-bar a, :root.futaba #notifications a {\ncolor: #800000;\n}\n\n/* Settings */\n:root.futaba #fourchanx-settings fieldset {\nborder-color: #D9BFB7;\n}\n\n/* Quote */\n:root.futaba .backlink.deadlink {\ncolor: #00E !important;\n}\n:root.futaba .inline {\nborder-color: #D9BFB7;\nbackground-color: rgba(255, 255, 255, .14);\n}\n\n/* QR */\n.futaba #dump-list::-webkit-scrollbar-thumb {\nbackground-color: #F0E0D6;\nborder-color: #D9BFB7;\n}\n:root.futaba .qr-preview {\nbackground-color: rgba(0, 0, 0, .15);\n}\n\n/* Menu */\n:root.futaba #menu {\ncolor: #800000;\n}\n:root.futaba .entry {\nborder-bottom: 1px solid #D9BFB7;\nfont-size: 12pt;\n}\n:root.futaba .focused.entry {\nbackground: rgba(255, 255, 255, .33);\n}\n\n/* Watcher Favicon */\n:root.futaba .watcher-toggler\n{\nbackground-image: url(\"data:image/svg+xml, \");\n}\n\n/* General */\n:root.burichan .dialog {\nbackground-color: #D6DAF0;\nborder-color: #B7C5D9;\n}\n:root.burichan .field:focus {\nborder-color: #98E;\n}\n\n/* Header */\n:root.burichan #header-bar, :root.burichan #header-bar #notifications {\nfont-size: 11pt;\ncolor: #89A;\n}\n:root.burichan #header-bar a, :root.burichan #header-bar #notifications a {\ncolor: #34345C;\n}\n\n/* Settings */\n:root.burichan #fourchanx-settings fieldset {\nborder-color: #B7C5D9;\n}\n\n/* Quote */\n:root.burichan .backlink.deadlink {\ncolor: #34345C !important;\n}\n:root.burichan .inline {\nborder-color: #B7C5D9;\nbackground-color: rgba(255, 255, 255, .14);\n}\n\n/* QR */\n.burichan #dump-list::-webkit-scrollbar-thumb {\nbackground-color: #D6DAF0;\nborder-color: #B7C5D9;\n}\n:root.burichan .qr-preview {\nbackground-color: rgba(0, 0, 0, .15);\n}\n\n/* Menu */\n:root.burichan #menu {\ncolor: #000000;\n}\n:root.burichan .entry {\nborder-bottom: 1px solid #B7C5D9;\nfont-size: 12pt;\n}\n:root.burichan .focused.entry {\nbackground: rgba(255, 255, 255, .33);\n}\n\n/* Watcher Favicon */\n:root.burichan .watcher-toggler\n{\nbackground-image: url(\"data:image/svg+xml, \");\n}\n\n/* General */\n:root.tomorrow .dialog {\nbackground-color: #282A2E;\nborder-color: #111;\n}\n\n/* Header */\n:root.tomorrow #header-bar, :root.tomorrow #notifications {\nfont-size: 9pt;\ncolor: #C5C8C6;\n}\n:root.tomorrow #header-bar a, :root.tomorrow #notifications a {\ncolor: #81A2BE;\n}\n\n/* Settings */\n:root.tomorrow #fourchanx-settings fieldset {\nborder-color: #111;\n}\n\n/* Quote */\n:root.tomorrow .backlink.deadlink {\ncolor: #81A2BE !important;\n}\n:root.tomorrow .inline {\nborder-color: #111;\nbackground-color: rgba(0, 0, 0, .14);\n}\n\n/* QR */\n.tomorrow #dump-list::-webkit-scrollbar-thumb {\nbackground-color: #282A2E;\nborder-color: #111;\n}\n:root.tomorrow .qr-preview {\nbackground-color: rgba(255, 255, 255, .15);\n}\n:root.tomorrow #qr .field {\nbackground-color: rgb(26, 27, 29);\ncolor: rgb(197,200,198);\nborder-color: rgb(40, 41, 42);\n}\n:root.tomorrow #qr .field:focus {\nborder-color: rgb(129, 162, 190) !important;\nbackground-color: rgb(30,32,36);\n}\n\n/* Menu */\n:root.tomorrow #menu {\ncolor: #C5C8C6;\n}\n:root.tomorrow .entry {\nborder-bottom: 1px solid #111;\nfont-size: 10pt;\n}\n:root.tomorrow .focused.entry {\nbackground: rgba(0, 0, 0, .33);\n}\n\n/* Watcher Favicon */\n:root.tomorrow .watcher-toggler\n{\nbackground-image: url(\"data:image/svg+xml, \");\n}\n\n/* General */\n:root.photon .dialog {\nbackground-color: #DDD;\nborder-color: #CCC;\n}\n:root.photon .field:focus {\nborder-color: #EA8;\n}\n\n/* Header */\n:root.photon #header-bar, :root.photon #notifications {\nfont-size: 9pt;\ncolor: #333;\n}\n:root.photon #header-bar a, :root.photon #notifications a {\ncolor: #FF6600;\n}\n\n/* Settings */\n:root.photon #fourchanx-settings fieldset {\nborder-color: #CCC;\n}\n\n/* Quote */\n:root.photon .backlink.deadlink {\ncolor: #F60 !important;\n}\n:root.photon .inline {\nborder-color: #CCC;\nbackground-color: rgba(255, 255, 255, .14);\n}\n\n/* QR */\n.photon #dump-list::-webkit-scrollbar-thumb {\nbackground-color: #DDD;\nborder-color: #CCC;\n}\n:root.photon .qr-preview {\nbackground-color: rgba(0, 0, 0, .15);\n}\n\n/* Menu */\n:root.photon #menu {\ncolor: #333;\n}\n:root.photon .entry {\nborder-bottom: 1px solid #CCC;\nfont-size: 10pt;\n}\n:root.photon .focused.entry {\nbackground: rgba(255, 255, 255, .33);\n}\n\n/* Watcher Favicon */\n:root.photon .watcher-toggler\n{\nbackground-image: url(\"data:image/svg+xml, \");\n}\n"
+ css: "/* General */\n.dialog {\nbox-shadow: 0 1px 2px rgba(0, 0, 0, .15);\nborder: 1px solid;\ndisplay: block;\npadding: 0;\n}\n.captcha-img,\n.field {\nbackground-color: #FFF;\nborder: 1px solid #CCC;\n-moz-box-sizing: border-box;\nbox-sizing: border-box;\ncolor: #333;\nfont: 13px sans-serif;\noutline: none;\ntransition: color .25s, border-color .25s;\ntransition: color .25s, border-color .25s;\n}\n.field::-moz-placeholder,\n.field:hover::-moz-placeholder {\ncolor: #AAA !important;\nfont-size: 13px !important;\nopacity: 1.0 !important;\n}\n.captch-img:hover,\n.field:hover {\nborder-color: #999;\n}\n.field:hover, .field:focus {\ncolor: #000;\n}\n.field[disabled] {\nbackground-color: #F2F2F2;\ncolor: #888;\n}\n.move {\ncursor: move;\noverflow: hidden;\n}\nlabel,\n.watch-thread-link {\ncursor: pointer;\n}\na[href=\"javascript:;\"] {\ntext-decoration: none;\n}\n.warning {\ncolor: red;\n}\n#boardNavDesktop {\ndisplay: none !important;\n}\na {\noutline: none !important;\n}\n\n/* 4chan style fixes */\n.opContainer, .op {\ndisplay: block !important;\noverflow: visible !important;\n}\n[hidden] {\ndisplay: none !important;\n}\n\n/* fixed, z-index */\n#overlay,\n#fourchanx-settings,\n#qp, #ihover,\n#navlinks, .fixed #header-bar,\n:root.float #updater,\n:root.float #thread-stats,\n#qr {\nposition: fixed;\n}\n#fourchanx-settings {\nz-index: 999;\n}\n#overlay {\nz-index: 900;\n}\n#notifications {\nz-index: 70;\n}\n#qp, #ihover {\nz-index: 60;\n}\n#menu {\nz-index: 50;\n}\n#navlinks, #updater, #thread-stats {\nz-index: 40;\n}\n.fixed #header-bar.autohide {\nz-index: 35;\n}\n#qr {\nz-index: 30;\n}\n#thread-watcher {\nz-index: 8;\n}\n:root.fixed-watcher #thread-watcher {\nz-index: 20;\n}\n.fixed #header-bar {\nz-index: 10;\n}\n/* Header */\n.fixed.top body {\npadding-top: 2em;\n}\n.fixed.bottom body {\npadding-bottom: 2em;\n}\n.fixed #header-bar {\nright: 0;\nleft: 0;\npadding: 3px 4px 4px;\n}\n.fixed.top #header-bar {\ntop: 0;\n}\n.fixed.bottom #header-bar {\nbottom: 0;\n}\n#header-bar {\nborder-width: 0;\ntransition: all .1s .05s ease-in-out;\n}\n:root.centered-links #shortcuts {\nwidth: 300px;\ntext-align: right;\n}\n:root.centered-links #header-bar {\ntext-align: center;\n}\n:root.centered-links #custom-board-list {\nposition: relative;\nleft: 150px;\n}\n.fixed.top #header-bar {\nborder-bottom-width: 1px;\n}\n.fixed.bottom #header-bar {\nbox-shadow: 0 -1px 2px rgba(0, 0, 0, .15);\nborder-top-width: 1px;\n}\n.fixed.bottom #header-bar .menu-button i {\nborder-top: none;\nborder-bottom: 6px solid;\n}\n#board-list {\ntext-align: center;\n}\n.fixed #header-bar.autohide:not(:hover) {\nbox-shadow: none;\ntransition: all .8s .6s cubic-bezier(.55, .055, .675, .19);\n}\n.fixed.top #header-bar.autohide:not(:hover) {\nmargin-bottom: -1em;\n-webkit-transform: translateY(-100%);\ntransform: translateY(-100%);\n}\n.fixed.bottom #header-bar.autohide:not(:hover) {\n-webkit-transform: translateY(100%);\ntransform: translateY(100%);\n}\n#scroll-marker {\nleft: 0;\nright: 0;\nheight: 10px;\nposition: absolute;\n}\n:root:not(.autohide) #scroll-marker {\npointer-events: none;\n}\n#header-bar #scroll-marker {\ndisplay: none;\n}\n.fixed #header-bar #scroll-marker {\ndisplay: block;\n}\n.fixed.top #header-bar #scroll-marker {\ntop: 100%;\n}\n.fixed.bottom #header-bar #scroll-marker {\nbottom: 100%;\n}\n#header-bar a:not(.entry):not(.close) {\ntext-decoration: none;\npadding: 1px;\n}\n#header-bar input {\nmargin: 0;\nvertical-align: bottom;\n}\n#shortcuts:empty {\ndisplay: none;\n}\n.brackets-wrap::before {\ncontent: \"\\00a0[\";\n}\n.brackets-wrap::after {\ncontent: \"]\\00a0\";\n}\n.dead-thread,\n.disabled,\n.expand-all-shortcut {\nopacity: .45;\n}\n#shortcuts {\nfloat: right;\n}\n.shortcut {\nmargin-left: 3px;\n}\n#navbotright,\n#navtopright {\ndisplay: none;\n}\n#toggleMsgBtn {\ndisplay: none !important;\n}\n.current {\nfont-weight: bold;\n}\n/* 4chan X link brackets */\n.brackets-wrap::after {\ncontent: \"]\";\n}\n.brackets-wrap::before {\ncontent: \"[\";\n}\n/* Notifications */\n#notifications {\nposition: fixed;\ntop: 0;\nheight: 0;\ntext-align: center;\nright: 0;\nleft: 0;\ntransition: all .8s .6s cubic-bezier(.55, .055, .675, .19);\n}\n.fixed.top #header-bar #notifications {\nposition: absolute;\ntop: 100%;\n}\n.notification {\ncolor: #FFF;\nfont-weight: 700;\ntext-shadow: 0 1px 2px rgba(0, 0, 0, .5);\nbox-shadow: 0 1px 2px rgba(0, 0, 0, .15);\nborder-radius: 2px;\nmargin: 1px auto;\nwidth: 500px;\nmax-width: 100%;\nposition: relative;\ntransition: all .25s ease-in-out;\n}\n.notification.error {\nbackground-color: hsla(0, 100%, 38%, .9);\n}\n.notification.warning {\nbackground-color: hsla(36, 100%, 38%, .9);\n}\n.notification.info {\nbackground-color: hsla(200, 100%, 38%, .9);\n}\n.notification.success {\nbackground-color: hsla(104, 100%, 38%, .9);\n}\n.notification a {\ncolor: white;\n}\n.notification > .close {\npadding: 6px;\ntop: 0;\nright: 5px;\nposition: absolute;\n}\n.message {\n-moz-box-sizing: border-box;\nbox-sizing: border-box;\npadding: 6px 20px;\nmax-height: 200px;\nwidth: 100%;\noverflow: auto;\n}\n\n/* Settings */\n:root.fourchan-x body {\n-moz-box-sizing: border-box;\nbox-sizing: border-box;\n}\n#overlay {\nbackground-color: rgba(0, 0, 0, .5);\ntop: 0;\nleft: 0;\nheight: 100%;\nwidth: 100%;\n}\n#fourchanx-settings {\n-moz-box-sizing: border-box;\nbox-sizing: border-box;\nbox-shadow: 0 0 15px rgba(0, 0, 0, .15);\nheight: 600px;\nmax-height: 100%;\nwidth: 900px;\nmax-width: 100%;\nmargin: auto;\npadding: 3px;\ntop: 50%;\nleft: 50%;\n-moz-transform: translate(-50%, -50%);\n-webkit-transform: translate(-50%, -50%);\ntransform: translate(-50%, -50%);\n}\n#fourchanx-settings > nav {\npadding: 2px 2px 0;\nheight: 15px;\n}\n#fourchanx-settings > nav a {\ntext-decoration: underline;\n}\n#fourchanx-settings > nav a.close {\ntext-decoration: none;\npadding: 2px;\n}\n.section-container {\noverflow: auto;\nposition: absolute;\ntop: 2.1em;\nright: 5px;\nbottom: 5px;\nleft: 5px;\npadding-right: 5px;\n}\n.sections-list {\npadding: 0 3px;\nfloat: left;\n}\n.credits {\nfloat: right;\n}\n.tab-selected {\nfont-weight: 700;\n}\n.section-sauce ul,\n.section-advanced ul {\nlist-style: none;\nmargin: 0;\n}\n.section-sauce ul {\npadding: 8px;\n}\n.section-advanced ul {\npadding: 0px;\n}\n.section-sauce li,\n.section-advanced li {\npadding-left: 4px;\n}\n.section-main label {\ntext-decoration: underline;\n}\n.section-filter ul {\npadding: 0;\n}\n.section-filter li {\nmargin: 10px 40px;\n}\n.section-filter textarea {\nheight: 500px;\n}\n.section-sauce textarea {\nheight: 350px;\n}\n.section-advanced .field[name=\"boardnav\"] {\nwidth: 100%;\n}\n.section-advanced textarea {\nheight: 150px;\n}\n.section-advanced .archive-cell {\nmin-width: 160px;\ntext-align: center;\n}\n.section-advanced #archive-board-select {\nposition: absolute;\n}\n.section-advanced .note {\nfont-size: 0.8em;\nfont-style: italic;\nmargin-left: 10px;\n}\n.section-advanced .note code {\nfont-style: normal;\nfont-size: 11px;\n}\n.section-keybinds .field {\nfont-family: monospace;\n} \n#fourchanx-settings fieldset {\nborder: 1px solid;\nborder-radius: 3px;\n}\n#fourchanx-settings legend {\nfont-weight: 700;\n}\n#fourchanx-settings textarea {\nfont-family: monospace;\nmin-width: 100%;\nmax-width: 100%;\n}\n#fourchanx-settings code {\ncolor: #000;\nbackground-color: #FFF;\npadding: 0 2px;\n}\n.unscroll {\noverflow: hidden;\n}\n\n/* Announcement Hiding */\n:root.hide-announcement #globalMessage {\ndisplay: none;\n}\na.hide-announcement {\nfloat: left;\n}\n\n/* Unread */\n#unread-line {\nmargin: 0;\nborder-color: rgb(255,0,0);\n}\n\n/* Thread Updater */\n#updater {\nbackground: none;\nborder: none;\nbox-shadow: none;\n}\n#updater > .move {\npadding: 5px 3px 0px;\nmargin-bottom: -3px;\n}\n#updater > div:last-child {\ntext-align: center;\n}\n#updater input[type=number] {\nwidth: 4em;\n}\n:root.float #updater {\npadding: 0px 3px;\n}\n.new {\ncolor: limegreen;\n}\n#update-status.new {\nmargin-right: 5px;\n}\n#update-timer {\ncursor: pointer;\n}\n\n/* Thread Watcher */\n#thread-watcher {\nposition: absolute;\n}\n#thread-watcher {\npadding-bottom: 3px;\npadding-left: 3px;\noverflow: hidden;\nwhite-space: nowrap;\nmin-width: 136px;\nmax-height: 92%;\noverflow-y: auto;\n}\n#thread-watcher .menu-button {\nbottom: 1px;\n} \n:root.fixed-watcher #thread-watcher {\nposition: fixed;\n}\n:root:not(.fixed-watcher) #thread-watcher:not(:hover) {\nmax-height: 210px;\noverflow-y: hidden;\n}\n#thread-watcher > .move {\npadding-top: 3px;\n}\n#watched-threads > div {\nmax-width: 250px;\noverflow: hidden;\npadding-left: 3px;\npadding-right: 3px;\ntext-overflow: ellipsis;\n}\n#thread-watcher a {\ntext-decoration: none;\n}\n#thread-watcher .move>.close {\nposition: absolute;\nright: 0px;\ntop: 0px;\npadding: 0px 4px;\n}\n.watch-thread-link {\npadding-top: 18px;\nwidth: 18px;\nheight: 0px;\ndisplay: inline-block;\nbackground-repeat: no-repeat;\nopacity: 0.2;\nposition: relative;\ntop: 1px;\n}\n.watch-thread-link.watched {\nopacity: 1;\n}\n\n\n/* Thread Stats */\n#thread-stats {\nbackground: none;\nborder: none;\nbox-shadow: none;\n}\n:root.float #post-count, :root.float #file-count {\npointer-events: none;\n}\n:root.float #thread-stats {\npadding: 0px 3px;\n}\n\n/* Quote */\n.deadlink {\ntext-decoration: none !important;\n}\n.backlink.deadlink:not(.forwardlink),\n.quotelink.deadlink:not(.forwardlink) {\ntext-decoration: underline !important;\n}\n.inlined {\nopacity: .5;\n}\n#qp input, .forwarded {\ndisplay: none;\n}\n.quotelink.forwardlink,\n.backlink.forwardlink {\ntext-decoration: none;\nborder-bottom: 1px dashed;\n}\n.filtered {\ntext-decoration: underline line-through;\n}\n:root.hide-backlinks .backlink.filtered {\ndisplay: none;\n}\n.inline {\nborder: 1px solid;\ndisplay: table;\nmargin: 2px 0;\n}\n.inline .post {\nborder: 0 !important;\nbackground-color: transparent !important;\ndisplay: table !important;\nmargin: 0 !important;\npadding: 1px 2px !important;\n}\n#qp > .opContainer::after {\ncontent: '';\nclear: both;\ndisplay: table;\n}\n#qp .post {\nborder: none;\nmargin: 0;\npadding: 2px 2px 5px;\n}\n#qp img {\nmax-height: 80vh;\nmax-width: 50vw;\n}\n.qphl {\noutline: 2px solid rgba(216, 94, 49, .7);\n}\n:root.highlight-own .yourPost > .reply,\n:root.highlight-you .quotesYou > .reply {\nborder-left: 2px solid rgba(221,0,0,.5);\n}\n/* Quote Threading */\n.threadContainer {\nmargin-left: 20px;\nborder-left: 1px solid rgba(128,128,128,.3);\n}\n.threadOP {\nclear: both;\n} \n\n/* File */\n.fileText:hover .fntrunc,\n.fileText:not(:hover) .fnfull,\n.expanded-image > .post > .file > .fileThumb > img[data-md5],\n:not(.expanded-image) > .post > .file > .fileThumb > .full-image {\ndisplay: none;\n}\n.expanding {\nopacity: .5;\n}\n:root.fit-height .full-image {\nmax-height: 100vh;\n}\n:root.fit-width .full-image {\nmax-width: 100%;\n}\n:root.gecko.fit-width .full-image {\nwidth: 100%;\n}\n#ihover {\n-moz-box-sizing: border-box;\nbox-sizing: border-box;\nmax-height: 100%;\nmax-width: 75%;\npadding-bottom: 16px;\n}\n.fappeTyme .thread > .noFile,\n.fappeTyme .threadContainer > .noFile {\ndisplay: none;\n}\n\n/* Index/Reply Navigation */\n#navlinks {\nfont-size: 16px;\ntop: 25px;\nright: 10px;\n}\n\n/* Filter */\n.opContainer.filter-highlight {\nbox-shadow: inset 5px 0 rgba(255, 0, 0, .5);\n}\n.filter-highlight > .reply {\nbox-shadow: -5px 0 rgba(255, 0, 0, .5);\n}\n\n/* Spoiler text */\n:root.reveal-spoilers s {\ncolor: white !important;\n}\n\n/* Thread & Reply Hiding */\n.hide-thread-button,\n.hide-reply-button {\nfloat: left;\nmargin-right: 2px;\n}\n.stub ~ * {\ndisplay: none !important;\n}\n.stub input {\ndisplay: inline-block;\n}\n\n/* QR */\n:root.hide-original-post-form #postForm,\n:root.hide-original-post-form .postingMode,\n:root.hide-original-post-form #togglePostForm,\n#qr.autohide:not(.has-focus):not(:hover) > form,\n.postingMode ~ #qr select,\n#file-n-submit:not(.has-file) #qr-filerm {\ndisplay: none;\n}\n#qr select,\n#dump-button,\n.remove,\n.captcha-img {\ncursor: pointer;\n}\n#qr {\nz-index: 20;\nposition: fixed;\npadding: 1px;\nborder: 1px solid transparent;\nmin-width: 300px;\nborder-radius: 3px 3px 0 0;\n}\n#qrtab {\nborder-radius: 3px 3px 0 0;\n}\n#qrtab {\nmargin-bottom: 1px;\n}\n#qr .close {\nfloat: right;\npadding: 0 3px;\n}\n#qr .warning {\nmin-height: 1.6em;\nvertical-align: middle;\npadding: 0 1px;\nborder-width: 1px;\nborder-style: solid;\n}\n.qr-link-container {\ntext-align: center;\n}\n.persona {\nwidth: 248px;\nmax-width: 100%;\nmin-width: 100%;\n}\n#dump-button {\nwidth: 10%;\nmargin: 0;\nmargin-right: 4px;\nfont: 13px sans-serif;\npadding: 1px 0px 2px;\nopacity: 0.6;\n}\n.persona .field:not(#dump) {\nwidth: 95px;\nmin-width: 33.3%;\nmax-width: 33.3%;\n}\n#qr textarea.field {\nheight: 14.8em;\nmin-height: 9em;\n}\n#qr.has-captcha textarea.field {\nheight: 9em;\n}\ninput.field.tripped:not(:hover):not(:focus) {\ncolor: transparent !important;\ntext-shadow: none !important;\n}\n#qr textarea {\nresize: both;\n}\n.captcha-img {\nmargin: 0px;\ntext-align: center;\nbackground-image: #fff;\nfont-size: 0px;\nmin-height: 59px;\nmin-width: 302px;\n}\n.captcha-input {\nwidth: 100%;\nmargin: 1px 0 0;\n}\n.captcha-input.error:focus {\nborder-color: rgb(255,0,0) !important;\n}\n.field {\n-moz-box-sizing: border-box;\nmargin: 0px;\npadding: 2px 4px 3px;\n}\n#qr textarea {\nmin-width: 100%;\n}\n#qr [type='submit'] {\nwidth: 25%;\nvertical-align: top;\n}\n:root.webkit #qr [type='submit'] {\nheight: 24px;\n}\n/* Fake File Input */\n#qr-filename,\n.has-file #qr-no-file {\ndisplay: none;\n}\n#qr-no-file,\n.has-file #qr-filename {\ndisplay: inline-block;\npadding: 0px 4px;\nmargin-bottom: 2px;\noverflow: hidden;\ntext-overflow: ellipsis;\nmax-width: 88%;\n}\n#qr-no-file {\ncolor: #AAA;\n}\n#qr-filename-container {\n-moz-box-sizing: border-box;\ndisplay: inline-block;\nposition: relative;\nwidth: 100px;\nmin-width: 74.6%;\nmax-width: 74.6%;\nmargin-right: 0.4%;\nmargin-top: 1px;\noverflow: hidden;\npadding: 2px 1px 0;\nheight: 22px;\n}\n#qr-filename-container:hover {\ncursor: text;\n}\n#qr-extras-container {\nposition: absolute;\nright: 0px;\n}\n#qr-filerm {\nmargin-right: 2px;\nz-index: 2;\n}\n#file-n-submit {\nheight: 23px;\n}\n#qr input[type=file] {\nvisibility: hidden;\nposition: absolute;\n}\n/* Thread Select / Spoiler Label */\n#qr select {\nfloat: right;\n}\n#qr.has-spoiler .has-file #qr-spoiler-label {\nwidth: 6.7%;\nmin-width: 6.7%;\nmax-width: 6.7%;\ndisplay: inline-block;\ntext-align: center;\nvertical-align: top;\n}\n#qr.has-spoiler #file-n-submit:not(.has-file) #qr-spoiler-label {\ndisplay: none;\n}\n#qr.has-spoiler .has-file #qr-filename-container {\nmax-width: 67.9%;\nmin-width: 67.9%;\n}\n#qr-spoiler-label input {\nposition: relative;\ntop: 3px;\n}\n/* Dumping UI */\n.dump #dump-list-container {\ndisplay: block;\n}\n#dump-list-container {\ndisplay: none;\nposition: relative;\noverflow-y: hidden;\nmargin-top: 1px;\n}\n#dump-list {\noverflow-x: auto;\noverflow-y: hidden;\nwhite-space: nowrap;\nwidth: 248px;\nmax-width: 100%;\nmin-width: 100%;\n}\n#dump-list:hover {\noverflow-x: auto;\n}\n.qr-preview {\n-moz-box-sizing: border-box;\ncounter-increment: thumbnails;\ncursor: move;\ndisplay: inline-block;\nheight: 90px;\nwidth: 90px;\npadding: 2px;\nopacity: .5;\noverflow: hidden;\nposition: relative;\ntext-shadow: 0 1px 1px #000;\n-moz-transition: opacity .25s ease-in-out;\nvertical-align: top;\nbackground-size: cover;\n}\n.qr-preview:hover,\n.qr-preview:focus {\nopacity: .9;\n}\n.qr-preview::before {\ncontent: counter(thumbnails);\ncolor: #fff;\nposition: absolute;\ntop: 3px;\nright: 3px;\ntext-shadow: 0 0 3px #000, 0 0 8px #000;\n}\n.qr-preview#selected {\nopacity: 1;\n}\n.qr-preview.drag {\nbox-shadow: 0 0 10px rgba(0,0,0,.5);\n}\n.qr-preview.over {\nborder-color: #fff;\n}\n.qr-preview > span {\ncolor: #fff;\n}\n.remove {\nbackground: none;\ncolor: #e00;\nfont-weight: 700;\npadding: 3px;\n}\na:only-of-type > .remove {\ndisplay: none;\n}\n.remove:hover::after {\ncontent: \" Remove\";\n}\n.qr-preview > label {\nbackground: rgba(0,0,0,.5);\ncolor: #fff;\nright: 0;\nbottom: 0;\nleft: 0;\nposition: absolute;\ntext-align: center;\n}\n.qr-preview > label > input {\nmargin: 0;\n}\n#add-post {\ncursor: pointer;\nfont-size: 2em;\nposition: absolute;\ntop: 50%;\nright: 10px;\n-moz-transform: translateY(-50%);\n}\n.textarea {\nposition: relative;\n}\n:root.webkit .textarea {\nmargin-bottom: -2px;\n}\n#char-count {\ncolor: #000;\nbackground: hsla(0, 0%, 100%, .5);\nfont-size: 8pt;\nposition: absolute;\nbottom: 1px;\nright: 1px;\npointer-events: none;\n}\n\n/* Menu */\n.menu-button {\ndisplay: inline-block;\nposition: relative;\ncursor: pointer;\n}\n.menu-button i {\nborder-top: 6px solid;\nborder-right: 4px solid transparent;\nborder-left: 4px solid transparent;\ndisplay: inline-block;\nmargin: 2px;\nvertical-align: middle;\n}\n#menu {\nposition: fixed;\noutline: none;\n}\n.entry {\nborder-bottom: 1px solid rgba(0,0,0,.25);\ncursor: pointer;\ndisplay: block;\noutline: none;\npadding: 3px 7px;\nposition: relative;\ntext-decoration: none;\nwhite-space: nowrap;\n}\n.left>.entry.has-submenu {\npadding-right: 17px !important;\n}\n.entry:last-child {\nborder-bottom: 0;\n}\n.has-submenu::after {\ncontent: \"\";\nborder-left: .5em solid;\nborder-top: .3em solid transparent;\nborder-bottom: .3em solid transparent;\ndisplay: inline-block;\nmargin: .3em;\nposition: absolute;\nright: 3px;\n}\n.left .has-submenu::after {\nborder-left: 0;\nborder-right: .5em solid;\n}\n.submenu {\ndisplay: none;\nposition: absolute;\nleft: 100%;\ntop: -1px;\n}\n.focused .submenu {\ndisplay: block;\n}\n.imp-exp-result {\nposition: absolute;\ntext-align: center;\nmargin: auto;\nright: 0px;\nleft: 0px;\nwidth: 200px;\n}\n.export, .import {\ncursor: pointer;\ntext-decoration: none !important;\n}\n/* Link Title Favicons */\n.linkify.YouTube {\nbackground: transparent url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAMCAYAAABr5z2BAAABIklEQVQoz53LvUrDUBjG8bOoOammSf1IoBSvoCB4JeIqOHgBLt6AIMRBBQelWurQ2kERnMRBsBUcIp5FJSBI5oQsJVkkUHh8W0o5nhaFHvjBgef/Mq+Q46RJBMkI/vE+aOus956tnEswIZe1LV0QyJ5sE2GzgZfVMtRNIdiDpccEssdlB1mW4bvTwdvWJtRdErM7U+8S/FJykCRJX5qm+KpVce8UMNLRLbulz4iSjTAMh6Iowsd5BeNadp3nUF0VlxAEwZBotXC0Usa4ll3meZdA1iguwvf9vpvDA2wvmKgYGtSud8suDB4TyGr2PF49D/vra9jRZ1BVdknMzgwuCGSnZEObwu6sBnVTCHZiaC7BhFx2PKdxUidiAH/4lLo9Mv0DELVs9qsOHXwAAAAASUVORK5CYII=') center left no-repeat!important;\npadding-left: 18px;\n}\n.linkify.Vimeo {\nbackground: transparent url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAadEVYdFNvZnR3YXJlAFBhaW50Lk5FVCB2My41LjEwMPRyoQAAASJJREFUOE9jYAAC7ln7/pODQXrBmq333PvPu/YaSRikB6QXbACpmmHqsRoAMll7+20UQ0H8tmuv/pdffPFfZtNNuByGASBFIPDh5x+4IV6HHoDFYGDJgw+YBoBMBUkgA5BtIKduuvvy//svX+FSB+88wTTAc+/t/83bj/0HScLA5BPXwc7lKJ36f+L6XXDxhUfOYxrAPWUnWKFp9UQUm3iWQxSDXAEDSX3zcIcB96wD/x+8eA1XDNKMHAYg20GW4Y0FkCIYAAUqzEBQOIBciRzlWKMxZelOlMCEcVxq+jHSC1YDJPs3YBgA8jey0/F6ARRwsFAHORukmat9NdbUijMpg/wKcrJodDFOzSBXwA3Alh9AToZFI7a8Asu98BxJbnYGAJb5vYLDANzSAAAAAElFTkSuQmCC') center left no-repeat!important;\npadding-left: 18px;\n}\n.linkify.SoundCloud {\nbackground: transparent url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABsklEQVQ4y5WTy2pUQRCGv2rbzDjJeAlIBmOyipGIIJqFEBDElwh4yULGeRFXPoEIBl/AvQ/gC2RnxCAoxijiwks852S6+3dxzslcHJCpTXVX11/Xv0097gLPgVNMJxnQNfX4zsqleWbnpoMf/oa9d988MM9MC/rp+E0a+A0dsVobMNMCOO8B6McRoABJI+A6gJmN3D2A8jgEBCEkSEMBrcrsDAzDWWn3AjgKFaDMmgRqniGFgsaDp1jrLOngDf1XT1D+A1dFc4MKAkkiCVKjjVu7g9+4Rzx4i1u6hjXbuMWr0O5QPNvCu7IaCZwEKQukLGDrm5x8uI0tr6MkiGlkiv7yLfzN+6S5i6QsIMABkEfcxhbWWYMkVAOjxvYAjc3HNHrbKI9VBQBFwF25XQKSBjqIf1YBuAurEMrczgDygD6/x2LCpFLXLUyQ+PoldphhBhYfIX09XU1+Flaukz7uYqs3SHs7cG4BmTsmkBUF9mmXEwa28BNLPaQPLepuNcbGSWQquQC2/Kdcox1FUGkcB0ykck1nA2+wTzMs8stGnP4rbWGw74EuS/GFQWfK7/wF6P4F7fzIAYkdmdEAAAAASUVORK5CYII=') center left no-repeat!important;\npadding-left: 18px;\n}\n.linkify.audio {\nbackground: transparent url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAadEVYdFNvZnR3YXJlAFBhaW50Lk5FVCB2My41LjEwMPRyoQAAAitJREFUOE9jYCAWKJWwavr0KyXWb/FIbDtUFFyzJx6nVofE2Xo5nXsj0rqPNSR0nVkR2Hjmgmfd+U9Otdf+m5Vf/6+SfeU/R9ChVVgNYDRtlfJuuPA/rPfe/4QpD/6nznj0P27Kw/9unff/69Xf+69c/+C/SO7N/0z+OAxgMmmRCe++/r9i3ev/KWvf/vdY8PK/bt/9/wrNV3/IN5y/IVt1YqNg4pGTTP4HsbuA2bhZ2qvpyn+xjIObxAp3VwqlrgngLFyryVy5nhPmZJHANS2cwYexG8BmVC/pWn3hP4NZlzWuQDJI3dIiFnUUuwEsQAOcq87jNcC7fHeLUtJxHF4AGmBWeAavAWH1+1rUUk7giAWjOknllON4DXAs2NEiG4/DBQxAF/CFHfrPYI4jDFSLuJVjNrUJhB/B7gIGo1pJRt99GAZYJK7wLJ1z7Xzl4vu/7aqv/GRBj0bjqAX2qb0nJ7mXH17C4HcUxQA+hymWtSue/C5a9up/9Ozn/7Vr7v1nRY7GqMb91T3b3v6vWvPmf/S0p/9ZQk+DDLCBRSOz06Jqk+o7/21nvfqvsebDf7kZL/5zBaxphkezd+OFn7HzXvz3Wvjmv9a8N//5Ek//ZTBpVYUrMG2X5wjcdl68+uI/wa5Lr3hSNjczGFeywOVZ/bbcVGp//F9izfv/Ql03f3P4LC/HSEQquYwMFnUCDJ7dzBhyjGZNQpye89M5gpfnMvtNUyE2h4PUAQBovvT7lyNljwAAAABJRU5ErkJggg==') center left no-repeat!important;\npadding-left: 18px;\n}\n.linkify.LiveLeak {\nbackground: transparent url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAadEVYdFNvZnR3YXJlAFBhaW50Lk5FVCB2My41LjEwMPRyoQAAAydJREFUOE9Nk1tIk2EYx79NyUNqTk0o6KYrnZeChodLDxfeZpCbJk4RXU5Nm7tYRYhiYXbQlaeGutyW2gxtpB1RIyKDEjKwA6Ti2dR5KNDn+fq/S6TBj/f93r3P732e53s/qfnkSdej4GB2SBLbwf+jmB+gUMgOheLg/z7EdCUnO6Ref392SpK8Hyh3I+gBwBo7lUp2xcbyQEoKD6alyQOpqd754/h4FjJXZCRJTl9ftmEzoK5/wdQJxPgkLY2WV1dpc2uLtnZ2eHNnhza3t2nd46GhjAzuValY6jx0iIfS03msoIDuQ9COQCtoUSjohU5HuwgaN5loeXycd3d3aW9vzwvW2K5SkdTi58fvzGb+3tdHFggA3QONEAzn59PvjQ1yqNX0zenkvX0B4ffWaGRraChJd/385JGqKvlzTw/fRqOaIGkEd1DjU52O/3g83BkTw5MOh7yJuUCUM2o0yi2hoSw1IIOhykr+YLNRHYKu4XQvyKA/N5c8yMCCDD7Z7bz26xcJ1rH2rKKCG0UJdRAMlJbyG6uVrkJQjWAB5tSbk0Nr2HwDgvcQiIYur6zQyvo6ucvLueHIEZKuQPBQr+dXra1kRuqXEOwFArtWSytra1QdFUVjNhvPLS3R3OIiLUDUD0F1WBhJJtwDW2Ehu5uaqBICI4IFlRB0QLCEzaboaHrd0cHzCBYsIIuesjK+LAQXkEFrXh676uupGCWcR6AeghLQptGQONUAwfOuLp6Zn6eZuTmaXVig7pISrhI90ENgQbdHhoep32JhFzLpu3WLio8epUYIfs7OUjF6UKJW88XERLqYkEBNej11oG8XhCAvMFAuOn5cNiclsTkhQTbhmpri4lgbEMANWi1DwC/xit3t7bK7rY0Fo4OD3G4wyEURESzloAdnceezlErK8vH5N4KzPj50PTOTfkxP0+THj/RlYoInJyZI8HVqim5qNFwQHk7SucBAPo2PKRMNPLM/4pnFszYkhJsNBu6uqWFHba1sr61lQSveQFZQkFx07BhJmhMnrLn4NLMPH/aSExR0QDbmWhwgyEapwDvXoDxdWBiXnjrV/Bdm2kYUxLwmEgAAAABJRU5ErkJggg==') center left no-repeat!important;\npadding-left: 18px;\n}\n.linkify.Vocaroo {\nbackground: transparent url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAadEVYdFNvZnR3YXJlAFBhaW50Lk5FVCB2My41LjEwMPRyoQAAAw9JREFUOE9jYMABuMwYmCyTJKUCGlSnFSy02TTzeOyCiQcDViX26qVz2TAyYtWmEMwuoZ3M7V40LcB79pHkc0svpvzY8jD//87nxf+3Pyn8v/ZO8v+VNyP/2mZJumI1QCWSI8232Hjumitlfw5+qPp/9l8TCt76JP//xkdx/wsXWCzjtWFkwTCkbWFe9plPk/+ga4Txz/xt/D/hkN//gMXif21a+NbyWjIwoRiy6GDT5rP/mlFsPfyp5n/NpOj/22+0gMUXXIz/H7hC/L/bFKFbPDZMrHAD5H35OPt2J9zacDv/f3V7xv9FhwrBGubsT/1//Pjx/1GJ/mD+/nfl/1v3Ovy3KRJNQbHdOlXCvOO03/+pm1P/v3v37n90hhtYw9HPtf8Xb2v937cmHswHeWPRxYj/LvkK3igGKARwicTO07118H3V/5kbi/4vPZMJtK3s/6YH2f+Pfq1B8VbjWrdnMu5s4nAD9CNFhKwz5DTUvLl419zKvAcLtG1P84BRl/b/5M/6/6f/NPzf/qzo84yj0Uus0xUU4Zor54bm9+4OfZG02OCuoAMTb9ZkC9ull1Nvrr2Z+XvRpaRfc65H/68F+jl9svEhzyLFWoccWVc+eyTHq/twydjlKRln7jX9bNMkMJnbhoFRL1xCqmKx6/yi2fYXa/c5/e846PV/5fW0/7OPx/yfcjzop34ulxdGGvDuU8mMXaX507lBuiN6ueadmQeT/p/93vf/1O+G//sP5fw/eL3o/5JLif8zVxs+Tlir9S26UyeFQQvJGBE7FvaFZ9LfN+1y+WjbItSb3GmXvXd15v8zroH/HxgE/D+aGPx/18vi/z07PeZNPRKxe/Kh0Ae8toxscCO4zBkYXArk9C1SxJUYjBkYPPIVtbbuTftz3cz//2O9wP/75iSAXdO72/dt2HL5F6YlfBW4MiJYXMiBiW3t7azHBx+V/t89N+H/8a+1//e9K/9attDp5LQjYX8SuvVL8RoAkmxa65299Erq1FnHo0qrl7t4BddriIs4MrM3rfWcFd+pGwVSAwBZ0bKP8yrZPAAAAABJRU5ErkJggg==') center left no-repeat!important;\npadding-left: 18px;\n}\n.linkify.pastebin {\nbackground: transparent url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAadEVYdFNvZnR3YXJlAFBhaW50Lk5FVCB2My41LjEwMPRyoQAAAtZJREFUOE+NU91LWmEc7sJtQew/2MUY7INg7CLY3W5GMHazyzEQo9UmfYxZTbAiVlgRqLMSZ+XnDC3z2+Y0+8JGakKZTtR0Tl2wtgtLLQh29cz3ZZ3h3Q68vOc95zzP73l+z+/U1f292O09DRxubxOH23P//1bvtQts3dPnry7LZnXJhcUl5Avf8dHtwY+fv2AyW5DOfIXFakMm+w0G4wISyRRm55TQG0y/Wzv6mikJ52Xf9TmVBoFAAD6fDwqFAqFQCJubmzCbzZiensbp6SmkUikikQi0Wi0kEgm6ewVaStDCfXPDandifn6egoaGhrCzswO1Wg2Hw4HBwUGk02kIBAL4/X4IhUJMTk6ii8dfYggy2RwymQzOz88Rj8dRLpexv7+PSqWCYDCIQqGAra0tJBIJrK2t0XdVAjNDEIl+wfj4OEqlEq2wt7dHrchkMmrBYDCAz+fTIjweD7FYrJbgIJOlgLOzM8jlcip1eXmZ2rFarVAqlRCLxcjlchCJRFRljYJYPAG32418Pg+n04lsNouVlRUcHh7C4/FQIOlHNBqlezgcJgQWxkIgGMbExASVNjY2hvX1dVo9mUzS5wREFLhcLrqTcw2B//M2RkdHodPp4PV6oVKpqH+SCom3v7+fNnF4eJiJusbCJ6+PviSyScakiaR5RIHRaKQpmEwmbAdCeD8zB6vdhebHT8SMhcUlC83bbrdTJRsbG3RwiCVCRNJJpDIoVeNNJJJQzKryV+rrmxiCtyNCCmaz2VhdXQWXy6XDpNfrodFoYLXZUTw+pk222Z3lW3ca26rgSwzBwqIZAwMDlITMAVEwNTVFR5fEJpK8Qyp1AJvDVbrTeLenCmxgfiZ22+urCtWHyu7uLp2wVCpFKx0dHaFYLOLk5KT6Y9kgk89kb95ubK0BX7A8a+1qannRLeW0daj/rU51S3tn9dypfvDw0QiLxbpX/Z7FVK7e/AEj4Wf24/2f5AAAAABJRU5ErkJggg==') center left no-repeat!important;\npadding-left: 18px;\n}\n.linkify.gist {\nbackground: transparent url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAk1JREFUeNqUkzuIE1EUhv955MnsbB6r4kYQLUQQFncV3SnCIqJsoWGDYOGjsIiCtY2Kla1sjLBIsFFcXJC1kaSwENQmXUQSRSUSjCQSTCbkbR4z47lXEgtBNwcu3DNzvvO8R8jlcj7LshKmaWqYQERRTAmCcEru9/sJr9er0QF92BJMAVGr1TQ6CeZAc7lcGAwGkyQAxpTLZU0eDoc8crfbRTgcRjAYRCQSYSmi1WpxY7fbjU6ng1gshmaziXg8zhnGIpVKWbquW9ls1mLZsaMoiqWq6lgnBxY55He/328Vi0XOMFZmqVMD4fF4QBAajcY48khY9JE4HA4enTGMFVkaTHmy+ZzD/5NSqYSNB484w1h55ODO3TVu4FXcWDywl24Cmp0e1WBhyuWELAtIf/qKUrWOONmev3Lpt4NRCXq1gplpBS/v3cDc0nGg9h1o1ZkfwO4Atu1B8cM7HLt8k37V/y5B2b4bJxf2Y+7oEbyJrkMvUjki0YYJ03LidfQxAt4dOHdCw5RdGZcgGobBlQtnV/BDr1GfDai7ZiHZZRi9PoY/e5SCCTUwC9gk1GmMh5YWOcNYkR4Sv1y9uAJbYB82N57h4OnDmN7phjQ0qUkWRJuB+TMaPn/5iFfvv+Ha7eucYey4iWw8q6tRJJNJ3Fp7ClUawEkViBTfkCR0YUNTVHD/4Tpm/P4/U2CeKpUKfD4fJDIMhUKEhP45St50XedZyLQY6Xw+v8AUemVb2oNqtYpCocCWKi2TLLfb7ReZTGZ+kmUi7i2VvfxLgAEAZChMriPcl+IAAAAASUVORK5CYII=') center left no-repeat!important;\npadding-left: 18px;\n}\n.linkify.image {\nbackground: transparent url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAadEVYdFNvZnR3YXJlAFBhaW50Lk5FVCB2My41LjEwMPRyoQAAAs5JREFUOE+lk/tvi1EYx98/xT8gW4REIpGFMEQWl2FiM9ZMZhm2xRAyOsmujFFmdFRHu0tWm87UypxStr69zPauN5e5rHVp3IYhbOvHy+wHEQlxkm+ek+d8nm9OznkeSfrfldmgJC7QyUlTymsJTfuTZ25z4HdWYwyLreYhtpgekGPw0+kKvo1Eo+IXRSIiEhkWZuc9tqnsJD9EqTUopCxjSGTpB0iueczSo1HyW8cpsExQ1DbxI2pt45j9cXpexul4FEd79RnZphAa/SD7WvuFtO6UItbU9LC+YQxNI2w0wwYT5LRAdhOU3oBTIXC9gXP3oUSGgz2vST3gYHejR0jptT1C332f8yrUEYHrz8CgxDnpm6DKCUfc0KnmXa/AEVPPwnDcD0cvetA2uYRk67Ive/lpjO7YBO1PPuF8Df3vwf4cbNE4tqdw7YVq8HYyHx6FvhE1hkMEg8HDUqvFkjT4aIjMqkqyqkswDSrcfBfH+Q561YLAZ/B+BLda6FXlU/cPv0AoEPhuoP1h4Av7Wbh9E/Py15NWWUjeSR3nZDfeN+N0DY9hG/7K1eGP3P0S5/EYRFUF/IOTBrUXHPm9fT6mr1xEwupkZqxbzLyiDJYUZ5NSnkdqdSHpxyrYdFpPgdmAsdfJwPMI/Yr65bf7tZLGGBQ7DNdJWFtIYvoOZmbuZE7OXpIKKli86zAr9p9gTVktWTVnKTI2U95uRWe3U2IJUDbVB5p6hVm5x5m9Vc/cnedZUNzC8lILaQesZBy6hEZ3maKzgvJWFzVWD9XtXvVGQbSWASFtMATVRlJIKbOTWtlJXaeXepuPM1f6MNp9GLt8mLvvYLmp0OhQ2Fwvk6m7xaqDTvY0eYWUVtcnllXfYlGpnfklVuraHHg8HjxuN+6fktUHlWWZPaZeUo/ILK0UKttBcbNbSB9GP0yLxWJJUxoZGUn80zD9C/vXQ/4NHY10h3M1zmQAAAAASUVORK5CYII=') center left no-repeat!important;\npadding-left: 18px;\n}\n.linkify.InstallGentoo {\nbackground: transparent url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAadEVYdFNvZnR3YXJlAFBhaW50Lk5FVCB2My41LjEwMPRyoQAAAklJREFUOE9jYEAAASBTCorZkcSRmTjVCDLziCwG4hfM3EIvGNm44oC6WNEM4WXi5FsEkmfhFX3BxMmfAJSHW9Qr55Px3aZp3X/btq3/hQydPzKysMcCFbBBDeFj4uBdqBJR/gskb1W34j+PmulLoJwbzBJJoMm7dNO7/ntMP/XfpW/v//SKvk+7tl7fvXfTpx5pCdWVSiHFv1wnHQbLi9sE/Wdk5SwBauaCGQB3gUPb5v+7Lr/8/+fvr/9fv/z+f+Pyr/9bV735l9Wy/79Dx/b/Nk0bsLoAHgbeAVHv/v77/f8f0IB7N7+cu3DuecK54z9+7lzz639e9pK/7HwSWMMA5BJwCJeXtOm/fvVj1fcfv369f//92cN7X6ZcPvf9x6Htv//vXP3r/+T245UEYgpskPTNq08LgN749/PH7/93rv/6f/rw7//nj//4f+bU0zQcUQwWBkdVbGz62y+fv3wHeeXrlz//H9798//qpY//M3KqfzGxc8djiWKwZnBUuWQ2/fr46fv/P39+///x/ff/d69//z97+s7fyMb5/+y7d2GLYriDZikFF/1qXXXj/4Pbv/8/f/jn/5MH316/eP6jVlBAaIt6VO1/jxmn/zv27P7Pp2HxEajLD90ra9Sj6/979O37X73w0n+vqOL/0lJyMVBFq0EGgDSD0oKAlu1/oHg4ugGzVCKqfouYuL1Xj676Iajr8AnJFricGqYc3Bw+Zi6BVUxsXLHAdL6QiYMPFNrwpIxHDsUhgtAMAopKDjQn4pPDF7P45QC4hSmc1eX8WgAAAABJRU5ErkJggg==') center left no-repeat!important;\npadding-left: 18px;\n}\n\n/* General */\n:root.yotsuba .dialog {\nbackground-color: #F0E0D6;\nborder-color: #D9BFB7;\n}\n:root.yotsuba .field:focus {\nborder-color: #EA8;\n}\n\n/* Header */\n:root.yotsuba #header-bar, :root.yotsuba #notifications {\nfont-size: 9pt;\ncolor: #B86;\n}\n:root.yotsuba #header-bar a, :root.yotsuba #notifications a {\ncolor: #800000;\n}\n\n/* Settings */\n:root.yotsuba #fourchanx-settings fieldset {\nborder-color: #D9BFB7;\n}\n\n/* Quote */\n:root.yotsuba .backlink.deadlink {\ncolor: #00E !important;\n}\n:root.yotsuba .inline {\nborder-color: #D9BFB7;\nbackground-color: rgba(255, 255, 255, .14);\n}\n\n/* QR */\n.yotsuba #dump-list::-webkit-scrollbar-thumb {\nbackground-color: #F0E0D6;\nborder-color: #D9BFB7;\n}\n:root.yotsuba .qr-preview {\nbackground-color: rgba(0, 0, 0, .15);\n}\n\n/* Menu */\n:root.yotsuba #menu {\ncolor: #800000;\n}\n:root.yotsuba .entry {\nborder-bottom: 1px solid #D9BFB7;\nfont-size: 10pt;\n}\n:root.yotsuba .focused.entry {\nbackground: rgba(255, 255, 255, .33);\n}\n\n/* Watcher Favicon */\n:root.yotsuba .watch-thread-link\n{\nbackground-image: url(\"data:image/svg+xml, \");\n}\n\n/* General */\n:root.yotsuba-b .dialog {\nbackground-color: #D6DAF0;\nborder-color: #B7C5D9;\n}\n:root.yotsuba-b .field:focus {\nborder-color: #98E;\n}\n\n/* Header */\n:root.yotsuba-b #header-bar, :root.yotsuba-b #notifications {\nfont-size: 9pt;\ncolor: #89A;\n}\n:root.yotsuba-b #header-bar a, :root.yotsuba-b #notifications a {\ncolor: #34345C;\n}\n\n/* Settings */\n:root.yotsuba-b #fourchanx-settings fieldset {\nborder-color: #B7C5D9;\n}\n\n/* Quote */\n:root.yotsuba-b .backlink.deadlink {\ncolor: #34345C !important;\n}\n:root.yotsuba-b .inline {\nborder-color: #B7C5D9;\nbackground-color: rgba(255, 255, 255, .14);\n}\n\n/* QR */\n.yotsuba-b #dump-list::-webkit-scrollbar-thumb {\nbackground-color: #D6DAF0;\nborder-color: #B7C5D9;\n}\n:root.yotsuba-b .qr-preview {\nbackground-color: rgba(0, 0, 0, .15);\n}\n\n/* Menu */\n:root.yotsuba-b #menu {\ncolor: #000;\n}\n:root.yotsuba-b .entry {\nborder-bottom: 1px solid #B7C5D9;\nfont-size: 10pt;\n}\n:root.yotsuba-b .focused.entry {\nbackground: rgba(255, 255, 255, .33);\n}\n\n/* Watcher Favicon */\n:root.yotsuba-b .watch-thread-link\n{\nbackground-image: url(\"data:image/svg+xml, \");\n}\n\n/* General */\n:root.futaba .dialog {\nbackground-color: #F0E0D6;\nborder-color: #D9BFB7;\n}\n:root.futaba .field:focus {\nborder-color: #EA8;\n}\n\n/* Header */\n:root.futaba #header-bar, :root.futaba #notifications {\nfont-size: 11pt;\ncolor: #B86;\n}\n:root.futaba #header-bar a, :root.futaba #notifications a {\ncolor: #800000;\n}\n\n/* Settings */\n:root.futaba #fourchanx-settings fieldset {\nborder-color: #D9BFB7;\n}\n\n/* Quote */\n:root.futaba .backlink.deadlink {\ncolor: #00E !important;\n}\n:root.futaba .inline {\nborder-color: #D9BFB7;\nbackground-color: rgba(255, 255, 255, .14);\n}\n\n/* QR */\n.futaba #dump-list::-webkit-scrollbar-thumb {\nbackground-color: #F0E0D6;\nborder-color: #D9BFB7;\n}\n:root.futaba .qr-preview {\nbackground-color: rgba(0, 0, 0, .15);\n}\n\n/* Menu */\n:root.futaba #menu {\ncolor: #800000;\n}\n:root.futaba .entry {\nborder-bottom: 1px solid #D9BFB7;\nfont-size: 12pt;\n}\n:root.futaba .focused.entry {\nbackground: rgba(255, 255, 255, .33);\n}\n\n/* Watcher Favicon */\n:root.futaba .watch-thread-link\n{\nbackground-image: url(\"data:image/svg+xml, \");\n}\n\n/* General */\n:root.burichan .dialog {\nbackground-color: #D6DAF0;\nborder-color: #B7C5D9;\n}\n:root.burichan .field:focus {\nborder-color: #98E;\n}\n\n/* Header */\n:root.burichan #header-bar, :root.burichan #header-bar #notifications {\nfont-size: 11pt;\ncolor: #89A;\n}\n:root.burichan #header-bar a, :root.burichan #header-bar #notifications a {\ncolor: #34345C;\n}\n\n/* Settings */\n:root.burichan #fourchanx-settings fieldset {\nborder-color: #B7C5D9;\n}\n\n/* Quote */\n:root.burichan .backlink.deadlink {\ncolor: #34345C !important;\n}\n:root.burichan .inline {\nborder-color: #B7C5D9;\nbackground-color: rgba(255, 255, 255, .14);\n}\n\n/* QR */\n.burichan #dump-list::-webkit-scrollbar-thumb {\nbackground-color: #D6DAF0;\nborder-color: #B7C5D9;\n}\n:root.burichan .qr-preview {\nbackground-color: rgba(0, 0, 0, .15);\n}\n\n/* Menu */\n:root.burichan #menu {\ncolor: #000000;\n}\n:root.burichan .entry {\nborder-bottom: 1px solid #B7C5D9;\nfont-size: 12pt;\n}\n:root.burichan .focused.entry {\nbackground: rgba(255, 255, 255, .33);\n}\n\n/* Watcher Favicon */\n:root.burichan .watch-thread-link\n{\nbackground-image: url(\"data:image/svg+xml, \");\n}\n\n/* General */\n:root.tomorrow .dialog {\nbackground-color: #282A2E;\nborder-color: #111;\n}\n\n/* Header */\n:root.tomorrow #header-bar, :root.tomorrow #notifications {\nfont-size: 9pt;\ncolor: #C5C8C6;\n}\n:root.tomorrow #header-bar a, :root.tomorrow #notifications a {\ncolor: #81A2BE;\n}\n\n/* Settings */\n:root.tomorrow #fourchanx-settings fieldset {\nborder-color: #111;\n}\n\n/* Quote */\n:root.tomorrow .backlink.deadlink {\ncolor: #81A2BE !important;\n}\n:root.tomorrow .inline {\nborder-color: #111;\nbackground-color: rgba(0, 0, 0, .14);\n}\n\n/* QR */\n.tomorrow #dump-list::-webkit-scrollbar-thumb {\nbackground-color: #282A2E;\nborder-color: #111;\n}\n:root.tomorrow .qr-preview {\nbackground-color: rgba(255, 255, 255, .15);\n}\n:root.tomorrow #qr .field {\nbackground-color: rgb(26, 27, 29);\ncolor: rgb(197,200,198);\nborder-color: rgb(40, 41, 42);\n}\n:root.tomorrow #qr .field:focus {\nborder-color: rgb(129, 162, 190) !important;\nbackground-color: rgb(30,32,36);\n}\n\n/* Menu */\n:root.tomorrow #menu {\ncolor: #C5C8C6;\n}\n:root.tomorrow .entry {\nborder-bottom: 1px solid #111;\nfont-size: 10pt;\n}\n:root.tomorrow .focused.entry {\nbackground: rgba(0, 0, 0, .33);\n}\n\n/* Watcher Favicon */\n:root.tomorrow .watch-thread-link\n{\nbackground-image: url(\"data:image/svg+xml, \");\n}\n\n/* General */\n:root.photon .dialog {\nbackground-color: #DDD;\nborder-color: #CCC;\n}\n:root.photon .field:focus {\nborder-color: #EA8;\n}\n\n/* Header */\n:root.photon #header-bar, :root.photon #notifications {\nfont-size: 9pt;\ncolor: #333;\n}\n:root.photon #header-bar a, :root.photon #notifications a {\ncolor: #FF6600;\n}\n\n/* Settings */\n:root.photon #fourchanx-settings fieldset {\nborder-color: #CCC;\n}\n\n/* Quote */\n:root.photon .backlink.deadlink {\ncolor: #F60 !important;\n}\n:root.photon .inline {\nborder-color: #CCC;\nbackground-color: rgba(255, 255, 255, .14);\n}\n\n/* QR */\n.photon #dump-list::-webkit-scrollbar-thumb {\nbackground-color: #DDD;\nborder-color: #CCC;\n}\n:root.photon .qr-preview {\nbackground-color: rgba(0, 0, 0, .15);\n}\n\n/* Menu */\n:root.photon #menu {\ncolor: #333;\n}\n:root.photon .entry {\nborder-bottom: 1px solid #CCC;\nfont-size: 10pt;\n}\n:root.photon .focused.entry {\nbackground: rgba(255, 255, 255, .33);\n}\n\n/* Watcher Favicon */\n:root.photon .watch-thread-link\n{\nbackground-image: url(\"data:image/svg+xml, \");\n}\n"
};
Main.init();
diff --git a/builds/crx/icon128.png b/builds/crx/icon128.png
old mode 100644
new mode 100755
diff --git a/builds/crx/icon16.png b/builds/crx/icon16.png
old mode 100644
new mode 100755
diff --git a/builds/crx/icon48.png b/builds/crx/icon48.png
old mode 100644
new mode 100755
diff --git a/builds/crx/manifest.json b/builds/crx/manifest.json
old mode 100644
new mode 100755
index c454f9717..80d16a9ca
--- a/builds/crx/manifest.json
+++ b/builds/crx/manifest.json
@@ -1,6 +1,6 @@
{
"name": "4chan X",
- "version": "1.2.25",
+ "version": "1.2.27",
"manifest_version": 2,
"description": "Cross-browser userscript for maximum lurking on 4chan.",
"icons": {
@@ -15,8 +15,7 @@
"run_at": "document_start"
}],
"homepage_url": "http://seaweedchan.github.io/4chan-x/",
- "minimum_chrome_version": "27",
- "minimum_opera_version": "15",
+ "minimum_chrome_version": "26",
"permissions": [
"storage"
]
diff --git a/builds/crx/script.js b/builds/crx/script.js
index 458fdd6ee..89c94910f 100644
--- a/builds/crx/script.js
+++ b/builds/crx/script.js
@@ -1,6 +1,6 @@
// Generated by CoffeeScript
/*
-* 4chan X - Version 1.2.25 - 2013-08-14
+* 4chan X - Version 1.2.27 - 2013-08-14
*
* Licensed under the MIT license.
* https://github.com/seaweedchan/4chan-x/blob/master/LICENSE
@@ -308,7 +308,7 @@
doc = d.documentElement;
g = {
- VERSION: '1.2.25',
+ VERSION: '1.2.27',
NAMESPACE: '4chan X.',
boards: {},
threads: {},
@@ -1607,7 +1607,7 @@
}
boardList = $.el('span', {
id: 'board-list',
- innerHTML: " - " + fourchannav.innerHTML + " "
+ innerHTML: " - " + fourchannav.innerHTML + " "
});
fullBoardList = $('#full-board-list', boardList);
btn = $('.hide-board-list-button', fullBoardList);
@@ -1818,7 +1818,7 @@
var shortcut;
shortcut = $.el('span', {
- className: 'shortcut fourchanx-link'
+ className: 'shortcut brackets-wrap'
});
$.add(shortcut, el);
return $.prepend(Header.shortcuts, shortcut);
@@ -1974,7 +1974,7 @@
container = $.el('div', {
id: "pc" + postID,
className: "postContainer " + (isOP ? 'op' : 'reply') + "Container",
- innerHTML: "" + (isOP ? '' : ">>
") + "" + (name || '') + " " + (tripcode + capcodeStart + capcode + userID + flag + sticky + closed) + " " + subject + "" + date + "No. " + postID + " " + (isOP ? fileHTML : '') + "
" + subject + "
" + emailStart + "" + (name || '') + " " + (tripcode + capcodeStart + emailEnd + capcode + userID + flag + sticky + closed) + " " + " " + "
" + date + " " + " " + "
No. " + postID + " " + (isOP ? '' : fileHTML) + "
" + (comment || '') + " " + " " + "
"
+ innerHTML: "" + (isOP ? '' : ">>
") + "" + (name || '') + " " + (tripcode + capcodeStart + capcode + userID + flag + sticky + closed) + " " + subject + "" + date + "No. " + postID + " " + (isOP ? fileHTML : '') + "
" + subject + "
" + emailStart + "" + (name || '') + " " + (tripcode + capcodeStart + emailEnd + capcode + userID + flag + sticky + closed) + " " + " " + "
" + date + " " + " " + "
No. " + postID + " " + (isOP ? '' : fileHTML) + "
" + (comment || '') + " " + " " + "
"
});
_ref = $$('.quotelink', container);
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
@@ -3267,7 +3267,7 @@
a = $.el('a', {
className: "" + type + "-reply-button",
- innerHTML: " " + (type === 'hide' ? '-' : '+') + " ",
+ innerHTML: " " + (type === 'hide' ? '-' : '+') + " ",
href: 'javascript:;'
});
$.on(a, 'click', PostHiding.toggle);
@@ -3621,7 +3621,7 @@
a = $.el('a', {
className: "" + type + "-thread-button",
- innerHTML: " " + (type === 'hide' ? '-' : '+') + " ",
+ innerHTML: " " + (type === 'hide' ? '-' : '+') + " ",
href: 'javascript:;'
});
a.dataset.fullID = thread.fullID;
@@ -6172,7 +6172,7 @@
QR.cooldown.auto = false;
QR.status();
return QR.error($.el('span', {
- innerHTML: "4chan X encountered an error while posting. Please try again.\n[? ]"
+ innerHTML: "4chan X encountered an error while posting. \n[Banned? ] [More info ]"
}));
}
};
@@ -7750,7 +7750,7 @@
className: 'disabled'
});
this.db = new DataBoard('watchedThreads', this.refresh, true);
- this.dialog = UI.dialog('thread-watcher', 'top: 50px; left: 0px;', "
");
+ this.dialog = UI.dialog('thread-watcher', 'top: 50px; left: 0px;', "
");
this.status = $('#watcher-status', this.dialog);
this.list = this.dialog.lastElementChild;
$.on(d, 'QRPostSuccessful', this.cb.post);
@@ -7800,7 +7800,7 @@
var toggler;
toggler = $.el('img', {
- className: 'watcher-toggler'
+ className: 'watch-thread-link'
});
$.on(toggler, 'click', ThreadWatcher.cb.toggle);
return $.before($('input', this.OP.nodes.post), toggler);
@@ -8032,7 +8032,7 @@
_ref2 = g.BOARD.threads;
for (threadID in _ref2) {
thread = _ref2[threadID];
- toggler = $('.watcher-toggler', thread.OP.nodes.post);
+ toggler = $('.watch-thread-link', thread.OP.nodes.post);
watched = ThreadWatcher.db.get({
boardID: thread.board.ID,
threadID: threadID
@@ -8737,7 +8737,7 @@
$.event('AddMenuEntry', entry);
$.on(entry.el, 'click', PSAHiding.toggle);
PSAHiding.btn = btn = $.el('a', {
- innerHTML: ' - ',
+ innerHTML: ' - ',
title: 'Hide announcement.',
className: 'hide-announcement',
href: 'javascript:;'
@@ -9959,7 +9959,7 @@
Report = {
init: function() {
- if (!(/report/.test(location.search) && !d.cookie.contains('pass_enabled=1'))) {
+ if (!/report/.test(location.search)) {
return;
}
return $.asap((function() {
@@ -10119,7 +10119,6 @@
}
return $.set({
archives: Conf['archives'],
- lastarchivecheck: now,
previousversion: g.VERSION
});
});
@@ -10752,26 +10751,8 @@
Main = {
init: function() {
- var db, flatten, pathname, _i, _len, _ref;
+ var db, flatten, _i, _len;
- pathname = location.pathname.split('/');
- g.BOARD = new Board(pathname[1]);
- if ((_ref = g.BOARD.ID) === 'z' || _ref === 'fk') {
- return;
- }
- g.VIEW = (function() {
- switch (pathname[2]) {
- case 'res':
- return 'thread';
- case 'catalog':
- return 'catalog';
- default:
- return 'index';
- }
- })();
- if (g.VIEW === 'thread') {
- g.THREADID = +pathname[3];
- }
flatten = function(parent, obj) {
var key, val;
@@ -10814,7 +10795,6 @@
}), Main.initStyle);
},
initFeatures: function() {
- Conf;
var init, pathname, _ref;
pathname = location.pathname.split('/');
@@ -11206,7 +11186,7 @@
}
return Main.thisPageIsLegit;
},
- css: "/* General */\n.dialog {\nbox-shadow: 0 1px 2px rgba(0, 0, 0, .15);\nborder: 1px solid;\ndisplay: block;\npadding: 0;\n}\n.captcha-img,\n.field {\nbackground-color: #FFF;\nborder: 1px solid #CCC;\n-moz-box-sizing: border-box;\nbox-sizing: border-box;\ncolor: #333;\nfont: 13px sans-serif;\noutline: none;\ntransition: color .25s, border-color .25s;\ntransition: color .25s, border-color .25s;\n}\n.field::-moz-placeholder,\n.field:hover::-moz-placeholder {\ncolor: #AAA !important;\nfont-size: 13px !important;\nopacity: 1.0 !important;\n}\n.captch-img:hover,\n.field:hover {\nborder-color: #999;\n}\n.field:hover, .field:focus {\ncolor: #000;\n}\n.field[disabled] {\nbackground-color: #F2F2F2;\ncolor: #888;\n}\n.move {\ncursor: move;\noverflow: hidden;\n}\nlabel,\n.watcher-toggler {\ncursor: pointer;\n}\na[href=\"javascript:;\"] {\ntext-decoration: none;\n}\n.warning {\ncolor: red;\n}\n#boardNavDesktop {\ndisplay: none !important;\n}\na {\noutline: none !important;\n}\n\n/* 4chan style fixes */\n.opContainer, .op {\ndisplay: block !important;\noverflow: visible !important;\n}\n[hidden] {\ndisplay: none !important;\n}\n\n/* fixed, z-index */\n#overlay,\n#fourchanx-settings,\n#qp, #ihover,\n#navlinks, .fixed #header-bar,\n:root.float #updater,\n:root.float #thread-stats,\n#qr {\nposition: fixed;\n}\n#fourchanx-settings {\nz-index: 999;\n}\n#overlay {\nz-index: 900;\n}\n#notifications {\nz-index: 70;\n}\n#qp, #ihover {\nz-index: 60;\n}\n#menu {\nz-index: 50;\n}\n#navlinks, #updater, #thread-stats {\nz-index: 40;\n}\n.fixed #header-bar.autohide {\nz-index: 35;\n}\n#qr {\nz-index: 30;\n}\n#thread-watcher {\nz-index: 8;\n}\n:root.fixed-watcher #thread-watcher {\nz-index: 20;\n}\n.fixed #header-bar {\nz-index: 10;\n}\n/* Header */\n.fixed.top body {\npadding-top: 2em;\n}\n.fixed.bottom body {\npadding-bottom: 2em;\n}\n.fixed #header-bar {\nright: 0;\nleft: 0;\npadding: 3px 4px 4px;\n}\n.fixed.top #header-bar {\ntop: 0;\n}\n.fixed.bottom #header-bar {\nbottom: 0;\n}\n#header-bar {\nborder-width: 0;\ntransition: all .1s .05s ease-in-out;\n}\n:root.centered-links #shortcuts {\nwidth: 300px;\ntext-align: right;\n}\n:root.centered-links #header-bar {\ntext-align: center;\n}\n:root.centered-links #custom-board-list {\nposition: relative;\nleft: 150px;\n}\n.fixed.top #header-bar {\nborder-bottom-width: 1px;\n}\n.fixed.bottom #header-bar {\nbox-shadow: 0 -1px 2px rgba(0, 0, 0, .15);\nborder-top-width: 1px;\n}\n.fixed.bottom #header-bar .menu-button i {\nborder-top: none;\nborder-bottom: 6px solid;\n}\n#board-list {\ntext-align: center;\n}\n.fixed #header-bar.autohide:not(:hover) {\nbox-shadow: none;\ntransition: all .8s .6s cubic-bezier(.55, .055, .675, .19);\n}\n.fixed.top #header-bar.autohide:not(:hover) {\nmargin-bottom: -1em;\n-webkit-transform: translateY(-100%);\ntransform: translateY(-100%);\n}\n.fixed.bottom #header-bar.autohide:not(:hover) {\n-webkit-transform: translateY(100%);\ntransform: translateY(100%);\n}\n#scroll-marker {\nleft: 0;\nright: 0;\nheight: 10px;\nposition: absolute;\n}\n:root:not(.autohide) #scroll-marker {\npointer-events: none;\n}\n#header-bar #scroll-marker {\ndisplay: none;\n}\n.fixed #header-bar #scroll-marker {\ndisplay: block;\n}\n.fixed.top #header-bar #scroll-marker {\ntop: 100%;\n}\n.fixed.bottom #header-bar #scroll-marker {\nbottom: 100%;\n}\n#header-bar a:not(.entry):not(.close) {\ntext-decoration: none;\npadding: 1px;\n}\n#header-bar input {\nmargin: 0;\nvertical-align: bottom;\n}\n#shortcuts:empty {\ndisplay: none;\n}\n.brackets-wrap::before {\ncontent: \"\\00a0[\";\n}\n.brackets-wrap::after {\ncontent: \"]\\00a0\";\n}\n.dead-thread,\n.disabled,\n.expand-all-shortcut {\nopacity: .45;\n}\n#shortcuts {\nfloat: right;\n}\n.shortcut {\nmargin-left: 3px;\n}\n#navbotright,\n#navtopright {\ndisplay: none;\n}\n#toggleMsgBtn {\ndisplay: none !important;\n}\n.current {\nfont-weight: bold;\n}\n/* 4chan X link brackets */\n.fourchanx-link::after {\ncontent: \"]\";\n}\n.fourchanx-link::before {\ncontent: \"[\";\n}\n/* Notifications */\n#notifications {\nposition: fixed;\ntop: 0;\nheight: 0;\ntext-align: center;\nright: 0;\nleft: 0;\ntransition: all .8s .6s cubic-bezier(.55, .055, .675, .19);\n}\n.fixed.top #header-bar #notifications {\nposition: absolute;\ntop: 100%;\n}\n.notification {\ncolor: #FFF;\nfont-weight: 700;\ntext-shadow: 0 1px 2px rgba(0, 0, 0, .5);\nbox-shadow: 0 1px 2px rgba(0, 0, 0, .15);\nborder-radius: 2px;\nmargin: 1px auto;\nwidth: 500px;\nmax-width: 100%;\nposition: relative;\ntransition: all .25s ease-in-out;\n}\n.notification.error {\nbackground-color: hsla(0, 100%, 38%, .9);\n}\n.notification.warning {\nbackground-color: hsla(36, 100%, 38%, .9);\n}\n.notification.info {\nbackground-color: hsla(200, 100%, 38%, .9);\n}\n.notification.success {\nbackground-color: hsla(104, 100%, 38%, .9);\n}\n.notification a {\ncolor: white;\n}\n.notification > .close {\npadding: 6px;\ntop: 0;\nright: 5px;\nposition: absolute;\n}\n.message {\n-moz-box-sizing: border-box;\nbox-sizing: border-box;\npadding: 6px 20px;\nmax-height: 200px;\nwidth: 100%;\noverflow: auto;\n}\n\n/* Settings */\n:root.fourchan-x body {\n-moz-box-sizing: border-box;\nbox-sizing: border-box;\n}\n#overlay {\nbackground-color: rgba(0, 0, 0, .5);\ntop: 0;\nleft: 0;\nheight: 100%;\nwidth: 100%;\n}\n#fourchanx-settings {\n-moz-box-sizing: border-box;\nbox-sizing: border-box;\nbox-shadow: 0 0 15px rgba(0, 0, 0, .15);\nheight: 600px;\nmax-height: 100%;\nwidth: 900px;\nmax-width: 100%;\nmargin: auto;\npadding: 3px;\ntop: 50%;\nleft: 50%;\n-moz-transform: translate(-50%, -50%);\n-webkit-transform: translate(-50%, -50%);\ntransform: translate(-50%, -50%);\n}\n#fourchanx-settings > nav {\npadding: 2px 2px 0;\nheight: 15px;\n}\n#fourchanx-settings > nav a {\ntext-decoration: underline;\n}\n#fourchanx-settings > nav a.close {\ntext-decoration: none;\npadding: 2px;\n}\n.section-container {\noverflow: auto;\nposition: absolute;\ntop: 2.1em;\nright: 5px;\nbottom: 5px;\nleft: 5px;\npadding-right: 5px;\n}\n.sections-list {\npadding: 0 3px;\nfloat: left;\n}\n.credits {\nfloat: right;\n}\n.tab-selected {\nfont-weight: 700;\n}\n.section-sauce ul,\n.section-advanced ul {\nlist-style: none;\nmargin: 0;\n}\n.section-sauce ul {\npadding: 8px;\n}\n.section-advanced ul {\npadding: 0px;\n}\n.section-sauce li,\n.section-advanced li {\npadding-left: 4px;\n}\n.section-main label {\ntext-decoration: underline;\n}\n.section-filter ul {\npadding: 0;\n}\n.section-filter li {\nmargin: 10px 40px;\n}\n.section-filter textarea {\nheight: 500px;\n}\n.section-sauce textarea {\nheight: 350px;\n}\n.section-advanced .field[name=\"boardnav\"] {\nwidth: 100%;\n}\n.section-advanced textarea {\nheight: 150px;\n}\n.section-advanced .archive-cell {\nmin-width: 160px;\ntext-align: center;\n}\n.section-advanced #archive-board-select {\nposition: absolute;\n}\n.section-advanced .note {\nfont-size: 0.8em;\nfont-style: italic;\nmargin-left: 10px;\n}\n.section-advanced .note code {\nfont-style: normal;\nfont-size: 11px;\n}\n.section-keybinds .field {\nfont-family: monospace;\n} \n#fourchanx-settings fieldset {\nborder: 1px solid;\nborder-radius: 3px;\n}\n#fourchanx-settings legend {\nfont-weight: 700;\n}\n#fourchanx-settings textarea {\nfont-family: monospace;\nmin-width: 100%;\nmax-width: 100%;\n}\n#fourchanx-settings code {\ncolor: #000;\nbackground-color: #FFF;\npadding: 0 2px;\n}\n.unscroll {\noverflow: hidden;\n}\n\n/* Announcement Hiding */\n:root.hide-announcement #globalMessage {\ndisplay: none;\n}\na.hide-announcement {\nfloat: left;\n}\n\n/* Unread */\n#unread-line {\nmargin: 0;\nborder-color: rgb(255,0,0);\n}\n\n/* Thread Updater */\n#updater {\nbackground: none;\nborder: none;\nbox-shadow: none;\n}\n#updater > .move {\npadding: 5px 3px 0px;\nmargin-bottom: -3px;\n}\n#updater > div:last-child {\ntext-align: center;\n}\n#updater input[type=number] {\nwidth: 4em;\n}\n:root.float #updater {\npadding: 0px 3px;\n}\n.new {\ncolor: limegreen;\n}\n#update-status.new {\nmargin-right: 5px;\n}\n#update-timer {\ncursor: pointer;\n}\n\n/* Thread Watcher */\n#thread-watcher {\nposition: absolute;\n}\n#thread-watcher {\npadding-bottom: 3px;\noverflow: hidden;\nwhite-space: nowrap;\nmin-width: 120px;\nmax-height: 92%;\noverflow-y: auto;\n}\n:root.fixed-watcher #thread-watcher {\nposition: fixed;\n}\n:root:not(.fixed-watcher) #thread-watcher:not(:hover) {\nmax-height: 210px;\noverflow-y: hidden;\n}\n#thread-watcher > .move {\npadding-top: 3px;\n}\n#thread-watcher > div {\nmax-width: 250px;\noverflow: hidden;\npadding-left: 3px;\npadding-right: 3px;\ntext-overflow: ellipsis;\n}\n#thread-watcher a {\ntext-decoration: none;\n}\n#thread-watcher .move>.close {\nposition: absolute;\nright: 0px;\ntop: 0px;\npadding: 0px 4px;\n}\n.watcher-toggler {\npadding-top: 18px;\nwidth: 18px;\nheight: 0px;\ndisplay: inline-block;\nbackground-repeat: no-repeat;\nopacity: 0.2;\nposition: relative;\ntop: 1px;\n}\n.watcher-toggler.watched {\nopacity: 1;\n}\n\n\n/* Thread Stats */\n#thread-stats {\nbackground: none;\nborder: none;\nbox-shadow: none;\n}\n:root.float #post-count, :root.float #file-count {\npointer-events: none;\n}\n:root.float #thread-stats {\npadding: 0px 3px;\n}\n\n/* Quote */\n.deadlink {\ntext-decoration: none !important;\n}\n.backlink.deadlink:not(.forwardlink),\n.quotelink.deadlink:not(.forwardlink) {\ntext-decoration: underline !important;\n}\n.inlined {\nopacity: .5;\n}\n#qp input, .forwarded {\ndisplay: none;\n}\n.quotelink.forwardlink,\n.backlink.forwardlink {\ntext-decoration: none;\nborder-bottom: 1px dashed;\n}\n.filtered {\ntext-decoration: underline line-through;\n}\n:root.hide-backlinks .backlink.filtered {\ndisplay: none;\n}\n.inline {\nborder: 1px solid;\ndisplay: table;\nmargin: 2px 0;\n}\n.inline .post {\nborder: 0 !important;\nbackground-color: transparent !important;\ndisplay: table !important;\nmargin: 0 !important;\npadding: 1px 2px !important;\n}\n#qp > .opContainer::after {\ncontent: '';\nclear: both;\ndisplay: table;\n}\n#qp .post {\nborder: none;\nmargin: 0;\npadding: 2px 2px 5px;\n}\n#qp img {\nmax-height: 80vh;\nmax-width: 50vw;\n}\n.qphl {\noutline: 2px solid rgba(216, 94, 49, .7);\n}\n:root.highlight-own .yourPost > .reply,\n:root.highlight-you .quotesYou > .reply {\nborder-left: 2px solid rgba(221,0,0,.5);\n}\n/* Quote Threading */\n.threadContainer {\nmargin-left: 20px;\nborder-left: 1px solid rgba(128,128,128,.3);\n}\n.threadOP {\nclear: both;\n} \n\n/* File */\n.fileText:hover .fntrunc,\n.fileText:not(:hover) .fnfull,\n.expanded-image > .post > .file > .fileThumb > img[data-md5],\n:not(.expanded-image) > .post > .file > .fileThumb > .full-image {\ndisplay: none;\n}\n.expanding {\nopacity: .5;\n}\n:root.fit-height .full-image {\nmax-height: 100vh;\n}\n:root.fit-width .full-image {\nmax-width: 100%;\n}\n:root.gecko.fit-width .full-image {\nwidth: 100%;\n}\n#ihover {\n-moz-box-sizing: border-box;\nbox-sizing: border-box;\nmax-height: 100%;\nmax-width: 75%;\npadding-bottom: 16px;\n}\n.fappeTyme .thread > .noFile,\n.fappeTyme .threadContainer > .noFile {\ndisplay: none;\n}\n\n/* Index/Reply Navigation */\n#navlinks {\nfont-size: 16px;\ntop: 25px;\nright: 10px;\n}\n\n/* Filter */\n.opContainer.filter-highlight {\nbox-shadow: inset 5px 0 rgba(255, 0, 0, .5);\n}\n.filter-highlight > .reply {\nbox-shadow: -5px 0 rgba(255, 0, 0, .5);\n}\n\n/* Spoiler text */\n:root.reveal-spoilers s {\ncolor: white !important;\n}\n\n/* Thread & Reply Hiding */\n.hide-thread-button,\n.hide-reply-button {\nfloat: left;\nmargin-right: 2px;\n}\n.stub ~ * {\ndisplay: none !important;\n}\n.stub input {\ndisplay: inline-block;\n}\n\n/* QR */\n:root.hide-original-post-form #postForm,\n:root.hide-original-post-form .postingMode,\n:root.hide-original-post-form #togglePostForm,\n#qr.autohide:not(.has-focus):not(:hover) > form,\n.postingMode ~ #qr select,\n#file-n-submit:not(.has-file) #qr-filerm {\ndisplay: none;\n}\n#qr select,\n#dump-button,\n.remove,\n.captcha-img {\ncursor: pointer;\n}\n#qr {\nz-index: 20;\nposition: fixed;\npadding: 1px;\nborder: 1px solid transparent;\nmin-width: 300px;\nborder-radius: 3px 3px 0 0;\n}\n#qrtab {\nborder-radius: 3px 3px 0 0;\n}\n#qrtab {\nmargin-bottom: 1px;\n}\n#qr .close {\nfloat: right;\npadding: 0 3px;\n}\n#qr .warning {\nmin-height: 1.6em;\nvertical-align: middle;\npadding: 0 1px;\nborder-width: 1px;\nborder-style: solid;\n}\n.qr-link-container {\ntext-align: center;\n}\n.persona {\nwidth: 248px;\nmax-width: 100%;\nmin-width: 100%;\n}\n#dump-button {\nwidth: 10%;\nmargin: 0;\nmargin-right: 4px;\nfont: 13px sans-serif;\npadding: 1px 0px 2px;\nopacity: 0.6;\n}\n.persona .field:not(#dump) {\nwidth: 95px;\nmin-width: 33.3%;\nmax-width: 33.3%;\n}\n#qr textarea.field {\nheight: 14.8em;\nmin-height: 9em;\n}\n#qr.has-captcha textarea.field {\nheight: 9em;\n}\ninput.field.tripped:not(:hover):not(:focus) {\ncolor: transparent !important;\ntext-shadow: none !important;\n}\n#qr textarea {\nresize: both;\n}\n.captcha-img {\nmargin: 0px;\ntext-align: center;\nbackground-image: #fff;\nfont-size: 0px;\nmin-height: 59px;\nmin-width: 302px;\n}\n.captcha-input {\nwidth: 100%;\nmargin: 1px 0 0;\n}\n.captcha-input.error:focus {\nborder-color: rgb(255,0,0) !important;\n}\n.field {\n-moz-box-sizing: border-box;\nmargin: 0px;\npadding: 2px 4px 3px;\n}\n#qr textarea {\nmin-width: 100%;\n}\n#qr [type='submit'] {\nwidth: 25%;\nvertical-align: top;\n}\n:root.webkit #qr [type='submit'] {\nheight: 24px;\n}\n/* Fake File Input */\n#qr-filename,\n.has-file #qr-no-file {\ndisplay: none;\n}\n#qr-no-file,\n.has-file #qr-filename {\ndisplay: inline-block;\npadding: 0px 4px;\nmargin-bottom: 2px;\noverflow: hidden;\ntext-overflow: ellipsis;\nmax-width: 88%;\n}\n#qr-no-file {\ncolor: #AAA;\n}\n#qr-filename-container {\n-moz-box-sizing: border-box;\ndisplay: inline-block;\nposition: relative;\nwidth: 100px;\nmin-width: 74.6%;\nmax-width: 74.6%;\nmargin-right: 0.4%;\nmargin-top: 1px;\noverflow: hidden;\npadding: 2px 1px 0;\nheight: 22px;\n}\n#qr-filename-container:hover {\ncursor: text;\n}\n#qr-extras-container {\nposition: absolute;\nright: 0px;\n}\n#qr-filerm {\nmargin-right: 2px;\nz-index: 2;\n}\n#file-n-submit {\nheight: 23px;\n}\n#qr input[type=file] {\nvisibility: hidden;\nposition: absolute;\n}\n/* Thread Select / Spoiler Label */\n#qr select {\nfloat: right;\n}\n#qr.has-spoiler .has-file #qr-spoiler-label {\nwidth: 6.7%;\nmin-width: 6.7%;\nmax-width: 6.7%;\ndisplay: inline-block;\ntext-align: center;\nvertical-align: top;\n}\n#qr.has-spoiler #file-n-submit:not(.has-file) #qr-spoiler-label {\ndisplay: none;\n}\n#qr.has-spoiler .has-file #qr-filename-container {\nmax-width: 67.9%;\nmin-width: 67.9%;\n}\n#qr-spoiler-label input {\nposition: relative;\ntop: 3px;\n}\n/* Dumping UI */\n.dump #dump-list-container {\ndisplay: block;\n}\n#dump-list-container {\ndisplay: none;\nposition: relative;\noverflow-y: hidden;\nmargin-top: 1px;\n}\n#dump-list {\noverflow-x: auto;\noverflow-y: hidden;\nwhite-space: nowrap;\nwidth: 248px;\nmax-width: 100%;\nmin-width: 100%;\n}\n#dump-list:hover {\noverflow-x: auto;\n}\n.qr-preview {\n-moz-box-sizing: border-box;\ncounter-increment: thumbnails;\ncursor: move;\ndisplay: inline-block;\nheight: 90px;\nwidth: 90px;\npadding: 2px;\nopacity: .5;\noverflow: hidden;\nposition: relative;\ntext-shadow: 0 1px 1px #000;\n-moz-transition: opacity .25s ease-in-out;\nvertical-align: top;\nbackground-size: cover;\n}\n.qr-preview:hover,\n.qr-preview:focus {\nopacity: .9;\n}\n.qr-preview::before {\ncontent: counter(thumbnails);\ncolor: #fff;\nposition: absolute;\ntop: 3px;\nright: 3px;\ntext-shadow: 0 0 3px #000, 0 0 8px #000;\n}\n.qr-preview#selected {\nopacity: 1;\n}\n.qr-preview.drag {\nbox-shadow: 0 0 10px rgba(0,0,0,.5);\n}\n.qr-preview.over {\nborder-color: #fff;\n}\n.qr-preview > span {\ncolor: #fff;\n}\n.remove {\nbackground: none;\ncolor: #e00;\nfont-weight: 700;\npadding: 3px;\n}\na:only-of-type > .remove {\ndisplay: none;\n}\n.remove:hover::after {\ncontent: \" Remove\";\n}\n.qr-preview > label {\nbackground: rgba(0,0,0,.5);\ncolor: #fff;\nright: 0;\nbottom: 0;\nleft: 0;\nposition: absolute;\ntext-align: center;\n}\n.qr-preview > label > input {\nmargin: 0;\n}\n#add-post {\ncursor: pointer;\nfont-size: 2em;\nposition: absolute;\ntop: 50%;\nright: 10px;\n-moz-transform: translateY(-50%);\n}\n.textarea {\nposition: relative;\n}\n:root.webkit .textarea {\nmargin-bottom: -2px;\n}\n#char-count {\ncolor: #000;\nbackground: hsla(0, 0%, 100%, .5);\nfont-size: 8pt;\nposition: absolute;\nbottom: 1px;\nright: 1px;\npointer-events: none;\n}\n\n/* Menu */\n.menu-button {\ndisplay: inline-block;\nposition: relative;\ncursor: pointer;\n}\n.menu-button i {\nborder-top: 6px solid;\nborder-right: 4px solid transparent;\nborder-left: 4px solid transparent;\ndisplay: inline-block;\nmargin: 2px;\nvertical-align: middle;\n}\n#menu {\nposition: fixed;\noutline: none;\n}\n.entry {\nborder-bottom: 1px solid rgba(0,0,0,.25);\ncursor: pointer;\ndisplay: block;\noutline: none;\npadding: 3px 7px;\nposition: relative;\ntext-decoration: none;\nwhite-space: nowrap;\n}\n.left>.entry.has-submenu {\npadding-right: 17px !important;\n}\n.entry:last-child {\nborder-bottom: 0;\n}\n.has-submenu::after {\ncontent: \"\";\nborder-left: .5em solid;\nborder-top: .3em solid transparent;\nborder-bottom: .3em solid transparent;\ndisplay: inline-block;\nmargin: .3em;\nposition: absolute;\nright: 3px;\n}\n.left .has-submenu::after {\nborder-left: 0;\nborder-right: .5em solid;\n}\n.submenu {\ndisplay: none;\nposition: absolute;\nleft: 100%;\ntop: -1px;\n}\n.focused .submenu {\ndisplay: block;\n}\n.imp-exp-result {\nposition: absolute;\ntext-align: center;\nmargin: auto;\nright: 0px;\nleft: 0px;\nwidth: 200px;\n}\n.export, .import {\ncursor: pointer;\ntext-decoration: none !important;\n}\n/* Link Title Favicons */\n.linkify.YouTube {\nbackground: transparent url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAMCAYAAABr5z2BAAABIklEQVQoz53LvUrDUBjG8bOoOammSf1IoBSvoCB4JeIqOHgBLt6AIMRBBQelWurQ2kERnMRBsBUcIp5FJSBI5oQsJVkkUHh8W0o5nhaFHvjBgef/Mq+Q46RJBMkI/vE+aOus956tnEswIZe1LV0QyJ5sE2GzgZfVMtRNIdiDpccEssdlB1mW4bvTwdvWJtRdErM7U+8S/FJykCRJX5qm+KpVce8UMNLRLbulz4iSjTAMh6Iowsd5BeNadp3nUF0VlxAEwZBotXC0Usa4ll3meZdA1iguwvf9vpvDA2wvmKgYGtSud8suDB4TyGr2PF49D/vra9jRZ1BVdknMzgwuCGSnZEObwu6sBnVTCHZiaC7BhFx2PKdxUidiAH/4lLo9Mv0DELVs9qsOHXwAAAAASUVORK5CYII=') center left no-repeat!important;\npadding-left: 18px;\n}\n.linkify.Vimeo {\nbackground: transparent url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAadEVYdFNvZnR3YXJlAFBhaW50Lk5FVCB2My41LjEwMPRyoQAAASJJREFUOE9jYAAC7ln7/pODQXrBmq333PvPu/YaSRikB6QXbACpmmHqsRoAMll7+20UQ0H8tmuv/pdffPFfZtNNuByGASBFIPDh5x+4IV6HHoDFYGDJgw+YBoBMBUkgA5BtIKduuvvy//svX+FSB+88wTTAc+/t/83bj/0HScLA5BPXwc7lKJ36f+L6XXDxhUfOYxrAPWUnWKFp9UQUm3iWQxSDXAEDSX3zcIcB96wD/x+8eA1XDNKMHAYg20GW4Y0FkCIYAAUqzEBQOIBciRzlWKMxZelOlMCEcVxq+jHSC1YDJPs3YBgA8jey0/F6ARRwsFAHORukmat9NdbUijMpg/wKcrJodDFOzSBXwA3Alh9AToZFI7a8Asu98BxJbnYGAJb5vYLDANzSAAAAAElFTkSuQmCC') center left no-repeat!important;\npadding-left: 18px;\n}\n.linkify.SoundCloud {\nbackground: transparent url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABsklEQVQ4y5WTy2pUQRCGv2rbzDjJeAlIBmOyipGIIJqFEBDElwh4yULGeRFXPoEIBl/AvQ/gC2RnxCAoxijiwks852S6+3dxzslcHJCpTXVX11/Xv0097gLPgVNMJxnQNfX4zsqleWbnpoMf/oa9d988MM9MC/rp+E0a+A0dsVobMNMCOO8B6McRoABJI+A6gJmN3D2A8jgEBCEkSEMBrcrsDAzDWWn3AjgKFaDMmgRqniGFgsaDp1jrLOngDf1XT1D+A1dFc4MKAkkiCVKjjVu7g9+4Rzx4i1u6hjXbuMWr0O5QPNvCu7IaCZwEKQukLGDrm5x8uI0tr6MkiGlkiv7yLfzN+6S5i6QsIMABkEfcxhbWWYMkVAOjxvYAjc3HNHrbKI9VBQBFwF25XQKSBjqIf1YBuAurEMrczgDygD6/x2LCpFLXLUyQ+PoldphhBhYfIX09XU1+Flaukz7uYqs3SHs7cG4BmTsmkBUF9mmXEwa28BNLPaQPLepuNcbGSWQquQC2/Kdcox1FUGkcB0ykck1nA2+wTzMs8stGnP4rbWGw74EuS/GFQWfK7/wF6P4F7fzIAYkdmdEAAAAASUVORK5CYII=') center left no-repeat!important;\npadding-left: 18px;\n}\n.linkify.audio {\nbackground: transparent url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAadEVYdFNvZnR3YXJlAFBhaW50Lk5FVCB2My41LjEwMPRyoQAAAitJREFUOE9jYCAWKJWwavr0KyXWb/FIbDtUFFyzJx6nVofE2Xo5nXsj0rqPNSR0nVkR2Hjmgmfd+U9Otdf+m5Vf/6+SfeU/R9ChVVgNYDRtlfJuuPA/rPfe/4QpD/6nznj0P27Kw/9unff/69Xf+69c/+C/SO7N/0z+OAxgMmmRCe++/r9i3ev/KWvf/vdY8PK/bt/9/wrNV3/IN5y/IVt1YqNg4pGTTP4HsbuA2bhZ2qvpyn+xjIObxAp3VwqlrgngLFyryVy5nhPmZJHANS2cwYexG8BmVC/pWn3hP4NZlzWuQDJI3dIiFnUUuwEsQAOcq87jNcC7fHeLUtJxHF4AGmBWeAavAWH1+1rUUk7giAWjOknllON4DXAs2NEiG4/DBQxAF/CFHfrPYI4jDFSLuJVjNrUJhB/B7gIGo1pJRt99GAZYJK7wLJ1z7Xzl4vu/7aqv/GRBj0bjqAX2qb0nJ7mXH17C4HcUxQA+hymWtSue/C5a9up/9Ozn/7Vr7v1nRY7GqMb91T3b3v6vWvPmf/S0p/9ZQk+DDLCBRSOz06Jqk+o7/21nvfqvsebDf7kZL/5zBaxphkezd+OFn7HzXvz3Wvjmv9a8N//5Ek//ZTBpVYUrMG2X5wjcdl68+uI/wa5Lr3hSNjczGFeywOVZ/bbcVGp//F9izfv/Ql03f3P4LC/HSEQquYwMFnUCDJ7dzBhyjGZNQpye89M5gpfnMvtNUyE2h4PUAQBovvT7lyNljwAAAABJRU5ErkJggg==') center left no-repeat!important;\npadding-left: 18px;\n}\n.linkify.LiveLeak {\nbackground: transparent url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAadEVYdFNvZnR3YXJlAFBhaW50Lk5FVCB2My41LjEwMPRyoQAAAydJREFUOE9Nk1tIk2EYx79NyUNqTk0o6KYrnZeChodLDxfeZpCbJk4RXU5Nm7tYRYhiYXbQlaeGutyW2gxtpB1RIyKDEjKwA6Ti2dR5KNDn+fq/S6TBj/f93r3P732e53s/qfnkSdej4GB2SBLbwf+jmB+gUMgOheLg/z7EdCUnO6Ref392SpK8Hyh3I+gBwBo7lUp2xcbyQEoKD6alyQOpqd754/h4FjJXZCRJTl9ftmEzoK5/wdQJxPgkLY2WV1dpc2uLtnZ2eHNnhza3t2nd46GhjAzuValY6jx0iIfS03msoIDuQ9COQCtoUSjohU5HuwgaN5loeXycd3d3aW9vzwvW2K5SkdTi58fvzGb+3tdHFggA3QONEAzn59PvjQ1yqNX0zenkvX0B4ffWaGRraChJd/385JGqKvlzTw/fRqOaIGkEd1DjU52O/3g83BkTw5MOh7yJuUCUM2o0yi2hoSw1IIOhykr+YLNRHYKu4XQvyKA/N5c8yMCCDD7Z7bz26xcJ1rH2rKKCG0UJdRAMlJbyG6uVrkJQjWAB5tSbk0Nr2HwDgvcQiIYur6zQyvo6ucvLueHIEZKuQPBQr+dXra1kRuqXEOwFArtWSytra1QdFUVjNhvPLS3R3OIiLUDUD0F1WBhJJtwDW2Ehu5uaqBICI4IFlRB0QLCEzaboaHrd0cHzCBYsIIuesjK+LAQXkEFrXh676uupGCWcR6AeghLQptGQONUAwfOuLp6Zn6eZuTmaXVig7pISrhI90ENgQbdHhoep32JhFzLpu3WLio8epUYIfs7OUjF6UKJW88XERLqYkEBNej11oG8XhCAvMFAuOn5cNiclsTkhQTbhmpri4lgbEMANWi1DwC/xit3t7bK7rY0Fo4OD3G4wyEURESzloAdnceezlErK8vH5N4KzPj50PTOTfkxP0+THj/RlYoInJyZI8HVqim5qNFwQHk7SucBAPo2PKRMNPLM/4pnFszYkhJsNBu6uqWFHba1sr61lQSveQFZQkFx07BhJmhMnrLn4NLMPH/aSExR0QDbmWhwgyEapwDvXoDxdWBiXnjrV/Bdm2kYUxLwmEgAAAABJRU5ErkJggg==') center left no-repeat!important;\npadding-left: 18px;\n}\n.linkify.Vocaroo {\nbackground: transparent url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAadEVYdFNvZnR3YXJlAFBhaW50Lk5FVCB2My41LjEwMPRyoQAAAw9JREFUOE9jYMABuMwYmCyTJKUCGlSnFSy02TTzeOyCiQcDViX26qVz2TAyYtWmEMwuoZ3M7V40LcB79pHkc0svpvzY8jD//87nxf+3Pyn8v/ZO8v+VNyP/2mZJumI1QCWSI8232Hjumitlfw5+qPp/9l8TCt76JP//xkdx/wsXWCzjtWFkwTCkbWFe9plPk/+ga4Txz/xt/D/hkN//gMXif21a+NbyWjIwoRiy6GDT5rP/mlFsPfyp5n/NpOj/22+0gMUXXIz/H7hC/L/bFKFbPDZMrHAD5H35OPt2J9zacDv/f3V7xv9FhwrBGubsT/1//Pjx/1GJ/mD+/nfl/1v3Ovy3KRJNQbHdOlXCvOO03/+pm1P/v3v37n90hhtYw9HPtf8Xb2v937cmHswHeWPRxYj/LvkK3igGKARwicTO07118H3V/5kbi/4vPZMJtK3s/6YH2f+Pfq1B8VbjWrdnMu5s4nAD9CNFhKwz5DTUvLl419zKvAcLtG1P84BRl/b/5M/6/6f/NPzf/qzo84yj0Uus0xUU4Zor54bm9+4OfZG02OCuoAMTb9ZkC9ull1Nvrr2Z+XvRpaRfc65H/68F+jl9svEhzyLFWoccWVc+eyTHq/twydjlKRln7jX9bNMkMJnbhoFRL1xCqmKx6/yi2fYXa/c5/e846PV/5fW0/7OPx/yfcjzop34ulxdGGvDuU8mMXaX507lBuiN6ueadmQeT/p/93vf/1O+G//sP5fw/eL3o/5JLif8zVxs+Tlir9S26UyeFQQvJGBE7FvaFZ9LfN+1y+WjbItSb3GmXvXd15v8zroH/HxgE/D+aGPx/18vi/z07PeZNPRKxe/Kh0Ae8toxscCO4zBkYXArk9C1SxJUYjBkYPPIVtbbuTftz3cz//2O9wP/75iSAXdO72/dt2HL5F6YlfBW4MiJYXMiBiW3t7azHBx+V/t89N+H/8a+1//e9K/9attDp5LQjYX8SuvVL8RoAkmxa65299Erq1FnHo0qrl7t4BddriIs4MrM3rfWcFd+pGwVSAwBZ0bKP8yrZPAAAAABJRU5ErkJggg==') center left no-repeat!important;\npadding-left: 18px;\n}\n.linkify.pastebin {\nbackground: transparent url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAadEVYdFNvZnR3YXJlAFBhaW50Lk5FVCB2My41LjEwMPRyoQAAAtZJREFUOE+NU91LWmEc7sJtQew/2MUY7INg7CLY3W5GMHazyzEQo9UmfYxZTbAiVlgRqLMSZ+XnDC3z2+Y0+8JGakKZTtR0Tl2wtgtLLQh29cz3ZZ3h3Q68vOc95zzP73l+z+/U1f292O09DRxubxOH23P//1bvtQts3dPnry7LZnXJhcUl5Avf8dHtwY+fv2AyW5DOfIXFakMm+w0G4wISyRRm55TQG0y/Wzv6mikJ52Xf9TmVBoFAAD6fDwqFAqFQCJubmzCbzZiensbp6SmkUikikQi0Wi0kEgm6ewVaStDCfXPDandifn6egoaGhrCzswO1Wg2Hw4HBwUGk02kIBAL4/X4IhUJMTk6ii8dfYggy2RwymQzOz88Rj8dRLpexv7+PSqWCYDCIQqGAra0tJBIJrK2t0XdVAjNDEIl+wfj4OEqlEq2wt7dHrchkMmrBYDCAz+fTIjweD7FYrJbgIJOlgLOzM8jlcip1eXmZ2rFarVAqlRCLxcjlchCJRFRljYJYPAG32418Pg+n04lsNouVlRUcHh7C4/FQIOlHNBqlezgcJgQWxkIgGMbExASVNjY2hvX1dVo9mUzS5wREFLhcLrqTcw2B//M2RkdHodPp4PV6oVKpqH+SCom3v7+fNnF4eJiJusbCJ6+PviSyScakiaR5RIHRaKQpmEwmbAdCeD8zB6vdhebHT8SMhcUlC83bbrdTJRsbG3RwiCVCRNJJpDIoVeNNJJJQzKryV+rrmxiCtyNCCmaz2VhdXQWXy6XDpNfrodFoYLXZUTw+pk222Z3lW3ca26rgSwzBwqIZAwMDlITMAVEwNTVFR5fEJpK8Qyp1AJvDVbrTeLenCmxgfiZ22+urCtWHyu7uLp2wVCpFKx0dHaFYLOLk5KT6Y9kgk89kb95ubK0BX7A8a+1qannRLeW0daj/rU51S3tn9dypfvDw0QiLxbpX/Z7FVK7e/AEj4Wf24/2f5AAAAABJRU5ErkJggg==') center left no-repeat!important;\npadding-left: 18px;\n}\n.linkify.gist {\nbackground: transparent url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAk1JREFUeNqUkzuIE1EUhv955MnsbB6r4kYQLUQQFncV3SnCIqJsoWGDYOGjsIiCtY2Kla1sjLBIsFFcXJC1kaSwENQmXUQSRSUSjCQSTCbkbR4z47lXEgtBNwcu3DNzvvO8R8jlcj7LshKmaWqYQERRTAmCcEru9/sJr9er0QF92BJMAVGr1TQ6CeZAc7lcGAwGkyQAxpTLZU0eDoc8crfbRTgcRjAYRCQSYSmi1WpxY7fbjU6ng1gshmaziXg8zhnGIpVKWbquW9ls1mLZsaMoiqWq6lgnBxY55He/328Vi0XOMFZmqVMD4fF4QBAajcY48khY9JE4HA4enTGMFVkaTHmy+ZzD/5NSqYSNB484w1h55ODO3TVu4FXcWDywl24Cmp0e1WBhyuWELAtIf/qKUrWOONmev3Lpt4NRCXq1gplpBS/v3cDc0nGg9h1o1ZkfwO4Atu1B8cM7HLt8k37V/y5B2b4bJxf2Y+7oEbyJrkMvUjki0YYJ03LidfQxAt4dOHdCw5RdGZcgGobBlQtnV/BDr1GfDai7ZiHZZRi9PoY/e5SCCTUwC9gk1GmMh5YWOcNYkR4Sv1y9uAJbYB82N57h4OnDmN7phjQ0qUkWRJuB+TMaPn/5iFfvv+Ha7eucYey4iWw8q6tRJJNJ3Fp7ClUawEkViBTfkCR0YUNTVHD/4Tpm/P4/U2CeKpUKfD4fJDIMhUKEhP45St50XedZyLQY6Xw+v8AUemVb2oNqtYpCocCWKi2TLLfb7ReZTGZ+kmUi7i2VvfxLgAEAZChMriPcl+IAAAAASUVORK5CYII=') center left no-repeat!important;\npadding-left: 18px;\n}\n.linkify.image {\nbackground: transparent url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAadEVYdFNvZnR3YXJlAFBhaW50Lk5FVCB2My41LjEwMPRyoQAAAs5JREFUOE+lk/tvi1EYx98/xT8gW4REIpGFMEQWl2FiM9ZMZhm2xRAyOsmujFFmdFRHu0tWm87UypxStr69zPauN5e5rHVp3IYhbOvHy+wHEQlxkm+ek+d8nm9OznkeSfrfldmgJC7QyUlTymsJTfuTZ25z4HdWYwyLreYhtpgekGPw0+kKvo1Eo+IXRSIiEhkWZuc9tqnsJD9EqTUopCxjSGTpB0iueczSo1HyW8cpsExQ1DbxI2pt45j9cXpexul4FEd79RnZphAa/SD7WvuFtO6UItbU9LC+YQxNI2w0wwYT5LRAdhOU3oBTIXC9gXP3oUSGgz2vST3gYHejR0jptT1C332f8yrUEYHrz8CgxDnpm6DKCUfc0KnmXa/AEVPPwnDcD0cvetA2uYRk67Ive/lpjO7YBO1PPuF8Df3vwf4cbNE4tqdw7YVq8HYyHx6FvhE1hkMEg8HDUqvFkjT4aIjMqkqyqkswDSrcfBfH+Q561YLAZ/B+BLda6FXlU/cPv0AoEPhuoP1h4Av7Wbh9E/Py15NWWUjeSR3nZDfeN+N0DY9hG/7K1eGP3P0S5/EYRFUF/IOTBrUXHPm9fT6mr1xEwupkZqxbzLyiDJYUZ5NSnkdqdSHpxyrYdFpPgdmAsdfJwPMI/Yr65bf7tZLGGBQ7DNdJWFtIYvoOZmbuZE7OXpIKKli86zAr9p9gTVktWTVnKTI2U95uRWe3U2IJUDbVB5p6hVm5x5m9Vc/cnedZUNzC8lILaQesZBy6hEZ3maKzgvJWFzVWD9XtXvVGQbSWASFtMATVRlJIKbOTWtlJXaeXepuPM1f6MNp9GLt8mLvvYLmp0OhQ2Fwvk6m7xaqDTvY0eYWUVtcnllXfYlGpnfklVuraHHg8HjxuN+6fktUHlWWZPaZeUo/ILK0UKttBcbNbSB9GP0yLxWJJUxoZGUn80zD9C/vXQ/4NHY10h3M1zmQAAAAASUVORK5CYII=') center left no-repeat!important;\npadding-left: 18px;\n}\n.linkify.InstallGentoo {\nbackground: transparent url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAadEVYdFNvZnR3YXJlAFBhaW50Lk5FVCB2My41LjEwMPRyoQAAAklJREFUOE9jYEAAASBTCorZkcSRmTjVCDLziCwG4hfM3EIvGNm44oC6WNEM4WXi5FsEkmfhFX3BxMmfAJSHW9Qr55Px3aZp3X/btq3/hQydPzKysMcCFbBBDeFj4uBdqBJR/gskb1W34j+PmulLoJwbzBJJoMm7dNO7/ntMP/XfpW/v//SKvk+7tl7fvXfTpx5pCdWVSiHFv1wnHQbLi9sE/Wdk5SwBauaCGQB3gUPb5v+7Lr/8/+fvr/9fv/z+f+Pyr/9bV735l9Wy/79Dx/b/Nk0bsLoAHgbeAVHv/v77/f8f0IB7N7+cu3DuecK54z9+7lzz639e9pK/7HwSWMMA5BJwCJeXtOm/fvVj1fcfv369f//92cN7X6ZcPvf9x6Htv//vXP3r/+T245UEYgpskPTNq08LgN749/PH7/93rv/6f/rw7//nj//4f+bU0zQcUQwWBkdVbGz62y+fv3wHeeXrlz//H9798//qpY//M3KqfzGxc8djiWKwZnBUuWQ2/fr46fv/P39+///x/ff/d69//z97+s7fyMb5/+y7d2GLYriDZikFF/1qXXXj/4Pbv/8/f/jn/5MH316/eP6jVlBAaIt6VO1/jxmn/zv27P7Pp2HxEajLD90ra9Sj6/979O37X73w0n+vqOL/0lJyMVBFq0EGgDSD0oKAlu1/oHg4ugGzVCKqfouYuL1Xj676Iajr8AnJFricGqYc3Bw+Zi6BVUxsXLHAdL6QiYMPFNrwpIxHDsUhgtAMAopKDjQn4pPDF7P45QC4hSmc1eX8WgAAAABJRU5ErkJggg==') center left no-repeat!important;\npadding-left: 18px;\n}\n\n/* General */\n:root.yotsuba .dialog {\nbackground-color: #F0E0D6;\nborder-color: #D9BFB7;\n}\n:root.yotsuba .field:focus {\nborder-color: #EA8;\n}\n\n/* Header */\n:root.yotsuba #header-bar, :root.yotsuba #notifications {\nfont-size: 9pt;\ncolor: #B86;\n}\n:root.yotsuba #header-bar a, :root.yotsuba #notifications a {\ncolor: #800000;\n}\n\n/* Settings */\n:root.yotsuba #fourchanx-settings fieldset {\nborder-color: #D9BFB7;\n}\n\n/* Quote */\n:root.yotsuba .backlink.deadlink {\ncolor: #00E !important;\n}\n:root.yotsuba .inline {\nborder-color: #D9BFB7;\nbackground-color: rgba(255, 255, 255, .14);\n}\n\n/* QR */\n.yotsuba #dump-list::-webkit-scrollbar-thumb {\nbackground-color: #F0E0D6;\nborder-color: #D9BFB7;\n}\n:root.yotsuba .qr-preview {\nbackground-color: rgba(0, 0, 0, .15);\n}\n\n/* Menu */\n:root.yotsuba #menu {\ncolor: #800000;\n}\n:root.yotsuba .entry {\nborder-bottom: 1px solid #D9BFB7;\nfont-size: 10pt;\n}\n:root.yotsuba .focused.entry {\nbackground: rgba(255, 255, 255, .33);\n}\n\n/* Watcher Favicon */\n:root.yotsuba .watcher-toggler\n{\nbackground-image: url(\"data:image/svg+xml, \");\n}\n\n/* General */\n:root.yotsuba-b .dialog {\nbackground-color: #D6DAF0;\nborder-color: #B7C5D9;\n}\n:root.yotsuba-b .field:focus {\nborder-color: #98E;\n}\n\n/* Header */\n:root.yotsuba-b #header-bar, :root.yotsuba-b #notifications {\nfont-size: 9pt;\ncolor: #89A;\n}\n:root.yotsuba-b #header-bar a, :root.yotsuba-b #notifications a {\ncolor: #34345C;\n}\n\n/* Settings */\n:root.yotsuba-b #fourchanx-settings fieldset {\nborder-color: #B7C5D9;\n}\n\n/* Quote */\n:root.yotsuba-b .backlink.deadlink {\ncolor: #34345C !important;\n}\n:root.yotsuba-b .inline {\nborder-color: #B7C5D9;\nbackground-color: rgba(255, 255, 255, .14);\n}\n\n/* QR */\n.yotsuba-b #dump-list::-webkit-scrollbar-thumb {\nbackground-color: #D6DAF0;\nborder-color: #B7C5D9;\n}\n:root.yotsuba-b .qr-preview {\nbackground-color: rgba(0, 0, 0, .15);\n}\n\n/* Menu */\n:root.yotsuba-b #menu {\ncolor: #000;\n}\n:root.yotsuba-b .entry {\nborder-bottom: 1px solid #B7C5D9;\nfont-size: 10pt;\n}\n:root.yotsuba-b .focused.entry {\nbackground: rgba(255, 255, 255, .33);\n}\n\n/* Watcher Favicon */\n:root.yotsuba-b .watcher-toggler\n{\nbackground-image: url(\"data:image/svg+xml, \");\n}\n\n/* General */\n:root.futaba .dialog {\nbackground-color: #F0E0D6;\nborder-color: #D9BFB7;\n}\n:root.futaba .field:focus {\nborder-color: #EA8;\n}\n\n/* Header */\n:root.futaba #header-bar, :root.futaba #notifications {\nfont-size: 11pt;\ncolor: #B86;\n}\n:root.futaba #header-bar a, :root.futaba #notifications a {\ncolor: #800000;\n}\n\n/* Settings */\n:root.futaba #fourchanx-settings fieldset {\nborder-color: #D9BFB7;\n}\n\n/* Quote */\n:root.futaba .backlink.deadlink {\ncolor: #00E !important;\n}\n:root.futaba .inline {\nborder-color: #D9BFB7;\nbackground-color: rgba(255, 255, 255, .14);\n}\n\n/* QR */\n.futaba #dump-list::-webkit-scrollbar-thumb {\nbackground-color: #F0E0D6;\nborder-color: #D9BFB7;\n}\n:root.futaba .qr-preview {\nbackground-color: rgba(0, 0, 0, .15);\n}\n\n/* Menu */\n:root.futaba #menu {\ncolor: #800000;\n}\n:root.futaba .entry {\nborder-bottom: 1px solid #D9BFB7;\nfont-size: 12pt;\n}\n:root.futaba .focused.entry {\nbackground: rgba(255, 255, 255, .33);\n}\n\n/* Watcher Favicon */\n:root.futaba .watcher-toggler\n{\nbackground-image: url(\"data:image/svg+xml, \");\n}\n\n/* General */\n:root.burichan .dialog {\nbackground-color: #D6DAF0;\nborder-color: #B7C5D9;\n}\n:root.burichan .field:focus {\nborder-color: #98E;\n}\n\n/* Header */\n:root.burichan #header-bar, :root.burichan #header-bar #notifications {\nfont-size: 11pt;\ncolor: #89A;\n}\n:root.burichan #header-bar a, :root.burichan #header-bar #notifications a {\ncolor: #34345C;\n}\n\n/* Settings */\n:root.burichan #fourchanx-settings fieldset {\nborder-color: #B7C5D9;\n}\n\n/* Quote */\n:root.burichan .backlink.deadlink {\ncolor: #34345C !important;\n}\n:root.burichan .inline {\nborder-color: #B7C5D9;\nbackground-color: rgba(255, 255, 255, .14);\n}\n\n/* QR */\n.burichan #dump-list::-webkit-scrollbar-thumb {\nbackground-color: #D6DAF0;\nborder-color: #B7C5D9;\n}\n:root.burichan .qr-preview {\nbackground-color: rgba(0, 0, 0, .15);\n}\n\n/* Menu */\n:root.burichan #menu {\ncolor: #000000;\n}\n:root.burichan .entry {\nborder-bottom: 1px solid #B7C5D9;\nfont-size: 12pt;\n}\n:root.burichan .focused.entry {\nbackground: rgba(255, 255, 255, .33);\n}\n\n/* Watcher Favicon */\n:root.burichan .watcher-toggler\n{\nbackground-image: url(\"data:image/svg+xml, \");\n}\n\n/* General */\n:root.tomorrow .dialog {\nbackground-color: #282A2E;\nborder-color: #111;\n}\n\n/* Header */\n:root.tomorrow #header-bar, :root.tomorrow #notifications {\nfont-size: 9pt;\ncolor: #C5C8C6;\n}\n:root.tomorrow #header-bar a, :root.tomorrow #notifications a {\ncolor: #81A2BE;\n}\n\n/* Settings */\n:root.tomorrow #fourchanx-settings fieldset {\nborder-color: #111;\n}\n\n/* Quote */\n:root.tomorrow .backlink.deadlink {\ncolor: #81A2BE !important;\n}\n:root.tomorrow .inline {\nborder-color: #111;\nbackground-color: rgba(0, 0, 0, .14);\n}\n\n/* QR */\n.tomorrow #dump-list::-webkit-scrollbar-thumb {\nbackground-color: #282A2E;\nborder-color: #111;\n}\n:root.tomorrow .qr-preview {\nbackground-color: rgba(255, 255, 255, .15);\n}\n:root.tomorrow #qr .field {\nbackground-color: rgb(26, 27, 29);\ncolor: rgb(197,200,198);\nborder-color: rgb(40, 41, 42);\n}\n:root.tomorrow #qr .field:focus {\nborder-color: rgb(129, 162, 190) !important;\nbackground-color: rgb(30,32,36);\n}\n\n/* Menu */\n:root.tomorrow #menu {\ncolor: #C5C8C6;\n}\n:root.tomorrow .entry {\nborder-bottom: 1px solid #111;\nfont-size: 10pt;\n}\n:root.tomorrow .focused.entry {\nbackground: rgba(0, 0, 0, .33);\n}\n\n/* Watcher Favicon */\n:root.tomorrow .watcher-toggler\n{\nbackground-image: url(\"data:image/svg+xml, \");\n}\n\n/* General */\n:root.photon .dialog {\nbackground-color: #DDD;\nborder-color: #CCC;\n}\n:root.photon .field:focus {\nborder-color: #EA8;\n}\n\n/* Header */\n:root.photon #header-bar, :root.photon #notifications {\nfont-size: 9pt;\ncolor: #333;\n}\n:root.photon #header-bar a, :root.photon #notifications a {\ncolor: #FF6600;\n}\n\n/* Settings */\n:root.photon #fourchanx-settings fieldset {\nborder-color: #CCC;\n}\n\n/* Quote */\n:root.photon .backlink.deadlink {\ncolor: #F60 !important;\n}\n:root.photon .inline {\nborder-color: #CCC;\nbackground-color: rgba(255, 255, 255, .14);\n}\n\n/* QR */\n.photon #dump-list::-webkit-scrollbar-thumb {\nbackground-color: #DDD;\nborder-color: #CCC;\n}\n:root.photon .qr-preview {\nbackground-color: rgba(0, 0, 0, .15);\n}\n\n/* Menu */\n:root.photon #menu {\ncolor: #333;\n}\n:root.photon .entry {\nborder-bottom: 1px solid #CCC;\nfont-size: 10pt;\n}\n:root.photon .focused.entry {\nbackground: rgba(255, 255, 255, .33);\n}\n\n/* Watcher Favicon */\n:root.photon .watcher-toggler\n{\nbackground-image: url(\"data:image/svg+xml, \");\n}\n"
+ css: "/* General */\n.dialog {\nbox-shadow: 0 1px 2px rgba(0, 0, 0, .15);\nborder: 1px solid;\ndisplay: block;\npadding: 0;\n}\n.captcha-img,\n.field {\nbackground-color: #FFF;\nborder: 1px solid #CCC;\n-moz-box-sizing: border-box;\nbox-sizing: border-box;\ncolor: #333;\nfont: 13px sans-serif;\noutline: none;\ntransition: color .25s, border-color .25s;\ntransition: color .25s, border-color .25s;\n}\n.field::-moz-placeholder,\n.field:hover::-moz-placeholder {\ncolor: #AAA !important;\nfont-size: 13px !important;\nopacity: 1.0 !important;\n}\n.captch-img:hover,\n.field:hover {\nborder-color: #999;\n}\n.field:hover, .field:focus {\ncolor: #000;\n}\n.field[disabled] {\nbackground-color: #F2F2F2;\ncolor: #888;\n}\n.move {\ncursor: move;\noverflow: hidden;\n}\nlabel,\n.watch-thread-link {\ncursor: pointer;\n}\na[href=\"javascript:;\"] {\ntext-decoration: none;\n}\n.warning {\ncolor: red;\n}\n#boardNavDesktop {\ndisplay: none !important;\n}\na {\noutline: none !important;\n}\n\n/* 4chan style fixes */\n.opContainer, .op {\ndisplay: block !important;\noverflow: visible !important;\n}\n[hidden] {\ndisplay: none !important;\n}\n\n/* fixed, z-index */\n#overlay,\n#fourchanx-settings,\n#qp, #ihover,\n#navlinks, .fixed #header-bar,\n:root.float #updater,\n:root.float #thread-stats,\n#qr {\nposition: fixed;\n}\n#fourchanx-settings {\nz-index: 999;\n}\n#overlay {\nz-index: 900;\n}\n#notifications {\nz-index: 70;\n}\n#qp, #ihover {\nz-index: 60;\n}\n#menu {\nz-index: 50;\n}\n#navlinks, #updater, #thread-stats {\nz-index: 40;\n}\n.fixed #header-bar.autohide {\nz-index: 35;\n}\n#qr {\nz-index: 30;\n}\n#thread-watcher {\nz-index: 8;\n}\n:root.fixed-watcher #thread-watcher {\nz-index: 20;\n}\n.fixed #header-bar {\nz-index: 10;\n}\n/* Header */\n.fixed.top body {\npadding-top: 2em;\n}\n.fixed.bottom body {\npadding-bottom: 2em;\n}\n.fixed #header-bar {\nright: 0;\nleft: 0;\npadding: 3px 4px 4px;\n}\n.fixed.top #header-bar {\ntop: 0;\n}\n.fixed.bottom #header-bar {\nbottom: 0;\n}\n#header-bar {\nborder-width: 0;\ntransition: all .1s .05s ease-in-out;\n}\n:root.centered-links #shortcuts {\nwidth: 300px;\ntext-align: right;\n}\n:root.centered-links #header-bar {\ntext-align: center;\n}\n:root.centered-links #custom-board-list {\nposition: relative;\nleft: 150px;\n}\n.fixed.top #header-bar {\nborder-bottom-width: 1px;\n}\n.fixed.bottom #header-bar {\nbox-shadow: 0 -1px 2px rgba(0, 0, 0, .15);\nborder-top-width: 1px;\n}\n.fixed.bottom #header-bar .menu-button i {\nborder-top: none;\nborder-bottom: 6px solid;\n}\n#board-list {\ntext-align: center;\n}\n.fixed #header-bar.autohide:not(:hover) {\nbox-shadow: none;\ntransition: all .8s .6s cubic-bezier(.55, .055, .675, .19);\n}\n.fixed.top #header-bar.autohide:not(:hover) {\nmargin-bottom: -1em;\n-webkit-transform: translateY(-100%);\ntransform: translateY(-100%);\n}\n.fixed.bottom #header-bar.autohide:not(:hover) {\n-webkit-transform: translateY(100%);\ntransform: translateY(100%);\n}\n#scroll-marker {\nleft: 0;\nright: 0;\nheight: 10px;\nposition: absolute;\n}\n:root:not(.autohide) #scroll-marker {\npointer-events: none;\n}\n#header-bar #scroll-marker {\ndisplay: none;\n}\n.fixed #header-bar #scroll-marker {\ndisplay: block;\n}\n.fixed.top #header-bar #scroll-marker {\ntop: 100%;\n}\n.fixed.bottom #header-bar #scroll-marker {\nbottom: 100%;\n}\n#header-bar a:not(.entry):not(.close) {\ntext-decoration: none;\npadding: 1px;\n}\n#header-bar input {\nmargin: 0;\nvertical-align: bottom;\n}\n#shortcuts:empty {\ndisplay: none;\n}\n.brackets-wrap::before {\ncontent: \"\\00a0[\";\n}\n.brackets-wrap::after {\ncontent: \"]\\00a0\";\n}\n.dead-thread,\n.disabled,\n.expand-all-shortcut {\nopacity: .45;\n}\n#shortcuts {\nfloat: right;\n}\n.shortcut {\nmargin-left: 3px;\n}\n#navbotright,\n#navtopright {\ndisplay: none;\n}\n#toggleMsgBtn {\ndisplay: none !important;\n}\n.current {\nfont-weight: bold;\n}\n/* 4chan X link brackets */\n.brackets-wrap::after {\ncontent: \"]\";\n}\n.brackets-wrap::before {\ncontent: \"[\";\n}\n/* Notifications */\n#notifications {\nposition: fixed;\ntop: 0;\nheight: 0;\ntext-align: center;\nright: 0;\nleft: 0;\ntransition: all .8s .6s cubic-bezier(.55, .055, .675, .19);\n}\n.fixed.top #header-bar #notifications {\nposition: absolute;\ntop: 100%;\n}\n.notification {\ncolor: #FFF;\nfont-weight: 700;\ntext-shadow: 0 1px 2px rgba(0, 0, 0, .5);\nbox-shadow: 0 1px 2px rgba(0, 0, 0, .15);\nborder-radius: 2px;\nmargin: 1px auto;\nwidth: 500px;\nmax-width: 100%;\nposition: relative;\ntransition: all .25s ease-in-out;\n}\n.notification.error {\nbackground-color: hsla(0, 100%, 38%, .9);\n}\n.notification.warning {\nbackground-color: hsla(36, 100%, 38%, .9);\n}\n.notification.info {\nbackground-color: hsla(200, 100%, 38%, .9);\n}\n.notification.success {\nbackground-color: hsla(104, 100%, 38%, .9);\n}\n.notification a {\ncolor: white;\n}\n.notification > .close {\npadding: 6px;\ntop: 0;\nright: 5px;\nposition: absolute;\n}\n.message {\n-moz-box-sizing: border-box;\nbox-sizing: border-box;\npadding: 6px 20px;\nmax-height: 200px;\nwidth: 100%;\noverflow: auto;\n}\n\n/* Settings */\n:root.fourchan-x body {\n-moz-box-sizing: border-box;\nbox-sizing: border-box;\n}\n#overlay {\nbackground-color: rgba(0, 0, 0, .5);\ntop: 0;\nleft: 0;\nheight: 100%;\nwidth: 100%;\n}\n#fourchanx-settings {\n-moz-box-sizing: border-box;\nbox-sizing: border-box;\nbox-shadow: 0 0 15px rgba(0, 0, 0, .15);\nheight: 600px;\nmax-height: 100%;\nwidth: 900px;\nmax-width: 100%;\nmargin: auto;\npadding: 3px;\ntop: 50%;\nleft: 50%;\n-moz-transform: translate(-50%, -50%);\n-webkit-transform: translate(-50%, -50%);\ntransform: translate(-50%, -50%);\n}\n#fourchanx-settings > nav {\npadding: 2px 2px 0;\nheight: 15px;\n}\n#fourchanx-settings > nav a {\ntext-decoration: underline;\n}\n#fourchanx-settings > nav a.close {\ntext-decoration: none;\npadding: 2px;\n}\n.section-container {\noverflow: auto;\nposition: absolute;\ntop: 2.1em;\nright: 5px;\nbottom: 5px;\nleft: 5px;\npadding-right: 5px;\n}\n.sections-list {\npadding: 0 3px;\nfloat: left;\n}\n.credits {\nfloat: right;\n}\n.tab-selected {\nfont-weight: 700;\n}\n.section-sauce ul,\n.section-advanced ul {\nlist-style: none;\nmargin: 0;\n}\n.section-sauce ul {\npadding: 8px;\n}\n.section-advanced ul {\npadding: 0px;\n}\n.section-sauce li,\n.section-advanced li {\npadding-left: 4px;\n}\n.section-main label {\ntext-decoration: underline;\n}\n.section-filter ul {\npadding: 0;\n}\n.section-filter li {\nmargin: 10px 40px;\n}\n.section-filter textarea {\nheight: 500px;\n}\n.section-sauce textarea {\nheight: 350px;\n}\n.section-advanced .field[name=\"boardnav\"] {\nwidth: 100%;\n}\n.section-advanced textarea {\nheight: 150px;\n}\n.section-advanced .archive-cell {\nmin-width: 160px;\ntext-align: center;\n}\n.section-advanced #archive-board-select {\nposition: absolute;\n}\n.section-advanced .note {\nfont-size: 0.8em;\nfont-style: italic;\nmargin-left: 10px;\n}\n.section-advanced .note code {\nfont-style: normal;\nfont-size: 11px;\n}\n.section-keybinds .field {\nfont-family: monospace;\n} \n#fourchanx-settings fieldset {\nborder: 1px solid;\nborder-radius: 3px;\n}\n#fourchanx-settings legend {\nfont-weight: 700;\n}\n#fourchanx-settings textarea {\nfont-family: monospace;\nmin-width: 100%;\nmax-width: 100%;\n}\n#fourchanx-settings code {\ncolor: #000;\nbackground-color: #FFF;\npadding: 0 2px;\n}\n.unscroll {\noverflow: hidden;\n}\n\n/* Announcement Hiding */\n:root.hide-announcement #globalMessage {\ndisplay: none;\n}\na.hide-announcement {\nfloat: left;\n}\n\n/* Unread */\n#unread-line {\nmargin: 0;\nborder-color: rgb(255,0,0);\n}\n\n/* Thread Updater */\n#updater {\nbackground: none;\nborder: none;\nbox-shadow: none;\n}\n#updater > .move {\npadding: 5px 3px 0px;\nmargin-bottom: -3px;\n}\n#updater > div:last-child {\ntext-align: center;\n}\n#updater input[type=number] {\nwidth: 4em;\n}\n:root.float #updater {\npadding: 0px 3px;\n}\n.new {\ncolor: limegreen;\n}\n#update-status.new {\nmargin-right: 5px;\n}\n#update-timer {\ncursor: pointer;\n}\n\n/* Thread Watcher */\n#thread-watcher {\nposition: absolute;\n}\n#thread-watcher {\npadding-bottom: 3px;\npadding-left: 3px;\noverflow: hidden;\nwhite-space: nowrap;\nmin-width: 136px;\nmax-height: 92%;\noverflow-y: auto;\n}\n#thread-watcher .menu-button {\nbottom: 1px;\n} \n:root.fixed-watcher #thread-watcher {\nposition: fixed;\n}\n:root:not(.fixed-watcher) #thread-watcher:not(:hover) {\nmax-height: 210px;\noverflow-y: hidden;\n}\n#thread-watcher > .move {\npadding-top: 3px;\n}\n#watched-threads > div {\nmax-width: 250px;\noverflow: hidden;\npadding-left: 3px;\npadding-right: 3px;\ntext-overflow: ellipsis;\n}\n#thread-watcher a {\ntext-decoration: none;\n}\n#thread-watcher .move>.close {\nposition: absolute;\nright: 0px;\ntop: 0px;\npadding: 0px 4px;\n}\n.watch-thread-link {\npadding-top: 18px;\nwidth: 18px;\nheight: 0px;\ndisplay: inline-block;\nbackground-repeat: no-repeat;\nopacity: 0.2;\nposition: relative;\ntop: 1px;\n}\n.watch-thread-link.watched {\nopacity: 1;\n}\n\n\n/* Thread Stats */\n#thread-stats {\nbackground: none;\nborder: none;\nbox-shadow: none;\n}\n:root.float #post-count, :root.float #file-count {\npointer-events: none;\n}\n:root.float #thread-stats {\npadding: 0px 3px;\n}\n\n/* Quote */\n.deadlink {\ntext-decoration: none !important;\n}\n.backlink.deadlink:not(.forwardlink),\n.quotelink.deadlink:not(.forwardlink) {\ntext-decoration: underline !important;\n}\n.inlined {\nopacity: .5;\n}\n#qp input, .forwarded {\ndisplay: none;\n}\n.quotelink.forwardlink,\n.backlink.forwardlink {\ntext-decoration: none;\nborder-bottom: 1px dashed;\n}\n.filtered {\ntext-decoration: underline line-through;\n}\n:root.hide-backlinks .backlink.filtered {\ndisplay: none;\n}\n.inline {\nborder: 1px solid;\ndisplay: table;\nmargin: 2px 0;\n}\n.inline .post {\nborder: 0 !important;\nbackground-color: transparent !important;\ndisplay: table !important;\nmargin: 0 !important;\npadding: 1px 2px !important;\n}\n#qp > .opContainer::after {\ncontent: '';\nclear: both;\ndisplay: table;\n}\n#qp .post {\nborder: none;\nmargin: 0;\npadding: 2px 2px 5px;\n}\n#qp img {\nmax-height: 80vh;\nmax-width: 50vw;\n}\n.qphl {\noutline: 2px solid rgba(216, 94, 49, .7);\n}\n:root.highlight-own .yourPost > .reply,\n:root.highlight-you .quotesYou > .reply {\nborder-left: 2px solid rgba(221,0,0,.5);\n}\n/* Quote Threading */\n.threadContainer {\nmargin-left: 20px;\nborder-left: 1px solid rgba(128,128,128,.3);\n}\n.threadOP {\nclear: both;\n} \n\n/* File */\n.fileText:hover .fntrunc,\n.fileText:not(:hover) .fnfull,\n.expanded-image > .post > .file > .fileThumb > img[data-md5],\n:not(.expanded-image) > .post > .file > .fileThumb > .full-image {\ndisplay: none;\n}\n.expanding {\nopacity: .5;\n}\n:root.fit-height .full-image {\nmax-height: 100vh;\n}\n:root.fit-width .full-image {\nmax-width: 100%;\n}\n:root.gecko.fit-width .full-image {\nwidth: 100%;\n}\n#ihover {\n-moz-box-sizing: border-box;\nbox-sizing: border-box;\nmax-height: 100%;\nmax-width: 75%;\npadding-bottom: 16px;\n}\n.fappeTyme .thread > .noFile,\n.fappeTyme .threadContainer > .noFile {\ndisplay: none;\n}\n\n/* Index/Reply Navigation */\n#navlinks {\nfont-size: 16px;\ntop: 25px;\nright: 10px;\n}\n\n/* Filter */\n.opContainer.filter-highlight {\nbox-shadow: inset 5px 0 rgba(255, 0, 0, .5);\n}\n.filter-highlight > .reply {\nbox-shadow: -5px 0 rgba(255, 0, 0, .5);\n}\n\n/* Spoiler text */\n:root.reveal-spoilers s {\ncolor: white !important;\n}\n\n/* Thread & Reply Hiding */\n.hide-thread-button,\n.hide-reply-button {\nfloat: left;\nmargin-right: 2px;\n}\n.stub ~ * {\ndisplay: none !important;\n}\n.stub input {\ndisplay: inline-block;\n}\n\n/* QR */\n:root.hide-original-post-form #postForm,\n:root.hide-original-post-form .postingMode,\n:root.hide-original-post-form #togglePostForm,\n#qr.autohide:not(.has-focus):not(:hover) > form,\n.postingMode ~ #qr select,\n#file-n-submit:not(.has-file) #qr-filerm {\ndisplay: none;\n}\n#qr select,\n#dump-button,\n.remove,\n.captcha-img {\ncursor: pointer;\n}\n#qr {\nz-index: 20;\nposition: fixed;\npadding: 1px;\nborder: 1px solid transparent;\nmin-width: 300px;\nborder-radius: 3px 3px 0 0;\n}\n#qrtab {\nborder-radius: 3px 3px 0 0;\n}\n#qrtab {\nmargin-bottom: 1px;\n}\n#qr .close {\nfloat: right;\npadding: 0 3px;\n}\n#qr .warning {\nmin-height: 1.6em;\nvertical-align: middle;\npadding: 0 1px;\nborder-width: 1px;\nborder-style: solid;\n}\n.qr-link-container {\ntext-align: center;\n}\n.persona {\nwidth: 248px;\nmax-width: 100%;\nmin-width: 100%;\n}\n#dump-button {\nwidth: 10%;\nmargin: 0;\nmargin-right: 4px;\nfont: 13px sans-serif;\npadding: 1px 0px 2px;\nopacity: 0.6;\n}\n.persona .field:not(#dump) {\nwidth: 95px;\nmin-width: 33.3%;\nmax-width: 33.3%;\n}\n#qr textarea.field {\nheight: 14.8em;\nmin-height: 9em;\n}\n#qr.has-captcha textarea.field {\nheight: 9em;\n}\ninput.field.tripped:not(:hover):not(:focus) {\ncolor: transparent !important;\ntext-shadow: none !important;\n}\n#qr textarea {\nresize: both;\n}\n.captcha-img {\nmargin: 0px;\ntext-align: center;\nbackground-image: #fff;\nfont-size: 0px;\nmin-height: 59px;\nmin-width: 302px;\n}\n.captcha-input {\nwidth: 100%;\nmargin: 1px 0 0;\n}\n.captcha-input.error:focus {\nborder-color: rgb(255,0,0) !important;\n}\n.field {\n-moz-box-sizing: border-box;\nmargin: 0px;\npadding: 2px 4px 3px;\n}\n#qr textarea {\nmin-width: 100%;\n}\n#qr [type='submit'] {\nwidth: 25%;\nvertical-align: top;\n}\n:root.webkit #qr [type='submit'] {\nheight: 24px;\n}\n/* Fake File Input */\n#qr-filename,\n.has-file #qr-no-file {\ndisplay: none;\n}\n#qr-no-file,\n.has-file #qr-filename {\ndisplay: inline-block;\npadding: 0px 4px;\nmargin-bottom: 2px;\noverflow: hidden;\ntext-overflow: ellipsis;\nmax-width: 88%;\n}\n#qr-no-file {\ncolor: #AAA;\n}\n#qr-filename-container {\n-moz-box-sizing: border-box;\ndisplay: inline-block;\nposition: relative;\nwidth: 100px;\nmin-width: 74.6%;\nmax-width: 74.6%;\nmargin-right: 0.4%;\nmargin-top: 1px;\noverflow: hidden;\npadding: 2px 1px 0;\nheight: 22px;\n}\n#qr-filename-container:hover {\ncursor: text;\n}\n#qr-extras-container {\nposition: absolute;\nright: 0px;\n}\n#qr-filerm {\nmargin-right: 2px;\nz-index: 2;\n}\n#file-n-submit {\nheight: 23px;\n}\n#qr input[type=file] {\nvisibility: hidden;\nposition: absolute;\n}\n/* Thread Select / Spoiler Label */\n#qr select {\nfloat: right;\n}\n#qr.has-spoiler .has-file #qr-spoiler-label {\nwidth: 6.7%;\nmin-width: 6.7%;\nmax-width: 6.7%;\ndisplay: inline-block;\ntext-align: center;\nvertical-align: top;\n}\n#qr.has-spoiler #file-n-submit:not(.has-file) #qr-spoiler-label {\ndisplay: none;\n}\n#qr.has-spoiler .has-file #qr-filename-container {\nmax-width: 67.9%;\nmin-width: 67.9%;\n}\n#qr-spoiler-label input {\nposition: relative;\ntop: 3px;\n}\n/* Dumping UI */\n.dump #dump-list-container {\ndisplay: block;\n}\n#dump-list-container {\ndisplay: none;\nposition: relative;\noverflow-y: hidden;\nmargin-top: 1px;\n}\n#dump-list {\noverflow-x: auto;\noverflow-y: hidden;\nwhite-space: nowrap;\nwidth: 248px;\nmax-width: 100%;\nmin-width: 100%;\n}\n#dump-list:hover {\noverflow-x: auto;\n}\n.qr-preview {\n-moz-box-sizing: border-box;\ncounter-increment: thumbnails;\ncursor: move;\ndisplay: inline-block;\nheight: 90px;\nwidth: 90px;\npadding: 2px;\nopacity: .5;\noverflow: hidden;\nposition: relative;\ntext-shadow: 0 1px 1px #000;\n-moz-transition: opacity .25s ease-in-out;\nvertical-align: top;\nbackground-size: cover;\n}\n.qr-preview:hover,\n.qr-preview:focus {\nopacity: .9;\n}\n.qr-preview::before {\ncontent: counter(thumbnails);\ncolor: #fff;\nposition: absolute;\ntop: 3px;\nright: 3px;\ntext-shadow: 0 0 3px #000, 0 0 8px #000;\n}\n.qr-preview#selected {\nopacity: 1;\n}\n.qr-preview.drag {\nbox-shadow: 0 0 10px rgba(0,0,0,.5);\n}\n.qr-preview.over {\nborder-color: #fff;\n}\n.qr-preview > span {\ncolor: #fff;\n}\n.remove {\nbackground: none;\ncolor: #e00;\nfont-weight: 700;\npadding: 3px;\n}\na:only-of-type > .remove {\ndisplay: none;\n}\n.remove:hover::after {\ncontent: \" Remove\";\n}\n.qr-preview > label {\nbackground: rgba(0,0,0,.5);\ncolor: #fff;\nright: 0;\nbottom: 0;\nleft: 0;\nposition: absolute;\ntext-align: center;\n}\n.qr-preview > label > input {\nmargin: 0;\n}\n#add-post {\ncursor: pointer;\nfont-size: 2em;\nposition: absolute;\ntop: 50%;\nright: 10px;\n-moz-transform: translateY(-50%);\n}\n.textarea {\nposition: relative;\n}\n:root.webkit .textarea {\nmargin-bottom: -2px;\n}\n#char-count {\ncolor: #000;\nbackground: hsla(0, 0%, 100%, .5);\nfont-size: 8pt;\nposition: absolute;\nbottom: 1px;\nright: 1px;\npointer-events: none;\n}\n\n/* Menu */\n.menu-button {\ndisplay: inline-block;\nposition: relative;\ncursor: pointer;\n}\n.menu-button i {\nborder-top: 6px solid;\nborder-right: 4px solid transparent;\nborder-left: 4px solid transparent;\ndisplay: inline-block;\nmargin: 2px;\nvertical-align: middle;\n}\n#menu {\nposition: fixed;\noutline: none;\n}\n.entry {\nborder-bottom: 1px solid rgba(0,0,0,.25);\ncursor: pointer;\ndisplay: block;\noutline: none;\npadding: 3px 7px;\nposition: relative;\ntext-decoration: none;\nwhite-space: nowrap;\n}\n.left>.entry.has-submenu {\npadding-right: 17px !important;\n}\n.entry:last-child {\nborder-bottom: 0;\n}\n.has-submenu::after {\ncontent: \"\";\nborder-left: .5em solid;\nborder-top: .3em solid transparent;\nborder-bottom: .3em solid transparent;\ndisplay: inline-block;\nmargin: .3em;\nposition: absolute;\nright: 3px;\n}\n.left .has-submenu::after {\nborder-left: 0;\nborder-right: .5em solid;\n}\n.submenu {\ndisplay: none;\nposition: absolute;\nleft: 100%;\ntop: -1px;\n}\n.focused .submenu {\ndisplay: block;\n}\n.imp-exp-result {\nposition: absolute;\ntext-align: center;\nmargin: auto;\nright: 0px;\nleft: 0px;\nwidth: 200px;\n}\n.export, .import {\ncursor: pointer;\ntext-decoration: none !important;\n}\n/* Link Title Favicons */\n.linkify.YouTube {\nbackground: transparent url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAMCAYAAABr5z2BAAABIklEQVQoz53LvUrDUBjG8bOoOammSf1IoBSvoCB4JeIqOHgBLt6AIMRBBQelWurQ2kERnMRBsBUcIp5FJSBI5oQsJVkkUHh8W0o5nhaFHvjBgef/Mq+Q46RJBMkI/vE+aOus956tnEswIZe1LV0QyJ5sE2GzgZfVMtRNIdiDpccEssdlB1mW4bvTwdvWJtRdErM7U+8S/FJykCRJX5qm+KpVce8UMNLRLbulz4iSjTAMh6Iowsd5BeNadp3nUF0VlxAEwZBotXC0Usa4ll3meZdA1iguwvf9vpvDA2wvmKgYGtSud8suDB4TyGr2PF49D/vra9jRZ1BVdknMzgwuCGSnZEObwu6sBnVTCHZiaC7BhFx2PKdxUidiAH/4lLo9Mv0DELVs9qsOHXwAAAAASUVORK5CYII=') center left no-repeat!important;\npadding-left: 18px;\n}\n.linkify.Vimeo {\nbackground: transparent url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAadEVYdFNvZnR3YXJlAFBhaW50Lk5FVCB2My41LjEwMPRyoQAAASJJREFUOE9jYAAC7ln7/pODQXrBmq333PvPu/YaSRikB6QXbACpmmHqsRoAMll7+20UQ0H8tmuv/pdffPFfZtNNuByGASBFIPDh5x+4IV6HHoDFYGDJgw+YBoBMBUkgA5BtIKduuvvy//svX+FSB+88wTTAc+/t/83bj/0HScLA5BPXwc7lKJ36f+L6XXDxhUfOYxrAPWUnWKFp9UQUm3iWQxSDXAEDSX3zcIcB96wD/x+8eA1XDNKMHAYg20GW4Y0FkCIYAAUqzEBQOIBciRzlWKMxZelOlMCEcVxq+jHSC1YDJPs3YBgA8jey0/F6ARRwsFAHORukmat9NdbUijMpg/wKcrJodDFOzSBXwA3Alh9AToZFI7a8Asu98BxJbnYGAJb5vYLDANzSAAAAAElFTkSuQmCC') center left no-repeat!important;\npadding-left: 18px;\n}\n.linkify.SoundCloud {\nbackground: transparent url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABsklEQVQ4y5WTy2pUQRCGv2rbzDjJeAlIBmOyipGIIJqFEBDElwh4yULGeRFXPoEIBl/AvQ/gC2RnxCAoxijiwks852S6+3dxzslcHJCpTXVX11/Xv0097gLPgVNMJxnQNfX4zsqleWbnpoMf/oa9d988MM9MC/rp+E0a+A0dsVobMNMCOO8B6McRoABJI+A6gJmN3D2A8jgEBCEkSEMBrcrsDAzDWWn3AjgKFaDMmgRqniGFgsaDp1jrLOngDf1XT1D+A1dFc4MKAkkiCVKjjVu7g9+4Rzx4i1u6hjXbuMWr0O5QPNvCu7IaCZwEKQukLGDrm5x8uI0tr6MkiGlkiv7yLfzN+6S5i6QsIMABkEfcxhbWWYMkVAOjxvYAjc3HNHrbKI9VBQBFwF25XQKSBjqIf1YBuAurEMrczgDygD6/x2LCpFLXLUyQ+PoldphhBhYfIX09XU1+Flaukz7uYqs3SHs7cG4BmTsmkBUF9mmXEwa28BNLPaQPLepuNcbGSWQquQC2/Kdcox1FUGkcB0ykck1nA2+wTzMs8stGnP4rbWGw74EuS/GFQWfK7/wF6P4F7fzIAYkdmdEAAAAASUVORK5CYII=') center left no-repeat!important;\npadding-left: 18px;\n}\n.linkify.audio {\nbackground: transparent url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAadEVYdFNvZnR3YXJlAFBhaW50Lk5FVCB2My41LjEwMPRyoQAAAitJREFUOE9jYCAWKJWwavr0KyXWb/FIbDtUFFyzJx6nVofE2Xo5nXsj0rqPNSR0nVkR2Hjmgmfd+U9Otdf+m5Vf/6+SfeU/R9ChVVgNYDRtlfJuuPA/rPfe/4QpD/6nznj0P27Kw/9unff/69Xf+69c/+C/SO7N/0z+OAxgMmmRCe++/r9i3ev/KWvf/vdY8PK/bt/9/wrNV3/IN5y/IVt1YqNg4pGTTP4HsbuA2bhZ2qvpyn+xjIObxAp3VwqlrgngLFyryVy5nhPmZJHANS2cwYexG8BmVC/pWn3hP4NZlzWuQDJI3dIiFnUUuwEsQAOcq87jNcC7fHeLUtJxHF4AGmBWeAavAWH1+1rUUk7giAWjOknllON4DXAs2NEiG4/DBQxAF/CFHfrPYI4jDFSLuJVjNrUJhB/B7gIGo1pJRt99GAZYJK7wLJ1z7Xzl4vu/7aqv/GRBj0bjqAX2qb0nJ7mXH17C4HcUxQA+hymWtSue/C5a9up/9Ozn/7Vr7v1nRY7GqMb91T3b3v6vWvPmf/S0p/9ZQk+DDLCBRSOz06Jqk+o7/21nvfqvsebDf7kZL/5zBaxphkezd+OFn7HzXvz3Wvjmv9a8N//5Ek//ZTBpVYUrMG2X5wjcdl68+uI/wa5Lr3hSNjczGFeywOVZ/bbcVGp//F9izfv/Ql03f3P4LC/HSEQquYwMFnUCDJ7dzBhyjGZNQpye89M5gpfnMvtNUyE2h4PUAQBovvT7lyNljwAAAABJRU5ErkJggg==') center left no-repeat!important;\npadding-left: 18px;\n}\n.linkify.LiveLeak {\nbackground: transparent url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAadEVYdFNvZnR3YXJlAFBhaW50Lk5FVCB2My41LjEwMPRyoQAAAydJREFUOE9Nk1tIk2EYx79NyUNqTk0o6KYrnZeChodLDxfeZpCbJk4RXU5Nm7tYRYhiYXbQlaeGutyW2gxtpB1RIyKDEjKwA6Ti2dR5KNDn+fq/S6TBj/f93r3P732e53s/qfnkSdej4GB2SBLbwf+jmB+gUMgOheLg/z7EdCUnO6Ref392SpK8Hyh3I+gBwBo7lUp2xcbyQEoKD6alyQOpqd754/h4FjJXZCRJTl9ftmEzoK5/wdQJxPgkLY2WV1dpc2uLtnZ2eHNnhza3t2nd46GhjAzuValY6jx0iIfS03msoIDuQ9COQCtoUSjohU5HuwgaN5loeXycd3d3aW9vzwvW2K5SkdTi58fvzGb+3tdHFggA3QONEAzn59PvjQ1yqNX0zenkvX0B4ffWaGRraChJd/385JGqKvlzTw/fRqOaIGkEd1DjU52O/3g83BkTw5MOh7yJuUCUM2o0yi2hoSw1IIOhykr+YLNRHYKu4XQvyKA/N5c8yMCCDD7Z7bz26xcJ1rH2rKKCG0UJdRAMlJbyG6uVrkJQjWAB5tSbk0Nr2HwDgvcQiIYur6zQyvo6ucvLueHIEZKuQPBQr+dXra1kRuqXEOwFArtWSytra1QdFUVjNhvPLS3R3OIiLUDUD0F1WBhJJtwDW2Ehu5uaqBICI4IFlRB0QLCEzaboaHrd0cHzCBYsIIuesjK+LAQXkEFrXh676uupGCWcR6AeghLQptGQONUAwfOuLp6Zn6eZuTmaXVig7pISrhI90ENgQbdHhoep32JhFzLpu3WLio8epUYIfs7OUjF6UKJW88XERLqYkEBNej11oG8XhCAvMFAuOn5cNiclsTkhQTbhmpri4lgbEMANWi1DwC/xit3t7bK7rY0Fo4OD3G4wyEURESzloAdnceezlErK8vH5N4KzPj50PTOTfkxP0+THj/RlYoInJyZI8HVqim5qNFwQHk7SucBAPo2PKRMNPLM/4pnFszYkhJsNBu6uqWFHba1sr61lQSveQFZQkFx07BhJmhMnrLn4NLMPH/aSExR0QDbmWhwgyEapwDvXoDxdWBiXnjrV/Bdm2kYUxLwmEgAAAABJRU5ErkJggg==') center left no-repeat!important;\npadding-left: 18px;\n}\n.linkify.Vocaroo {\nbackground: transparent url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAadEVYdFNvZnR3YXJlAFBhaW50Lk5FVCB2My41LjEwMPRyoQAAAw9JREFUOE9jYMABuMwYmCyTJKUCGlSnFSy02TTzeOyCiQcDViX26qVz2TAyYtWmEMwuoZ3M7V40LcB79pHkc0svpvzY8jD//87nxf+3Pyn8v/ZO8v+VNyP/2mZJumI1QCWSI8232Hjumitlfw5+qPp/9l8TCt76JP//xkdx/wsXWCzjtWFkwTCkbWFe9plPk/+ga4Txz/xt/D/hkN//gMXif21a+NbyWjIwoRiy6GDT5rP/mlFsPfyp5n/NpOj/22+0gMUXXIz/H7hC/L/bFKFbPDZMrHAD5H35OPt2J9zacDv/f3V7xv9FhwrBGubsT/1//Pjx/1GJ/mD+/nfl/1v3Ovy3KRJNQbHdOlXCvOO03/+pm1P/v3v37n90hhtYw9HPtf8Xb2v937cmHswHeWPRxYj/LvkK3igGKARwicTO07118H3V/5kbi/4vPZMJtK3s/6YH2f+Pfq1B8VbjWrdnMu5s4nAD9CNFhKwz5DTUvLl419zKvAcLtG1P84BRl/b/5M/6/6f/NPzf/qzo84yj0Uus0xUU4Zor54bm9+4OfZG02OCuoAMTb9ZkC9ull1Nvrr2Z+XvRpaRfc65H/68F+jl9svEhzyLFWoccWVc+eyTHq/twydjlKRln7jX9bNMkMJnbhoFRL1xCqmKx6/yi2fYXa/c5/e846PV/5fW0/7OPx/yfcjzop34ulxdGGvDuU8mMXaX507lBuiN6ueadmQeT/p/93vf/1O+G//sP5fw/eL3o/5JLif8zVxs+Tlir9S26UyeFQQvJGBE7FvaFZ9LfN+1y+WjbItSb3GmXvXd15v8zroH/HxgE/D+aGPx/18vi/z07PeZNPRKxe/Kh0Ae8toxscCO4zBkYXArk9C1SxJUYjBkYPPIVtbbuTftz3cz//2O9wP/75iSAXdO72/dt2HL5F6YlfBW4MiJYXMiBiW3t7azHBx+V/t89N+H/8a+1//e9K/9attDp5LQjYX8SuvVL8RoAkmxa65299Erq1FnHo0qrl7t4BddriIs4MrM3rfWcFd+pGwVSAwBZ0bKP8yrZPAAAAABJRU5ErkJggg==') center left no-repeat!important;\npadding-left: 18px;\n}\n.linkify.pastebin {\nbackground: transparent url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAadEVYdFNvZnR3YXJlAFBhaW50Lk5FVCB2My41LjEwMPRyoQAAAtZJREFUOE+NU91LWmEc7sJtQew/2MUY7INg7CLY3W5GMHazyzEQo9UmfYxZTbAiVlgRqLMSZ+XnDC3z2+Y0+8JGakKZTtR0Tl2wtgtLLQh29cz3ZZ3h3Q68vOc95zzP73l+z+/U1f292O09DRxubxOH23P//1bvtQts3dPnry7LZnXJhcUl5Avf8dHtwY+fv2AyW5DOfIXFakMm+w0G4wISyRRm55TQG0y/Wzv6mikJ52Xf9TmVBoFAAD6fDwqFAqFQCJubmzCbzZiensbp6SmkUikikQi0Wi0kEgm6ewVaStDCfXPDandifn6egoaGhrCzswO1Wg2Hw4HBwUGk02kIBAL4/X4IhUJMTk6ii8dfYggy2RwymQzOz88Rj8dRLpexv7+PSqWCYDCIQqGAra0tJBIJrK2t0XdVAjNDEIl+wfj4OEqlEq2wt7dHrchkMmrBYDCAz+fTIjweD7FYrJbgIJOlgLOzM8jlcip1eXmZ2rFarVAqlRCLxcjlchCJRFRljYJYPAG32418Pg+n04lsNouVlRUcHh7C4/FQIOlHNBqlezgcJgQWxkIgGMbExASVNjY2hvX1dVo9mUzS5wREFLhcLrqTcw2B//M2RkdHodPp4PV6oVKpqH+SCom3v7+fNnF4eJiJusbCJ6+PviSyScakiaR5RIHRaKQpmEwmbAdCeD8zB6vdhebHT8SMhcUlC83bbrdTJRsbG3RwiCVCRNJJpDIoVeNNJJJQzKryV+rrmxiCtyNCCmaz2VhdXQWXy6XDpNfrodFoYLXZUTw+pk222Z3lW3ca26rgSwzBwqIZAwMDlITMAVEwNTVFR5fEJpK8Qyp1AJvDVbrTeLenCmxgfiZ22+urCtWHyu7uLp2wVCpFKx0dHaFYLOLk5KT6Y9kgk89kb95ubK0BX7A8a+1qannRLeW0daj/rU51S3tn9dypfvDw0QiLxbpX/Z7FVK7e/AEj4Wf24/2f5AAAAABJRU5ErkJggg==') center left no-repeat!important;\npadding-left: 18px;\n}\n.linkify.gist {\nbackground: transparent url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAk1JREFUeNqUkzuIE1EUhv955MnsbB6r4kYQLUQQFncV3SnCIqJsoWGDYOGjsIiCtY2Kla1sjLBIsFFcXJC1kaSwENQmXUQSRSUSjCQSTCbkbR4z47lXEgtBNwcu3DNzvvO8R8jlcj7LshKmaWqYQERRTAmCcEru9/sJr9er0QF92BJMAVGr1TQ6CeZAc7lcGAwGkyQAxpTLZU0eDoc8crfbRTgcRjAYRCQSYSmi1WpxY7fbjU6ng1gshmaziXg8zhnGIpVKWbquW9ls1mLZsaMoiqWq6lgnBxY55He/328Vi0XOMFZmqVMD4fF4QBAajcY48khY9JE4HA4enTGMFVkaTHmy+ZzD/5NSqYSNB484w1h55ODO3TVu4FXcWDywl24Cmp0e1WBhyuWELAtIf/qKUrWOONmev3Lpt4NRCXq1gplpBS/v3cDc0nGg9h1o1ZkfwO4Atu1B8cM7HLt8k37V/y5B2b4bJxf2Y+7oEbyJrkMvUjki0YYJ03LidfQxAt4dOHdCw5RdGZcgGobBlQtnV/BDr1GfDai7ZiHZZRi9PoY/e5SCCTUwC9gk1GmMh5YWOcNYkR4Sv1y9uAJbYB82N57h4OnDmN7phjQ0qUkWRJuB+TMaPn/5iFfvv+Ha7eucYey4iWw8q6tRJJNJ3Fp7ClUawEkViBTfkCR0YUNTVHD/4Tpm/P4/U2CeKpUKfD4fJDIMhUKEhP45St50XedZyLQY6Xw+v8AUemVb2oNqtYpCocCWKi2TLLfb7ReZTGZ+kmUi7i2VvfxLgAEAZChMriPcl+IAAAAASUVORK5CYII=') center left no-repeat!important;\npadding-left: 18px;\n}\n.linkify.image {\nbackground: transparent url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAadEVYdFNvZnR3YXJlAFBhaW50Lk5FVCB2My41LjEwMPRyoQAAAs5JREFUOE+lk/tvi1EYx98/xT8gW4REIpGFMEQWl2FiM9ZMZhm2xRAyOsmujFFmdFRHu0tWm87UypxStr69zPauN5e5rHVp3IYhbOvHy+wHEQlxkm+ek+d8nm9OznkeSfrfldmgJC7QyUlTymsJTfuTZ25z4HdWYwyLreYhtpgekGPw0+kKvo1Eo+IXRSIiEhkWZuc9tqnsJD9EqTUopCxjSGTpB0iueczSo1HyW8cpsExQ1DbxI2pt45j9cXpexul4FEd79RnZphAa/SD7WvuFtO6UItbU9LC+YQxNI2w0wwYT5LRAdhOU3oBTIXC9gXP3oUSGgz2vST3gYHejR0jptT1C332f8yrUEYHrz8CgxDnpm6DKCUfc0KnmXa/AEVPPwnDcD0cvetA2uYRk67Ive/lpjO7YBO1PPuF8Df3vwf4cbNE4tqdw7YVq8HYyHx6FvhE1hkMEg8HDUqvFkjT4aIjMqkqyqkswDSrcfBfH+Q561YLAZ/B+BLda6FXlU/cPv0AoEPhuoP1h4Av7Wbh9E/Py15NWWUjeSR3nZDfeN+N0DY9hG/7K1eGP3P0S5/EYRFUF/IOTBrUXHPm9fT6mr1xEwupkZqxbzLyiDJYUZ5NSnkdqdSHpxyrYdFpPgdmAsdfJwPMI/Yr65bf7tZLGGBQ7DNdJWFtIYvoOZmbuZE7OXpIKKli86zAr9p9gTVktWTVnKTI2U95uRWe3U2IJUDbVB5p6hVm5x5m9Vc/cnedZUNzC8lILaQesZBy6hEZ3maKzgvJWFzVWD9XtXvVGQbSWASFtMATVRlJIKbOTWtlJXaeXepuPM1f6MNp9GLt8mLvvYLmp0OhQ2Fwvk6m7xaqDTvY0eYWUVtcnllXfYlGpnfklVuraHHg8HjxuN+6fktUHlWWZPaZeUo/ILK0UKttBcbNbSB9GP0yLxWJJUxoZGUn80zD9C/vXQ/4NHY10h3M1zmQAAAAASUVORK5CYII=') center left no-repeat!important;\npadding-left: 18px;\n}\n.linkify.InstallGentoo {\nbackground: transparent url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAadEVYdFNvZnR3YXJlAFBhaW50Lk5FVCB2My41LjEwMPRyoQAAAklJREFUOE9jYEAAASBTCorZkcSRmTjVCDLziCwG4hfM3EIvGNm44oC6WNEM4WXi5FsEkmfhFX3BxMmfAJSHW9Qr55Px3aZp3X/btq3/hQydPzKysMcCFbBBDeFj4uBdqBJR/gskb1W34j+PmulLoJwbzBJJoMm7dNO7/ntMP/XfpW/v//SKvk+7tl7fvXfTpx5pCdWVSiHFv1wnHQbLi9sE/Wdk5SwBauaCGQB3gUPb5v+7Lr/8/+fvr/9fv/z+f+Pyr/9bV735l9Wy/79Dx/b/Nk0bsLoAHgbeAVHv/v77/f8f0IB7N7+cu3DuecK54z9+7lzz639e9pK/7HwSWMMA5BJwCJeXtOm/fvVj1fcfv369f//92cN7X6ZcPvf9x6Htv//vXP3r/+T245UEYgpskPTNq08LgN749/PH7/93rv/6f/rw7//nj//4f+bU0zQcUQwWBkdVbGz62y+fv3wHeeXrlz//H9798//qpY//M3KqfzGxc8djiWKwZnBUuWQ2/fr46fv/P39+///x/ff/d69//z97+s7fyMb5/+y7d2GLYriDZikFF/1qXXXj/4Pbv/8/f/jn/5MH316/eP6jVlBAaIt6VO1/jxmn/zv27P7Pp2HxEajLD90ra9Sj6/979O37X73w0n+vqOL/0lJyMVBFq0EGgDSD0oKAlu1/oHg4ugGzVCKqfouYuL1Xj676Iajr8AnJFricGqYc3Bw+Zi6BVUxsXLHAdL6QiYMPFNrwpIxHDsUhgtAMAopKDjQn4pPDF7P45QC4hSmc1eX8WgAAAABJRU5ErkJggg==') center left no-repeat!important;\npadding-left: 18px;\n}\n\n/* General */\n:root.yotsuba .dialog {\nbackground-color: #F0E0D6;\nborder-color: #D9BFB7;\n}\n:root.yotsuba .field:focus {\nborder-color: #EA8;\n}\n\n/* Header */\n:root.yotsuba #header-bar, :root.yotsuba #notifications {\nfont-size: 9pt;\ncolor: #B86;\n}\n:root.yotsuba #header-bar a, :root.yotsuba #notifications a {\ncolor: #800000;\n}\n\n/* Settings */\n:root.yotsuba #fourchanx-settings fieldset {\nborder-color: #D9BFB7;\n}\n\n/* Quote */\n:root.yotsuba .backlink.deadlink {\ncolor: #00E !important;\n}\n:root.yotsuba .inline {\nborder-color: #D9BFB7;\nbackground-color: rgba(255, 255, 255, .14);\n}\n\n/* QR */\n.yotsuba #dump-list::-webkit-scrollbar-thumb {\nbackground-color: #F0E0D6;\nborder-color: #D9BFB7;\n}\n:root.yotsuba .qr-preview {\nbackground-color: rgba(0, 0, 0, .15);\n}\n\n/* Menu */\n:root.yotsuba #menu {\ncolor: #800000;\n}\n:root.yotsuba .entry {\nborder-bottom: 1px solid #D9BFB7;\nfont-size: 10pt;\n}\n:root.yotsuba .focused.entry {\nbackground: rgba(255, 255, 255, .33);\n}\n\n/* Watcher Favicon */\n:root.yotsuba .watch-thread-link\n{\nbackground-image: url(\"data:image/svg+xml, \");\n}\n\n/* General */\n:root.yotsuba-b .dialog {\nbackground-color: #D6DAF0;\nborder-color: #B7C5D9;\n}\n:root.yotsuba-b .field:focus {\nborder-color: #98E;\n}\n\n/* Header */\n:root.yotsuba-b #header-bar, :root.yotsuba-b #notifications {\nfont-size: 9pt;\ncolor: #89A;\n}\n:root.yotsuba-b #header-bar a, :root.yotsuba-b #notifications a {\ncolor: #34345C;\n}\n\n/* Settings */\n:root.yotsuba-b #fourchanx-settings fieldset {\nborder-color: #B7C5D9;\n}\n\n/* Quote */\n:root.yotsuba-b .backlink.deadlink {\ncolor: #34345C !important;\n}\n:root.yotsuba-b .inline {\nborder-color: #B7C5D9;\nbackground-color: rgba(255, 255, 255, .14);\n}\n\n/* QR */\n.yotsuba-b #dump-list::-webkit-scrollbar-thumb {\nbackground-color: #D6DAF0;\nborder-color: #B7C5D9;\n}\n:root.yotsuba-b .qr-preview {\nbackground-color: rgba(0, 0, 0, .15);\n}\n\n/* Menu */\n:root.yotsuba-b #menu {\ncolor: #000;\n}\n:root.yotsuba-b .entry {\nborder-bottom: 1px solid #B7C5D9;\nfont-size: 10pt;\n}\n:root.yotsuba-b .focused.entry {\nbackground: rgba(255, 255, 255, .33);\n}\n\n/* Watcher Favicon */\n:root.yotsuba-b .watch-thread-link\n{\nbackground-image: url(\"data:image/svg+xml, \");\n}\n\n/* General */\n:root.futaba .dialog {\nbackground-color: #F0E0D6;\nborder-color: #D9BFB7;\n}\n:root.futaba .field:focus {\nborder-color: #EA8;\n}\n\n/* Header */\n:root.futaba #header-bar, :root.futaba #notifications {\nfont-size: 11pt;\ncolor: #B86;\n}\n:root.futaba #header-bar a, :root.futaba #notifications a {\ncolor: #800000;\n}\n\n/* Settings */\n:root.futaba #fourchanx-settings fieldset {\nborder-color: #D9BFB7;\n}\n\n/* Quote */\n:root.futaba .backlink.deadlink {\ncolor: #00E !important;\n}\n:root.futaba .inline {\nborder-color: #D9BFB7;\nbackground-color: rgba(255, 255, 255, .14);\n}\n\n/* QR */\n.futaba #dump-list::-webkit-scrollbar-thumb {\nbackground-color: #F0E0D6;\nborder-color: #D9BFB7;\n}\n:root.futaba .qr-preview {\nbackground-color: rgba(0, 0, 0, .15);\n}\n\n/* Menu */\n:root.futaba #menu {\ncolor: #800000;\n}\n:root.futaba .entry {\nborder-bottom: 1px solid #D9BFB7;\nfont-size: 12pt;\n}\n:root.futaba .focused.entry {\nbackground: rgba(255, 255, 255, .33);\n}\n\n/* Watcher Favicon */\n:root.futaba .watch-thread-link\n{\nbackground-image: url(\"data:image/svg+xml, \");\n}\n\n/* General */\n:root.burichan .dialog {\nbackground-color: #D6DAF0;\nborder-color: #B7C5D9;\n}\n:root.burichan .field:focus {\nborder-color: #98E;\n}\n\n/* Header */\n:root.burichan #header-bar, :root.burichan #header-bar #notifications {\nfont-size: 11pt;\ncolor: #89A;\n}\n:root.burichan #header-bar a, :root.burichan #header-bar #notifications a {\ncolor: #34345C;\n}\n\n/* Settings */\n:root.burichan #fourchanx-settings fieldset {\nborder-color: #B7C5D9;\n}\n\n/* Quote */\n:root.burichan .backlink.deadlink {\ncolor: #34345C !important;\n}\n:root.burichan .inline {\nborder-color: #B7C5D9;\nbackground-color: rgba(255, 255, 255, .14);\n}\n\n/* QR */\n.burichan #dump-list::-webkit-scrollbar-thumb {\nbackground-color: #D6DAF0;\nborder-color: #B7C5D9;\n}\n:root.burichan .qr-preview {\nbackground-color: rgba(0, 0, 0, .15);\n}\n\n/* Menu */\n:root.burichan #menu {\ncolor: #000000;\n}\n:root.burichan .entry {\nborder-bottom: 1px solid #B7C5D9;\nfont-size: 12pt;\n}\n:root.burichan .focused.entry {\nbackground: rgba(255, 255, 255, .33);\n}\n\n/* Watcher Favicon */\n:root.burichan .watch-thread-link\n{\nbackground-image: url(\"data:image/svg+xml, \");\n}\n\n/* General */\n:root.tomorrow .dialog {\nbackground-color: #282A2E;\nborder-color: #111;\n}\n\n/* Header */\n:root.tomorrow #header-bar, :root.tomorrow #notifications {\nfont-size: 9pt;\ncolor: #C5C8C6;\n}\n:root.tomorrow #header-bar a, :root.tomorrow #notifications a {\ncolor: #81A2BE;\n}\n\n/* Settings */\n:root.tomorrow #fourchanx-settings fieldset {\nborder-color: #111;\n}\n\n/* Quote */\n:root.tomorrow .backlink.deadlink {\ncolor: #81A2BE !important;\n}\n:root.tomorrow .inline {\nborder-color: #111;\nbackground-color: rgba(0, 0, 0, .14);\n}\n\n/* QR */\n.tomorrow #dump-list::-webkit-scrollbar-thumb {\nbackground-color: #282A2E;\nborder-color: #111;\n}\n:root.tomorrow .qr-preview {\nbackground-color: rgba(255, 255, 255, .15);\n}\n:root.tomorrow #qr .field {\nbackground-color: rgb(26, 27, 29);\ncolor: rgb(197,200,198);\nborder-color: rgb(40, 41, 42);\n}\n:root.tomorrow #qr .field:focus {\nborder-color: rgb(129, 162, 190) !important;\nbackground-color: rgb(30,32,36);\n}\n\n/* Menu */\n:root.tomorrow #menu {\ncolor: #C5C8C6;\n}\n:root.tomorrow .entry {\nborder-bottom: 1px solid #111;\nfont-size: 10pt;\n}\n:root.tomorrow .focused.entry {\nbackground: rgba(0, 0, 0, .33);\n}\n\n/* Watcher Favicon */\n:root.tomorrow .watch-thread-link\n{\nbackground-image: url(\"data:image/svg+xml, \");\n}\n\n/* General */\n:root.photon .dialog {\nbackground-color: #DDD;\nborder-color: #CCC;\n}\n:root.photon .field:focus {\nborder-color: #EA8;\n}\n\n/* Header */\n:root.photon #header-bar, :root.photon #notifications {\nfont-size: 9pt;\ncolor: #333;\n}\n:root.photon #header-bar a, :root.photon #notifications a {\ncolor: #FF6600;\n}\n\n/* Settings */\n:root.photon #fourchanx-settings fieldset {\nborder-color: #CCC;\n}\n\n/* Quote */\n:root.photon .backlink.deadlink {\ncolor: #F60 !important;\n}\n:root.photon .inline {\nborder-color: #CCC;\nbackground-color: rgba(255, 255, 255, .14);\n}\n\n/* QR */\n.photon #dump-list::-webkit-scrollbar-thumb {\nbackground-color: #DDD;\nborder-color: #CCC;\n}\n:root.photon .qr-preview {\nbackground-color: rgba(0, 0, 0, .15);\n}\n\n/* Menu */\n:root.photon #menu {\ncolor: #333;\n}\n:root.photon .entry {\nborder-bottom: 1px solid #CCC;\nfont-size: 10pt;\n}\n:root.photon .focused.entry {\nbackground: rgba(255, 255, 255, .33);\n}\n\n/* Watcher Favicon */\n:root.photon .watch-thread-link\n{\nbackground-image: url(\"data:image/svg+xml, \");\n}\n"
};
Main.init();
diff --git a/css/style.css b/css/style.css
deleted file mode 100644
index e9777b123..000000000
--- a/css/style.css
+++ /dev/null
@@ -1,950 +0,0 @@
-/* General */
-.dialog {
- box-shadow: 0 1px 2px rgba(0, 0, 0, .15);
- border: 1px solid;
- display: block;
- padding: 0;
-}
-.field {
- background-color: #FFF;
- border: 1px solid #CCC;
- -moz-box-sizing: border-box;
- box-sizing: border-box;
- color: #333;
- font-family: inherit;
- font-size: 13px;
- margin: 0;
- padding: 2px 4px 3px;
- outline: none;
- transition: color .25s, border-color .25s, -webkit-flex .25s;
- transition: color .25s, border-color .25s, flex .25s;
-}
-.field::-moz-placeholder,
-.field:hover::-moz-placeholder {
- color: #AAA !important;
-}
-.field:hover {
- border-color: #999;
-}
-.field:hover, .field:focus {
- color: #000;
-}
-.field[disabled] {
- background-color: #F2F2F2;
- color: #888;
-}
-.move {
- cursor: move;
-}
-label, .watcher-toggler {
- cursor: pointer;
-}
-a[href="javascript:;"] {
- text-decoration: none;
-}
-.warning {
- color: red;
-}
-
-/* 4chan style fixes */
-.opContainer, .op {
- display: block !important;
-}
-.post {
- overflow: visible !important;
-}
-[hidden] {
- display: none !important;
-}
-
-/* fixed, z-index */
-#overlay,
-#qp, #ihover,
-#updater, #thread-stats,
-#navlinks, #header,
-#qr {
- position: fixed;
-}
-#overlay {
- z-index: 999;
-}
-#notifications {
- z-index: 70;
-}
-#qp, #ihover {
- z-index: 60;
-}
-#menu {
- z-index: 50;
-}
-#navlinks, #updater, #thread-stats {
- z-index: 40;
-}
-#qr {
- z-index: 30;
-}
-#thread-watcher:hover {
- z-index: 20;
-}
-#header {
- z-index: 10;
-}
-#thread-watcher {
- z-index: 5;
-}
-
-/* Header */
-:root.top-header body {
- margin-top: 2em;
-}
-:root.bottom-header body {
- margin-bottom: 2em;
-}
-:root.fourchan-x #navtopright,
-:root.fourchan-x #navbotright,
-:root.fourchan-x:not(.show-original-top-board-list) #boardNavDesktop,
-:root.fourchan-x:not(.show-original-bot-board-list) #boardNavDesktopFoot {
- display: none !important;
-}
-#header {
- right: 0;
- left: 0;
-}
-#header.top {
- top: 0;
-}
-#header.bottom {
- bottom: 0;
-}
-#header-bar {
- border-width: 0;
- display: -webkit-flex;
- display: flex;
- padding: 3px 4px 4px;
- position: relative;
- transition: all .1s .05s ease-in-out;
-}
-#header.top #header-bar {
- border-bottom-width: 1px;
-}
-#header.bottom #header-bar {
- box-shadow: 0 -1px 2px rgba(0, 0, 0, .15);
- border-top-width: 1px;
-}
-#header.bottom .menu-button i {
- border-top: none;
- border-bottom: 6px solid;
-}
-#board-list {
- -webkit-flex: 1;
- flex: 1;
- text-align: center;
-}
-#header-bar.autohide:not(:hover) {
- box-shadow: none;
- transition: all .8s .6s cubic-bezier(.55, .055, .675, .19);
-}
-#header.top #header-bar.autohide:not(:hover) {
- margin-bottom: -1em;
- -webkit-transform: translateY(-100%);
- transform: translateY(-100%);
-}
-#header.bottom #header-bar.autohide:not(:hover) {
- -webkit-transform: translateY(100%);
- transform: translateY(100%);
-}
-#toggle-header-bar {
- left: 0;
- right: 0;
- height: 10px;
- position: absolute;
-}
-#header.top #toggle-header-bar {
- cursor: n-resize;
- bottom: -8px;
-}
-#header.bottom #toggle-header-bar {
- cursor: s-resize;
- top: -8px;
-}
-#header-bar.autohide:not(:hover) #toggle-header-bar,
-#toggle-header-bar:hover {
- height: 18px;
-}
-#header.top #header-bar.autohide:not(:hover) #toggle-header-bar,
-#header.top #toggle-header-bar:hover {
- bottom: -16px;
-}
-#header.bottom #header-bar.autohide:not(:hover) #toggle-header-bar,
-#header.bottom #toggle-header-bar:hover {
- top: -16px;
-}
-#header.top #header-bar.autohide #toggle-header-bar {
- cursor: s-resize;
-}
-#header.bottom #header-bar.autohide #toggle-header-bar {
- cursor: n-resize;
-}
-#header-bar a:not(.entry) {
- text-decoration: none;
- padding: 1px;
-}
-.shortcut:not(:last-child)::after {
- content: " / ";
-}
-.brackets-wrap::before {
- content: "\\00a0[";
-}
-.brackets-wrap::after {
- content: "]\\00a0";
-}
-.expand-all-shortcut {
- opacity: .35;
-}
-
-/* Notifications */
-#notifications {
- height: 0;
- text-align: center;
-}
-#header.bottom #notifications {
- position: fixed;
- top: 0;
- left: 0;
- width: 100%;
-}
-.notification {
- color: #FFF;
- font-weight: 700;
- text-shadow: 0 1px 2px rgba(0, 0, 0, .5);
- box-shadow: 0 1px 2px rgba(0, 0, 0, .15);
- border-radius: 2px;
- margin: 1px auto;
- width: 500px;
- max-width: 100%;
- position: relative;
- transition: all .25s ease-in-out;
-}
-.notification.error {
- background-color: hsla(0, 100%, 38%, .9);
-}
-.notification.warning {
- background-color: hsla(36, 100%, 38%, .9);
-}
-.notification.info {
- background-color: hsla(200, 100%, 38%, .9);
-}
-.notification.success {
- background-color: hsla(104, 100%, 38%, .9);
-}
-.notification a {
- color: white;
-}
-.notification > .close {
- padding: 6px;
- top: 0;
- right: 0;
- position: absolute;
-}
-.message {
- -moz-box-sizing: border-box;
- box-sizing: border-box;
- padding: 6px 20px;
- max-height: 200px;
- width: 100%;
- overflow: auto;
-}
-
-/* Settings */
-:root.fourchan-x body {
- -moz-box-sizing: border-box;
- box-sizing: border-box;
-}
-#overlay {
- background-color: rgba(0, 0, 0, .5);
- display: -webkit-flex;
- display: flex;
- position: fixed;
- top: 0;
- left: 0;
- height: 100%;
- width: 100%;
-}
-#fourchanx-settings {
- -moz-box-sizing: border-box;
- box-sizing: border-box;
- box-shadow: 0 0 15px rgba(0, 0, 0, .15);
- height: 600px;
- max-height: 100%;
- width: 900px;
- max-width: 100%;
- margin: auto;
- padding: 3px;
- display: -webkit-flex;
- display: flex;
- -webkit-flex-direction: column;
- flex-direction: column;
-}
-#fourchanx-settings > nav {
- display: -webkit-flex;
- display: flex;
- padding: 2px 2px 0;
-}
-#fourchanx-settings > nav a {
- text-decoration: underline;
-}
-#fourchanx-settings > nav a.close {
- text-decoration: none;
- padding: 2px;
-}
-.sections-list {
- -webkit-flex: 1;
- flex: 1;
-}
-.tab-selected {
- font-weight: 700;
-}
-.section-container {
- -webkit-flex: 1;
- flex: 1;
- position: relative;
-}
-.section-container > section {
- position: absolute;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- overflow: auto;
-}
-.section-sauce ul,
-.section-rice ul {
- list-style: none;
- margin: 0;
- padding: 8px;
-}
-.section-sauce li,
-.section-rice li {
- padding-left: 4px;
-}
-.section-main label {
- text-decoration: underline;
-}
-.section-filter ul,
-.section-qr ul {
- padding: 0;
-}
-.section-filter li,
-.section-qr li {
- margin: 10px 40px;
-}
-.section-filter textarea {
- height: 500px;
-}
-.section-qr textarea {
- height: 200px;
-}
-.section-sauce textarea {
- height: 350px;
-}
-.section-rice .field[name="boardnav"] {
- width: 100%;
-}
-.section-rice textarea {
- height: 150px;
-}
-.section-archives table {
- width: 100%;
-}
-.section-archives th:not(:first-child) {
- width: 30%;
-}
-.section-archives td {
- text-align: center;
-}
-.section-archives select {
- width: 90%;
-}
-.section-keybinds .field {
- font-family: monospace;
-}
-#fourchanx-settings fieldset {
- border: 1px solid;
- border-radius: 3px;
-}
-#fourchanx-settings legend {
- font-weight: 700;
-}
-#fourchanx-settings textarea {
- font-family: monospace;
- min-width: 100%;
- max-width: 100%;
-}
-#fourchanx-settings code {
- color: #000;
- background-color: #FFF;
- padding: 0 2px;
-}
-.unscroll {
- overflow: hidden;
-}
-
-/* Announcement Hiding */
-:root.hide-announcement #globalMessage,
-:root.hide-announcement-enabled #toggleMsgBtn {
- display: none;
-}
-a.hide-announcement {
- float: left;
-}
-
-/* Unread */
-#unread-line {
- margin: 0;
-}
-
-/* Thread Updater */
-#updater:not(:hover) {
- background: none;
- border: none;
- box-shadow: none;
-}
-#updater > .move {
- padding: 0 3px;
-}
-#updater > div:last-child {
- text-align: center;
-}
-#updater input[type=number] {
- width: 4em;
-}
-#updater:not(:hover) > div:not(.move) {
- display: none;
-}
-#updater input[type="button"] {
- width: 100%;
-}
-.new {
- color: limegreen;
-}
-
-/* Thread Watcher */
-#thread-watcher {
- max-width: 200px;
- min-width: 150px;
- padding: 3px;
- position: absolute;
-}
-#thread-watcher > div:first-child {
- display: -webkit-flex;
- display: flex;
- -webkit-align-items: center;
- align-items: center;
-}
-#thread-watcher .move {
- -webkit-flex: 1;
- flex: 1;
-}
-#watcher-status:not(:empty)::before {
- content: "(";
-}
-#watcher-status:not(:empty)::after {
- content: ")";
-}
-#watched-threads:not(:hover) {
- max-height: 150px;
- overflow: hidden;
-}
-#watched-threads div {
- overflow: hidden;
- text-overflow: ellipsis;
- white-space: nowrap;
-}
-#watched-threads .current {
- font-weight: 700;
-}
-#watched-threads a {
- text-decoration: none;
-}
-#watched-threads .dead-thread a[title] {
- text-decoration: line-through;
-}
-
-/* Thread Stats */
-#thread-stats {
- background: none;
- border: none;
- box-shadow: none;
-}
-
-/* Quote */
-.deadlink {
- text-decoration: none !important;
-}
-.backlink.deadlink:not(.forwardlink),
-.quotelink.deadlink:not(.forwardlink) {
- text-decoration: underline !important;
-}
-.inlined {
- opacity: .5;
-}
-#qp input, .forwarded {
- display: none;
-}
-.quotelink.forwardlink,
-.backlink.forwardlink {
- text-decoration: none;
- border-bottom: 1px dashed;
-}
-.filtered {
- text-decoration: underline line-through;
-}
-.inline {
- border: 1px solid;
- display: table;
- margin: 2px 0;
-}
-.inline .post {
- border: 0 !important;
- background-color: transparent !important;
- display: table !important;
- margin: 0 !important;
- padding: 1px 2px !important;
-}
-#qp > .opContainer::after {
- content: '';
- clear: both;
- display: table;
-}
-#qp .post {
- border: none;
- margin: 0;
- padding: 2px 2px 5px;
-}
-#qp img {
- max-height: 80vh;
- max-width: 50vw;
-}
-.qphl {
- outline: 2px solid rgba(216, 94, 49, .7);
-}
-
-/* File */
-.fileText:hover .fntrunc,
-.fileText:not(:hover) .fnfull,
-.expanded-image > .post > .file > .fileThumb > img[data-md5],
-:not(.expanded-image) > .post > .file > .fileThumb > .full-image {
- display: none;
-}
-.expanding {
- opacity: .5;
-}
-.expanded-image {
- clear: both;
-}
-.expanded-image > .op > .file::after {
- content: '';
- clear: both;
- display: table;
-}
-:root.fit-height .full-image {
- max-height: 100vh;
-}
-:root.fit-width .full-image {
- max-width: 100%;
-}
-:root.gecko.fit-width .full-image {
- width: 100%;
-}
-#ihover {
- -moz-box-sizing: border-box;
- box-sizing: border-box;
- max-height: 100%;
- max-width: 75%;
- padding-bottom: 16px;
-}
-
-/* Index/Reply Navigation */
-#navlinks {
- font-size: 16px;
- top: 25px;
- right: 10px;
-}
-
-/* Filter */
-.opContainer.filter-highlight {
- box-shadow: inset 5px 0 rgba(255, 0, 0, .5);
-}
-.filter-highlight > .reply {
- box-shadow: -5px 0 rgba(255, 0, 0, .5);
-}
-
-/* Thread & Reply Hiding */
-.hide-thread-button,
-.hide-reply-button {
- float: left;
- margin-right: 2px;
-}
-.stub ~ * {
- display: none !important;
-}
-.stub input {
- display: inline-block;
-}
-
-/* QR */
-:root.hide-original-post-form #postForm,
-:root.hide-original-post-form .postingMode,
-:root.hide-original-post-form #togglePostForm,
-#qr.autohide:not(.has-focus):not(:hover) > form {
- display: none;
-}
-#qr select, #dump-button, .remove, .captcha-img {
- cursor: pointer;
-}
-#qr > div {
- min-width: 300px;
- display: -webkit-flex;
- display: flex;
- -webkit-align-items: center;
- align-items: center;
-}
-#qr .move {
- -webkit-align-self: stretch;
- align-self: stretch;
- -webkit-flex: 1;
- flex: 1;
-}
-#qr select {
- margin: 0;
- -webkit-appearance: none;
- -moz-appearance: none;
- appearance: none;
- border: none;
- background: none;
-}
-#qr option {
- color: #000;
- background-color: #F7F7F7;
-}
-#qr .close {
- padding: 0 3px;
-}
-#qr > form {
- display: -webkit-flex;
- display: flex;
- -webkit-flex-direction: column;
- flex-direction: column;
-}
-.persona {
- display: -webkit-flex;
- display: flex;
-}
-.persona .field {
- -webkit-flex: 1;
- flex: 1;
-}
-.persona .field:hover,
-.persona .field:focus {
- -webkit-flex: 3;
- flex: 3;
-}
-#dump-button {
- background: linear-gradient(#EEE, #CCC);
- border: 1px solid #CCC;
- margin: 0;
- padding: 2px 4px 3px;
- outline: none;
- width: 30px;
-}
-#dump-button:hover,
-#dump-button:focus {
- background: linear-gradient(#FFF, #DDD);
-}
-#dump-button:active,
-.dump #dump-button:not(:hover):not(:focus) {
- background: linear-gradient(#CCC, #DDD);
-}
-:root.gecko #dump-button {
- padding: 0;
-}
-#qr:not(.dump) #dump-list-container {
- display: none;
-}
-#dump-list-container {
- height: 100px;
- position: relative;
- -webkit-user-select: none;
- -moz-user-select: none;
- user-select: none;
-}
-#dump-list {
- counter-reset: qrpreviews;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- overflow: hidden;
- position: absolute;
- white-space: nowrap;
-}
-#dump-list:hover {
- bottom: -12px;
- overflow-x: auto;
- z-index: 1;
-}
-#dump-list::-webkit-scrollbar {
- height: 12px;
-}
-#dump-list::-webkit-scrollbar-thumb {
- border: 1px solid;
-}
-.qr-preview {
- background-position: 50% 20%;
- background-size: cover;
- border: 1px solid #808080;
- color: #FFF !important;
- font-size: 12px;
- -moz-box-sizing: border-box;
- box-sizing: border-box;
- cursor: move;
- display: inline-block;
- height: 92px;
- width: 92px;
- margin: 4px;
- padding: 2px;
- opacity: .6;
- outline: none;
- overflow: hidden;
- position: relative;
- text-shadow: 0 1px 1px #000;
- transition: opacity .25s ease-in-out;
- vertical-align: top;
- white-space: pre;
-}
-.qr-preview:hover,
-.qr-preview:focus {
- opacity: .9;
- color: #FFF !important;
-}
-.qr-preview#selected {
- opacity: 1;
-}
-.qr-preview::before {
- counter-increment: qrpreviews;
- content: counter(qrpreviews);
- font-weight: 700;
- text-shadow: 0 0 3px #000, 0 0 5px #000;
- position: absolute;
- top: 3px;
- right: 3px;
-}
-.qr-preview.drag {
- border-color: red;
- border-style: dashed;
-}
-.qr-preview.over {
- border-color: #FFF;
- border-style: dashed;
-}
-.remove {
- color: #E00 !important;
- font-weight: 700;
- padding: 3px;
-}
-.remove:hover::after {
- content: ' Remove';
-}
-.qr-preview > label {
- background: rgba(0, 0, 0, .5);
- right: 0;
- bottom: 0;
- left: 0;
- position: absolute;
- text-align: center;
-}
-.qr-preview > label > input {
- margin: 1px 0;
- vertical-align: bottom;
-}
-#add-post {
- display: inline-block;
- font-size: 30px;
- height: 30px;
- width: 30px;
- line-height: 1;
- text-align: center;
- position: absolute;
- right: 0;
- bottom: 0;
- z-index: 1;
-}
-#qr textarea {
- min-height: 160px;
- min-width: 100%;
- display: block;
-}
-#qr.has-captcha textarea {
- min-height: 120px;
-}
-.textarea {
- position: relative;
-}
-#char-count {
- color: #000;
- background: hsla(0, 0%, 100%, .5);
- font-size: 8pt;
- position: absolute;
- bottom: 1px;
- right: 1px;
- pointer-events: none;
-}
-#char-count.warning {
- color: red;
-}
-.captcha-img {
- background: #FFF;
- outline: 1px solid #CCC;
- outline-offset: -1px;
-}
-.captcha-img > img {
- display: block;
- height: 57px;
- width: 300px;
-}
-#file-n-submit > input {
- margin: 0;
-}
-#file-n-submit.has-file #qr-no-file {
- visibility: hidden;
-}
-#file-n-submit:not(.has-file) #qr-filename,
-#file-n-submit:not(.has-file) #qr-file-spoiler,
-#file-n-submit:not(.has-file) #qr-filerm {
- display: none;
-}
-#file-n-submit {
- display: -webkit-flex;
- display: flex;
- -webkit-flex-direction: row;
- flex-direction: row;
- -webkit-align-items: center;
- align-items: center;
-}
-#qr-no-file, #qr-filename-container {
- -webkit-flex: 1;
- flex: 1;
-}
-#qr-filename-container {
- cursor: default;
- position: relative;
- margin-left: 2px;
-}
-#qr-filename {
- position: absolute;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- text-overflow: ellipsis;
- overflow: hidden;
- white-space: nowrap;
-}
-#qr-filerm {
- padding: 0 2px;
-}
-#file-n-submit > #qr-file-spoiler {
- margin: 0 2px;
-}
-#file-n-submit input[type='submit'] {
- min-width: 40px;
- -webkit-order: 1;
- order: 1;
-}
-
-/* Menu */
-.menu-button {
- display: inline-block;
- position: relative;
-}
-.menu-button i {
- border-top: 6px solid;
- border-right: 4px solid transparent;
- border-left: 4px solid transparent;
- display: inline-block;
- margin: 2px;
- vertical-align: middle;
-}
-#menu {
- border-bottom: 0;
- display: -webkit-flex;
- display: flex;
- margin: 2px 0;
- -webkit-flex-direction: column;
- flex-direction: column;
- position: absolute;
- outline: none;
-}
-#menu.top {
- top: 100%;
-}
-#menu.bottom {
- bottom: 100%;
-}
-#menu.left {
- left: 0;
-}
-#menu.right {
- right: 0;
-}
-.entry {
- cursor: pointer;
- outline: none;
- padding: 3px 7px;
- position: relative;
- text-decoration: none;
- white-space: nowrap;
-}
-.entry.disabled {
- color: graytext !important;
-}
-.entry.has-submenu {
- padding-right: 20px;
-}
-.has-submenu::after {
- content: '';
- border-left: 6px solid;
- border-top: 4px solid transparent;
- border-bottom: 4px solid transparent;
- display: inline-block;
- margin: 4px;
- position: absolute;
- right: 3px;
-}
-.has-submenu:not(.focused) > .submenu {
- display: none;
-}
-.submenu {
- border-bottom: 0;
- display: -webkit-flex;
- display: flex;
- -webkit-flex-direction: column;
- flex-direction: column;
- position: absolute;
- margin: -1px 0;
-}
-.submenu.top {
- top: 0;
-}
-.submenu.bottom {
- bottom: 0;
-}
-.submenu.left {
- left: 100%;
-}
-.submenu.right {
- right: 100%;
-}
-.entry input {
- margin: 0;
-}
diff --git a/html/General/Header.html b/html/General/Header.html
deleted file mode 100644
index 2e0088f42..000000000
--- a/html/General/Header.html
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
diff --git a/json/archives.json b/json/archives.json
deleted file mode 100644
index 2f1ac503c..000000000
--- a/json/archives.json
+++ /dev/null
@@ -1,110 +0,0 @@
-[{
- "uid": 0,
- "name": "Foolz",
- "domain": "archive.foolz.us",
- "http": true,
- "https": true,
- "software": "foolfuuka",
- "boards": ["a", "co", "gd", "jp", "m", "q", "sp", "tg", "tv", "v", "vg", "vp", "vr", "wsg"],
- "files": ["a", "gd", "jp", "m", "q", "tg", "vg", "vp", "vr", "wsg"]
-}, {
- "uid": 1,
- "name": "NSFW Foolz",
- "domain": "nsfw.foolz.us",
- "http": true,
- "https": true,
- "software": "foolfuuka",
- "boards": ["u"],
- "files": ["u"]
-}, {
- "uid": 2,
- "name": "The Dark Cave",
- "domain": "archive.thedarkcave.org",
- "http": true,
- "https": true,
- "software": "foolfuuka",
- "boards": ["c", "int", "out", "po"],
- "files": ["c", "po"]
-}, {
- "uid": 3,
- "name": "4plebs",
- "domain": "archive.4plebs.org",
- "http": true,
- "https": false,
- "software": "foolfuuka",
- "boards": ["hr", "tg", "tv", "x"],
- "files": ["hr", "tg", "tv", "x"]
-}, {
- "uid": 4,
- "name": "Nyafuu",
- "domain": "archive.nyafuu.org",
- "http": true,
- "https": true,
- "software": "foolfuuka",
- "boards": ["c", "w", "wg"],
- "files": ["c", "w", "wg"]
-}, {
- "uid": 11,
- "name": "Foolz a Shit",
- "domain": "archive.foolzashit.com",
- "http": true,
- "https": true,
- "software": "foolfuuka",
- "boards": ["adv", "asp", "cm", "d", "e", "i", "lgbt", "n", "o", "p", "pol", "s", "s4s", "t", "trv", "y"],
- "files": ["cm", "d", "e", "i", "n", "o", "p", "s", "trv", "y"]
-}, {
- "uid": 12,
- "name": "fap archive",
- "domain": "fuuka.worldathleticproject.org",
- "http": true,
- "https": false,
- "software": "foolfuuka",
- "boards": ["b", "e", "h", "hc", "p", "s", "u"],
- "files": ["b", "e", "h", "hc", "p", "s", "u"]
-}, {
- "uid": 7,
- "name": "Install Gentoo",
- "domain": "archive.installgentoo.net",
- "http": false,
- "https": true,
- "software": "fuuka",
- "boards": ["diy", "g", "sci"],
- "files": []
-}, {
- "uid": 8,
- "name": "Rebecca Black Tech",
- "domain": "rbt.asia",
- "http": true,
- "https": true,
- "software": "fuuka",
- "boards": ["cgl", "g", "mu", "w"],
- "files": ["cgl", "g", "mu", "w"]
-}, {
- "uid": 9,
- "name": "Heinessen",
- "domain": "archive.heinessen.com",
- "http": true,
- "https": false,
- "software": "fuuka",
- "boards": ["an", "fit", "k", "mlp", "r9k", "toy"],
- "files": ["an", "fit", "k", "r9k", "toy"]
-}, {
- "uid": 10,
- "name": "warosu",
- "domain": "fuuka.warosu.org",
- "http": true,
- "https": true,
- "software": "fuuka",
- "boards": ["3", "cgl", "ck", "fa", "ic", "jp", "lit", "q", "tg", "vr"],
- "files": ["3", "cgl", "ck", "fa", "ic", "jp", "lit", "q", "tg", "vr"]
-}, {
- "uid": 13,
- "name": "Foolz Beta",
- "domain": "beta.foolz.us",
- "http": true,
- "https": true,
- "withCredentials": true,
- "software": "foolfuuka",
- "boards": ["a", "co", "d", "gd", "h", "jp", "m", "mlp", "q", "sp", "tg", "tv", "u", "v", "vg", "vp", "vr", "wsg"],
- "files": ["a", "d", "gd", "h", "jp", "m", "q", "tg", "u", "vg", "vp", "vr", "wsg"]
-}]
diff --git a/latest.js b/latest.js
old mode 100644
new mode 100755
index 45ec3a6f9..2a4cf0e2d
--- a/latest.js
+++ b/latest.js
@@ -1 +1 @@
-postMessage({version:'1.2.25'},'*')
+postMessage({version:'1.2.27'},'*')
diff --git a/package.json b/package.json
old mode 100644
new mode 100755
index 96bad6cdc..a7803c6f5
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "4chan-X",
- "version": "1.2.25",
+ "version": "1.2.27",
"description": "Cross-browser userscript for maximum lurking on 4chan.",
"meta": {
diff --git a/src/Archive/Redirect.coffee b/src/Archive/Redirect.coffee
old mode 100644
new mode 100755
diff --git a/src/Filtering/Anonymize.coffee b/src/Filtering/Anonymize.coffee
old mode 100644
new mode 100755
diff --git a/src/Filtering/Filter.coffee b/src/Filtering/Filter.coffee
old mode 100644
new mode 100755
diff --git a/src/Filtering/PostHiding.coffee b/src/Filtering/PostHiding.coffee
old mode 100644
new mode 100755
index 2ee2c6716..b9440d1e5
--- a/src/Filtering/PostHiding.coffee
+++ b/src/Filtering/PostHiding.coffee
@@ -138,7 +138,7 @@ PostHiding =
makeButton: (post, type) ->
a = $.el 'a',
className: "#{type}-reply-button"
- innerHTML: " #{if type is 'hide' then '-' else '+'} "
+ innerHTML: " #{if type is 'hide' then '-' else '+'} "
href: 'javascript:;'
$.on a, 'click', PostHiding.toggle
a
diff --git a/src/Filtering/Recursive.coffee b/src/Filtering/Recursive.coffee
old mode 100644
new mode 100755
diff --git a/src/Filtering/ThreadHiding.coffee b/src/Filtering/ThreadHiding.coffee
old mode 100644
new mode 100755
index 3774bff4b..9bb0dde75
--- a/src/Filtering/ThreadHiding.coffee
+++ b/src/Filtering/ThreadHiding.coffee
@@ -134,7 +134,7 @@ ThreadHiding =
makeButton: (thread, type) ->
a = $.el 'a',
className: "#{type}-thread-button"
- innerHTML: " #{if type is 'hide' then '-' else '+'} "
+ innerHTML: " #{if type is 'hide' then '-' else '+'} "
href: 'javascript:;'
a.dataset.fullID = thread.fullID
$.on a, 'click', ThreadHiding.toggle
diff --git a/src/General/Build.coffee b/src/General/Build.coffee
old mode 100644
new mode 100755
diff --git a/src/General/Config.coffee b/src/General/Config.coffee
old mode 100644
new mode 100755
diff --git a/src/General/Get.coffee b/src/General/Get.coffee
old mode 100644
new mode 100755
diff --git a/src/General/Globals.coffee b/src/General/Globals.coffee
old mode 100644
new mode 100755
diff --git a/src/General/Header.coffee b/src/General/Header.coffee
old mode 100644
new mode 100755
index 0af1aa9e2..c7089e329
--- a/src/General/Header.coffee
+++ b/src/General/Header.coffee
@@ -112,7 +112,7 @@ Header =
a.className = 'current'
boardList = $.el 'span',
id: 'board-list'
- innerHTML: " - #{fourchannav.innerHTML} "
+ innerHTML: " - #{fourchannav.innerHTML} "
fullBoardList = $ '#full-board-list', boardList
btn = $ '.hide-board-list-button', fullBoardList
$.on btn, 'click', Header.toggleBoardList
@@ -310,7 +310,7 @@ Header =
addShortcut: (el) ->
shortcut = $.el 'span',
- className: 'shortcut fourchanx-link'
+ className: 'shortcut brackets-wrap'
$.add shortcut, el
$.prepend Header.shortcuts, shortcut
diff --git a/src/General/Main.coffee b/src/General/Main.coffee
old mode 100644
new mode 100755
index 4b93e1f34..39844c3a6
--- a/src/General/Main.coffee
+++ b/src/General/Main.coffee
@@ -1,18 +1,5 @@
Main =
init: ->
- pathname = location.pathname.split '/'
- g.BOARD = new Board pathname[1]
- return if g.BOARD.ID in ['z', 'fk']
- g.VIEW =
- switch pathname[2]
- when 'res'
- 'thread'
- when 'catalog'
- 'catalog'
- else
- 'index'
- if g.VIEW is 'thread'
- g.THREADID = +pathname[3]
# flatten Config into Conf
# and get saved or default values
@@ -30,7 +17,6 @@ Main =
Conf[db] = boards: {}
Conf['selectedArchives'] = {}
Conf['CachedTitles'] = []
-
$.get Conf, (items) ->
$.extend Conf, items
<% if (type === 'crx') { %>
@@ -52,7 +38,6 @@ Main =
Main.initStyle
initFeatures: ->
- Conf
pathname = location.pathname.split '/'
g.BOARD = new Board pathname[1]
diff --git a/src/General/Settings.coffee b/src/General/Settings.coffee
old mode 100644
new mode 100755
index eaa4e908a..5d5192179
--- a/src/General/Settings.coffee
+++ b/src/General/Settings.coffee
@@ -22,7 +22,6 @@ Settings =
$.on d, '4chanXInitFinished', Settings.open
$.set
archives: Conf['archives']
- lastarchivecheck: now
previousversion: g.VERSION
Settings.addSection 'Main', Settings.main
diff --git a/src/General/UI.coffee b/src/General/UI.coffee
old mode 100644
new mode 100755
diff --git a/src/General/audio/beep.wav b/src/General/audio/beep.wav
old mode 100644
new mode 100755
diff --git a/src/General/css/burichan.css b/src/General/css/burichan.css
old mode 100644
new mode 100755
index 917dea36c..6476a5539
--- a/src/General/css/burichan.css
+++ b/src/General/css/burichan.css
@@ -52,7 +52,7 @@
}
/* Watcher Favicon */
-:root.burichan .watcher-toggler
+:root.burichan .watch-thread-link
{
background-image: url("data:image/svg+xml, ");
}
diff --git a/src/General/css/futaba.css b/src/General/css/futaba.css
old mode 100644
new mode 100755
index 3a090155c..9b56af61a
--- a/src/General/css/futaba.css
+++ b/src/General/css/futaba.css
@@ -52,7 +52,7 @@
}
/* Watcher Favicon */
-:root.futaba .watcher-toggler
+:root.futaba .watch-thread-link
{
background-image: url("data:image/svg+xml, ");
}
diff --git a/src/General/css/photon.css b/src/General/css/photon.css
old mode 100644
new mode 100755
index 8eb680e14..7f2370192
--- a/src/General/css/photon.css
+++ b/src/General/css/photon.css
@@ -52,7 +52,7 @@
}
/* Watcher Favicon */
-:root.photon .watcher-toggler
+:root.photon .watch-thread-link
{
background-image: url("data:image/svg+xml, ");
}
diff --git a/src/General/css/style.css b/src/General/css/style.css
old mode 100644
new mode 100755
index 65ffb5770..aa8008824
--- a/src/General/css/style.css
+++ b/src/General/css/style.css
@@ -39,7 +39,7 @@
overflow: hidden;
}
label,
-.watcher-toggler {
+.watch-thread-link {
cursor: pointer;
}
a[href="javascript:;"] {
@@ -227,10 +227,10 @@ a {
font-weight: bold;
}
/* 4chan X link brackets */
-.fourchanx-link::after {
+.brackets-wrap::after {
content: "]";
}
-.fourchanx-link::before {
+.brackets-wrap::before {
content: "[";
}
/* Notifications */
@@ -472,12 +472,16 @@ a.hide-announcement {
}
#thread-watcher {
padding-bottom: 3px;
+ padding-left: 3px;
overflow: hidden;
white-space: nowrap;
- min-width: 120px;
+ min-width: 136px;
max-height: 92%;
overflow-y: auto;
}
+#thread-watcher .menu-button {
+ bottom: 1px;
+}
:root.fixed-watcher #thread-watcher {
position: fixed;
}
@@ -488,7 +492,7 @@ a.hide-announcement {
#thread-watcher > .move {
padding-top: 3px;
}
-#thread-watcher > div {
+#watched-threads > div {
max-width: 250px;
overflow: hidden;
padding-left: 3px;
@@ -504,7 +508,7 @@ a.hide-announcement {
top: 0px;
padding: 0px 4px;
}
-.watcher-toggler {
+.watch-thread-link {
padding-top: 18px;
width: 18px;
height: 0px;
@@ -514,7 +518,7 @@ a.hide-announcement {
position: relative;
top: 1px;
}
-.watcher-toggler.watched {
+.watch-thread-link.watched {
opacity: 1;
}
diff --git a/src/General/css/tomorrow.css b/src/General/css/tomorrow.css
old mode 100644
new mode 100755
index 343b62c60..6f8d64b49
--- a/src/General/css/tomorrow.css
+++ b/src/General/css/tomorrow.css
@@ -58,7 +58,7 @@
}
/* Watcher Favicon */
-:root.tomorrow .watcher-toggler
+:root.tomorrow .watch-thread-link
{
background-image: url("data:image/svg+xml, ");
}
diff --git a/src/General/css/yotsuba-b.css b/src/General/css/yotsuba-b.css
old mode 100644
new mode 100755
index 486554f35..d3bdd0234
--- a/src/General/css/yotsuba-b.css
+++ b/src/General/css/yotsuba-b.css
@@ -52,7 +52,7 @@
}
/* Watcher Favicon */
-:root.yotsuba-b .watcher-toggler
+:root.yotsuba-b .watch-thread-link
{
background-image: url("data:image/svg+xml, ");
}
diff --git a/src/General/css/yotsuba.css b/src/General/css/yotsuba.css
old mode 100644
new mode 100755
index 0cc6f5533..a06ab02fb
--- a/src/General/css/yotsuba.css
+++ b/src/General/css/yotsuba.css
@@ -52,7 +52,7 @@
}
/* Watcher Favicon */
-:root.yotsuba .watcher-toggler
+:root.yotsuba .watch-thread-link
{
background-image: url("data:image/svg+xml, ");
}
diff --git a/src/General/html/Build/post.html b/src/General/html/Build/post.html
old mode 100644
new mode 100755
index 239dec4f7..234b356f4
--- a/src/General/html/Build/post.html
+++ b/src/General/html/Build/post.html
@@ -34,7 +34,7 @@
- #{subject}
+ #{subject}
#{emailStart}
#{name or ''}
diff --git a/src/General/html/Features/QuickReply.html b/src/General/html/Features/QuickReply.html
old mode 100644
new mode 100755
diff --git a/src/General/html/Monitoring/ThreadWatcher.html b/src/General/html/Monitoring/ThreadWatcher.html
old mode 100644
new mode 100755
index 3bd29775f..a564a3067
--- a/src/General/html/Monitoring/ThreadWatcher.html
+++ b/src/General/html/Monitoring/ThreadWatcher.html
@@ -1,5 +1,2 @@
-
+
diff --git a/src/General/html/Settings/Advanced.html b/src/General/html/Settings/Advanced.html
old mode 100644
new mode 100755
diff --git a/src/General/html/Settings/Filter-guide.html b/src/General/html/Settings/Filter-guide.html
old mode 100644
new mode 100755
diff --git a/src/General/html/Settings/Filter-select.html b/src/General/html/Settings/Filter-select.html
old mode 100644
new mode 100755
diff --git a/src/General/html/Settings/Keybinds.html b/src/General/html/Settings/Keybinds.html
old mode 100644
new mode 100755
diff --git a/src/General/html/Settings/Sauce.html b/src/General/html/Settings/Sauce.html
old mode 100644
new mode 100755
diff --git a/src/General/html/Settings/Settings.html b/src/General/html/Settings/Settings.html
old mode 100644
new mode 100755
diff --git a/src/General/img/changelog/1.1.18.png b/src/General/img/changelog/1.1.18.png
old mode 100644
new mode 100755
diff --git a/src/General/img/changelog/1.2.0.png b/src/General/img/changelog/1.2.0.png
old mode 100644
new mode 100755
diff --git a/src/General/img/emoji/SS-sage.png b/src/General/img/emoji/SS-sage.png
old mode 100644
new mode 100755
diff --git a/src/General/img/emoji/appchan-sage.png b/src/General/img/emoji/appchan-sage.png
old mode 100644
new mode 100755
diff --git a/src/General/img/emoji/arch.png b/src/General/img/emoji/arch.png
old mode 100644
new mode 100755
diff --git a/src/General/img/emoji/baka.png b/src/General/img/emoji/baka.png
old mode 100644
new mode 100755
diff --git a/src/General/img/emoji/centos.png b/src/General/img/emoji/centos.png
old mode 100644
new mode 100755
diff --git a/src/General/img/emoji/crunchbang.png b/src/General/img/emoji/crunchbang.png
old mode 100644
new mode 100755
diff --git a/src/General/img/emoji/debian.png b/src/General/img/emoji/debian.png
old mode 100644
new mode 100755
diff --git a/src/General/img/emoji/fedora.png b/src/General/img/emoji/fedora.png
old mode 100644
new mode 100755
diff --git a/src/General/img/emoji/freebsd.png b/src/General/img/emoji/freebsd.png
old mode 100644
new mode 100755
diff --git a/src/General/img/emoji/gentoo.png b/src/General/img/emoji/gentoo.png
old mode 100644
new mode 100755
diff --git a/src/General/img/emoji/gnu.png b/src/General/img/emoji/gnu.png
old mode 100644
new mode 100755
diff --git a/src/General/img/emoji/madotsuki.png b/src/General/img/emoji/madotsuki.png
old mode 100644
new mode 100755
diff --git a/src/General/img/emoji/mint.png b/src/General/img/emoji/mint.png
old mode 100644
new mode 100755
diff --git a/src/General/img/emoji/neko.png b/src/General/img/emoji/neko.png
old mode 100644
new mode 100755
diff --git a/src/General/img/emoji/openbsd.png b/src/General/img/emoji/openbsd.png
old mode 100644
new mode 100755
diff --git a/src/General/img/emoji/osx.png b/src/General/img/emoji/osx.png
old mode 100644
new mode 100755
diff --git a/src/General/img/emoji/plan9.png b/src/General/img/emoji/plan9.png
old mode 100644
new mode 100755
diff --git a/src/General/img/emoji/ponyo.png b/src/General/img/emoji/ponyo.png
old mode 100644
new mode 100755
diff --git a/src/General/img/emoji/rabite.png b/src/General/img/emoji/rabite.png
old mode 100644
new mode 100755
diff --git a/src/General/img/emoji/rhel.png b/src/General/img/emoji/rhel.png
old mode 100644
new mode 100755
diff --git a/src/General/img/emoji/sabayon.png b/src/General/img/emoji/sabayon.png
old mode 100644
new mode 100755
diff --git a/src/General/img/emoji/sakamoto.png b/src/General/img/emoji/sakamoto.png
old mode 100644
new mode 100755
diff --git a/src/General/img/emoji/sega.png b/src/General/img/emoji/sega.png
old mode 100644
new mode 100755
diff --git a/src/General/img/emoji/slackware.png b/src/General/img/emoji/slackware.png
old mode 100644
new mode 100755
diff --git a/src/General/img/emoji/trisquel.png b/src/General/img/emoji/trisquel.png
old mode 100644
new mode 100755
diff --git a/src/General/img/emoji/ubuntu.png b/src/General/img/emoji/ubuntu.png
old mode 100644
new mode 100755
diff --git a/src/General/img/emoji/windows.png b/src/General/img/emoji/windows.png
old mode 100644
new mode 100755
diff --git a/src/General/img/emoji/yuno.png b/src/General/img/emoji/yuno.png
old mode 100644
new mode 100755
diff --git a/src/General/img/favicons/Mayhem/unreadDead.png b/src/General/img/favicons/Mayhem/unreadDead.png
old mode 100644
new mode 100755
diff --git a/src/General/img/favicons/Mayhem/unreadDeadY.png b/src/General/img/favicons/Mayhem/unreadDeadY.png
old mode 100644
new mode 100755
diff --git a/src/General/img/favicons/Mayhem/unreadNSFW.png b/src/General/img/favicons/Mayhem/unreadNSFW.png
old mode 100644
new mode 100755
diff --git a/src/General/img/favicons/Mayhem/unreadNSFWY.png b/src/General/img/favicons/Mayhem/unreadNSFWY.png
old mode 100644
new mode 100755
diff --git a/src/General/img/favicons/Mayhem/unreadSFW.png b/src/General/img/favicons/Mayhem/unreadSFW.png
old mode 100644
new mode 100755
diff --git a/src/General/img/favicons/Mayhem/unreadSFWY.png b/src/General/img/favicons/Mayhem/unreadSFWY.png
old mode 100644
new mode 100755
diff --git a/src/General/img/favicons/Original/unreadDead.gif b/src/General/img/favicons/Original/unreadDead.gif
old mode 100644
new mode 100755
diff --git a/src/General/img/favicons/Original/unreadDeadY.png b/src/General/img/favicons/Original/unreadDeadY.png
old mode 100644
new mode 100755
diff --git a/src/General/img/favicons/Original/unreadNSFW.gif b/src/General/img/favicons/Original/unreadNSFW.gif
old mode 100644
new mode 100755
diff --git a/src/General/img/favicons/Original/unreadNSFWY.png b/src/General/img/favicons/Original/unreadNSFWY.png
old mode 100644
new mode 100755
diff --git a/src/General/img/favicons/Original/unreadSFW.gif b/src/General/img/favicons/Original/unreadSFW.gif
old mode 100644
new mode 100755
diff --git a/src/General/img/favicons/Original/unreadSFWY.png b/src/General/img/favicons/Original/unreadSFWY.png
old mode 100644
new mode 100755
diff --git a/src/General/img/favicons/dead.gif b/src/General/img/favicons/dead.gif
old mode 100644
new mode 100755
diff --git a/src/General/img/favicons/empty.gif b/src/General/img/favicons/empty.gif
old mode 100644
new mode 100755
diff --git a/src/General/img/favicons/exclamation.png b/src/General/img/favicons/exclamation.png
old mode 100644
new mode 100755
diff --git a/src/General/img/favicons/ferongr/unreadDead.gif b/src/General/img/favicons/ferongr/unreadDead.gif
old mode 100644
new mode 100755
diff --git a/src/General/img/favicons/ferongr/unreadDeadY.png b/src/General/img/favicons/ferongr/unreadDeadY.png
old mode 100644
new mode 100755
diff --git a/src/General/img/favicons/ferongr/unreadNSFW.gif b/src/General/img/favicons/ferongr/unreadNSFW.gif
old mode 100644
new mode 100755
diff --git a/src/General/img/favicons/ferongr/unreadNSFWY.png b/src/General/img/favicons/ferongr/unreadNSFWY.png
old mode 100644
new mode 100755
diff --git a/src/General/img/favicons/ferongr/unreadSFW.gif b/src/General/img/favicons/ferongr/unreadSFW.gif
old mode 100644
new mode 100755
diff --git a/src/General/img/favicons/ferongr/unreadSFWY.png b/src/General/img/favicons/ferongr/unreadSFWY.png
old mode 100644
new mode 100755
diff --git a/src/General/img/favicons/xat-/unreadDead.png b/src/General/img/favicons/xat-/unreadDead.png
old mode 100644
new mode 100755
diff --git a/src/General/img/favicons/xat-/unreadDeadY.png b/src/General/img/favicons/xat-/unreadDeadY.png
old mode 100644
new mode 100755
diff --git a/src/General/img/favicons/xat-/unreadNSFW.png b/src/General/img/favicons/xat-/unreadNSFW.png
old mode 100644
new mode 100755
diff --git a/src/General/img/favicons/xat-/unreadNSFWY.png b/src/General/img/favicons/xat-/unreadNSFWY.png
old mode 100644
new mode 100755
diff --git a/src/General/img/favicons/xat-/unreadSFW.png b/src/General/img/favicons/xat-/unreadSFW.png
old mode 100644
new mode 100755
diff --git a/src/General/img/favicons/xat-/unreadSFWY.png b/src/General/img/favicons/xat-/unreadSFWY.png
old mode 100644
new mode 100755
diff --git a/src/General/img/icon.gif b/src/General/img/icon.gif
old mode 100644
new mode 100755
diff --git a/src/General/img/icon128.png b/src/General/img/icon128.png
old mode 100644
new mode 100755
diff --git a/src/General/img/icon16.png b/src/General/img/icon16.png
old mode 100644
new mode 100755
diff --git a/src/General/img/icon48.png b/src/General/img/icon48.png
old mode 100644
new mode 100755
diff --git a/src/General/img/links/audio.png b/src/General/img/links/audio.png
old mode 100644
new mode 100755
diff --git a/src/General/img/links/gist.png b/src/General/img/links/gist.png
old mode 100644
new mode 100755
diff --git a/src/General/img/links/image.png b/src/General/img/links/image.png
old mode 100644
new mode 100755
diff --git a/src/General/img/links/installgentoo.png b/src/General/img/links/installgentoo.png
old mode 100644
new mode 100755
diff --git a/src/General/img/links/liveleak.png b/src/General/img/links/liveleak.png
old mode 100644
new mode 100755
diff --git a/src/General/img/links/pastebin.png b/src/General/img/links/pastebin.png
old mode 100644
new mode 100755
diff --git a/src/General/img/links/soundcloud.png b/src/General/img/links/soundcloud.png
old mode 100644
new mode 100755
diff --git a/src/General/img/links/vimeo.png b/src/General/img/links/vimeo.png
old mode 100644
new mode 100755
diff --git a/src/General/img/links/vocaroo.png b/src/General/img/links/vocaroo.png
old mode 100644
new mode 100755
diff --git a/src/General/img/links/youtube.png b/src/General/img/links/youtube.png
old mode 100644
new mode 100755
diff --git a/src/General/lib/$.coffee b/src/General/lib/$.coffee
old mode 100644
new mode 100755
diff --git a/src/General/lib/board.class b/src/General/lib/board.class
old mode 100644
new mode 100755
diff --git a/src/General/lib/classes.coffee b/src/General/lib/classes.coffee
old mode 100644
new mode 100755
diff --git a/src/General/lib/clone.class b/src/General/lib/clone.class
old mode 100644
new mode 100755
diff --git a/src/General/lib/databoard.class b/src/General/lib/databoard.class
old mode 100644
new mode 100755
diff --git a/src/General/lib/notification.class b/src/General/lib/notification.class
old mode 100644
new mode 100755
diff --git a/src/General/lib/polyfill.coffee b/src/General/lib/polyfill.coffee
old mode 100644
new mode 100755
diff --git a/src/General/lib/post.class b/src/General/lib/post.class
old mode 100644
new mode 100755
diff --git a/src/General/lib/thread.class b/src/General/lib/thread.class
old mode 100644
new mode 100755
diff --git a/src/General/meta/banner.js b/src/General/meta/banner.js
old mode 100644
new mode 100755
diff --git a/src/General/meta/botproc.js b/src/General/meta/botproc.js
old mode 100644
new mode 100755
diff --git a/src/General/meta/latest.js b/src/General/meta/latest.js
old mode 100644
new mode 100755
diff --git a/src/General/meta/manifest.json b/src/General/meta/manifest.json
old mode 100644
new mode 100755
index fb8cfba4e..b9793bda3
--- a/src/General/meta/manifest.json
+++ b/src/General/meta/manifest.json
@@ -15,8 +15,7 @@
"run_at": "document_start"
}],
"homepage_url": "<%= meta.page %>",
- "minimum_chrome_version": "27",
- "minimum_opera_version": "15",
+ "minimum_chrome_version": "26",
"permissions": [
"storage"
]
diff --git a/src/General/meta/metadata.js b/src/General/meta/metadata.js
old mode 100644
new mode 100755
diff --git a/src/General/meta/usestrict.js b/src/General/meta/usestrict.js
old mode 100644
new mode 100755
diff --git a/src/Images/FappeTyme.coffee b/src/Images/FappeTyme.coffee
old mode 100644
new mode 100755
diff --git a/src/Images/ImageExpand.coffee b/src/Images/ImageExpand.coffee
old mode 100644
new mode 100755
diff --git a/src/Images/ImageHover.coffee b/src/Images/ImageHover.coffee
old mode 100644
new mode 100755
diff --git a/src/Images/ImageLoader.coffee b/src/Images/ImageLoader.coffee
old mode 100644
new mode 100755
diff --git a/src/Images/RevealSpoilers.coffee b/src/Images/RevealSpoilers.coffee
old mode 100644
new mode 100755
diff --git a/src/Images/Sauce.coffee b/src/Images/Sauce.coffee
old mode 100644
new mode 100755
diff --git a/src/Linkification/Linkify.coffee b/src/Linkification/Linkify.coffee
old mode 100644
new mode 100755
diff --git a/src/Menu/ArchiveLink.coffee b/src/Menu/ArchiveLink.coffee
old mode 100644
new mode 100755
diff --git a/src/Menu/DeleteLink.coffee b/src/Menu/DeleteLink.coffee
old mode 100644
new mode 100755
diff --git a/src/Menu/DownloadLink.coffee b/src/Menu/DownloadLink.coffee
old mode 100644
new mode 100755
diff --git a/src/Menu/Menu.coffee b/src/Menu/Menu.coffee
old mode 100644
new mode 100755
diff --git a/src/Menu/ReportLink.coffee b/src/Menu/ReportLink.coffee
old mode 100644
new mode 100755
diff --git a/src/Miscellaneous/AnnouncementHiding.coffee b/src/Miscellaneous/AnnouncementHiding.coffee
old mode 100644
new mode 100755
index 411d3bbae..6cc1fe463
--- a/src/Miscellaneous/AnnouncementHiding.coffee
+++ b/src/Miscellaneous/AnnouncementHiding.coffee
@@ -24,7 +24,7 @@ PSAHiding =
$.on entry.el, 'click', PSAHiding.toggle
PSAHiding.btn = btn = $.el 'a',
- innerHTML: ' - '
+ innerHTML: ' - '
title: 'Hide announcement.'
className: 'hide-announcement'
href: 'javascript:;'
diff --git a/src/Miscellaneous/CatalogLinks.coffee b/src/Miscellaneous/CatalogLinks.coffee
old mode 100644
new mode 100755
diff --git a/src/Miscellaneous/ColorUserIDs.coffee b/src/Miscellaneous/ColorUserIDs.coffee
old mode 100644
new mode 100755
diff --git a/src/Miscellaneous/CustomCSS.coffee b/src/Miscellaneous/CustomCSS.coffee
old mode 100644
new mode 100755
diff --git a/src/Miscellaneous/Dice.coffee b/src/Miscellaneous/Dice.coffee
old mode 100644
new mode 100755
diff --git a/src/Miscellaneous/Emoji.coffee b/src/Miscellaneous/Emoji.coffee
old mode 100644
new mode 100755
diff --git a/src/Miscellaneous/ExpandComment.coffee b/src/Miscellaneous/ExpandComment.coffee
old mode 100644
new mode 100755
diff --git a/src/Miscellaneous/ExpandThread.coffee b/src/Miscellaneous/ExpandThread.coffee
old mode 100644
new mode 100755
diff --git a/src/Miscellaneous/FileInfo.coffee b/src/Miscellaneous/FileInfo.coffee
old mode 100644
new mode 100755
diff --git a/src/Miscellaneous/Fourchan.coffee b/src/Miscellaneous/Fourchan.coffee
old mode 100644
new mode 100755
diff --git a/src/Miscellaneous/Keybinds.coffee b/src/Miscellaneous/Keybinds.coffee
old mode 100644
new mode 100755
diff --git a/src/Miscellaneous/Nav.coffee b/src/Miscellaneous/Nav.coffee
old mode 100644
new mode 100755
diff --git a/src/Miscellaneous/RelativeDates.coffee b/src/Miscellaneous/RelativeDates.coffee
old mode 100644
new mode 100755
diff --git a/src/Miscellaneous/RemoveSpoilers.coffee b/src/Miscellaneous/RemoveSpoilers.coffee
old mode 100644
new mode 100755
diff --git a/src/Miscellaneous/Report.coffee b/src/Miscellaneous/Report.coffee
old mode 100644
new mode 100755
index f0782aab5..109c55aa0
--- a/src/Miscellaneous/Report.coffee
+++ b/src/Miscellaneous/Report.coffee
@@ -1,6 +1,6 @@
Report =
init: ->
- return unless /report/.test(location.search) and not d.cookie.contains 'pass_enabled=1'
+ return unless /report/.test(location.search)
$.asap (-> $.id 'recaptcha_response_field'), Report.ready
ready: ->
field = $.id 'recaptcha_response_field'
diff --git a/src/Miscellaneous/Time.coffee b/src/Miscellaneous/Time.coffee
old mode 100644
new mode 100755
diff --git a/src/Monitoring/Favicon.coffee b/src/Monitoring/Favicon.coffee
old mode 100644
new mode 100755
diff --git a/src/Monitoring/ThreadExcerpt.coffee b/src/Monitoring/ThreadExcerpt.coffee
old mode 100644
new mode 100755
diff --git a/src/Monitoring/ThreadStats.coffee b/src/Monitoring/ThreadStats.coffee
old mode 100644
new mode 100755
diff --git a/src/Monitoring/ThreadUpdater.coffee b/src/Monitoring/ThreadUpdater.coffee
old mode 100644
new mode 100755
diff --git a/src/Monitoring/ThreadWatcher.coffee b/src/Monitoring/ThreadWatcher.coffee
old mode 100644
new mode 100755
index 4f45ce930..001b89d43
--- a/src/Monitoring/ThreadWatcher.coffee
+++ b/src/Monitoring/ThreadWatcher.coffee
@@ -45,7 +45,7 @@ ThreadWatcher =
node: ->
toggler = $.el 'img',
- className: 'watcher-toggler'
+ className: 'watch-thread-link'
$.on toggler, 'click', ThreadWatcher.cb.toggle
$.before $('input', @OP.nodes.post), toggler
@@ -175,7 +175,7 @@ ThreadWatcher =
$.add list, nodes
for threadID, thread of g.BOARD.threads
- toggler = $ '.watcher-toggler', thread.OP.nodes.post
+ toggler = $ '.watch-thread-link', thread.OP.nodes.post
watched = ThreadWatcher.db.get {boardID: thread.board.ID, threadID}
$[if watched then 'addClass' else 'rmClass'] toggler, 'watched'
diff --git a/src/Monitoring/Unread.coffee b/src/Monitoring/Unread.coffee
old mode 100644
new mode 100755
diff --git a/src/Posting/QuickReply.coffee b/src/Posting/QuickReply.coffee
old mode 100644
new mode 100755
index 85039176b..d0dc911b5
--- a/src/Posting/QuickReply.coffee
+++ b/src/Posting/QuickReply.coffee
@@ -1050,8 +1050,8 @@ QR =
QR.status()
QR.error $.el 'span',
innerHTML: """
- 4chan X encountered an error while posting. Please try again.
- [? ]
+ 4chan X encountered an error while posting.
+ [Banned? ] [More info ]
"""
extra =
form: $.formData postData
diff --git a/src/Quotelinks/QuoteBacklink.coffee b/src/Quotelinks/QuoteBacklink.coffee
old mode 100644
new mode 100755
diff --git a/src/Quotelinks/QuoteCT.coffee b/src/Quotelinks/QuoteCT.coffee
old mode 100644
new mode 100755
diff --git a/src/Quotelinks/QuoteInline.coffee b/src/Quotelinks/QuoteInline.coffee
old mode 100644
new mode 100755
diff --git a/src/Quotelinks/QuoteOP.coffee b/src/Quotelinks/QuoteOP.coffee
old mode 100644
new mode 100755
diff --git a/src/Quotelinks/QuotePreview.coffee b/src/Quotelinks/QuotePreview.coffee
old mode 100644
new mode 100755
diff --git a/src/Quotelinks/QuoteStrikeThrough.coffee b/src/Quotelinks/QuoteStrikeThrough.coffee
old mode 100644
new mode 100755
diff --git a/src/Quotelinks/QuoteThreading.coffee b/src/Quotelinks/QuoteThreading.coffee
old mode 100644
new mode 100755
diff --git a/src/Quotelinks/QuoteYou.coffee b/src/Quotelinks/QuoteYou.coffee
old mode 100644
new mode 100755
diff --git a/src/Quotelinks/Quotify.coffee b/src/Quotelinks/Quotify.coffee
old mode 100644
new mode 100755