@dbp-topics/sublibrary
Version:
[GitLab Repository](https://github.com/digital-blueprint/sublibrary-app) | [npmjs package](https://www.npmjs.com/package/@dbp-topics/sublibrary) | [Unpkg CDN](https://unpkg.com/browse/@dbp-topics/sublibrary/) | [Sublibrary Bundle](https://gitlab.tugraz.at
1,236 lines • 265 kB
JavaScript
let _2 = t => t,
_t2,
_t3;
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
/*!
* License: LGPL-2.1-or-later
* Dependencies:
*
* @dbp-toolkit/common: LGPL-2.1-or-later
* jquery: MIT
* select2: MIT
* @dbp-toolkit/resource-select: LGPL-2.1-or-later
*/
import { f as e, h as t, s as n, A as r, j as i, m as o, g as s, a, b as l, c as u, i as c, d, y as p } from "./_commonjsHelpers.01af1198.es.js";
var h = {
"book-list": {
"book-author": "Autor",
"book-availability-date": "Inventarisierungsdatum",
"book-barcode": "Barcode",
"book-description": "Beschreibung",
"book-inventory-year": "Inventarisierungsjahr",
"book-isbn": "ISBN/ISSN",
"book-location-identifier": "Aufstellung",
"book-publication-year": "Erscheinungsjahr",
"book-publisher": "Verlag",
"book-title": "Titel",
books: "Bücher",
"current-state": "Stand",
"error-load-books": "Liste der Bücher konnte nicht geladen werden",
"export-name": "Buchliste {{organizationCode}}",
"inventory-year-select-placeholder": "Bitte wählen Sie ein Inventarisierungsjahr aus um die Büchsterliste einzuschränken",
"location-identifier-select-placeholder": "Bitte wählen Sie eine Aufstellung aus um die Büchsterliste einzuschränken",
"mini-spinner-text": "Bücher werden geladen...",
"no-books": "Es sind keine Bücher vorhanden."
},
budget: {
"budget-key-values": "Budgetzahlen",
"load-error": "Fehler beim Laden der Budgetwerte",
"mini-spinner-text": "Budgetzahlen werden geladen...",
"no-budget": "Für dieses Institut existieren keine Budgetzahlen!",
taa: "Zugewiesenes Guthaben (inkl. Übertrag vom Vorjahr)",
"taa-tcb": "Summe Rechnungsbelastungen",
tab: "Verfügbares Guthaben",
tcb: "Aktuelles Guthaben",
"tcb-tab": "Belastetes Guthaben (offene Bestellungen)"
},
"create-loan": {
"button-refresh-title": "Entlehnungen von {{name}} erneut überprüfen",
"error-existing-loans-body": "Es wurde eine bestehende Entlehnung gefunden, das Buch kann nicht entlehnt werden!",
"error-existing-loans-summary": "Bestehende Entlehnung!",
"info-no-existing-loans-body": "Es wurden keine bestehenden Entlehnungen gefunden, das Buch kann entlehnt werden.",
"info-no-existing-loans-summary": "Keine bestehenden Entlehnungen",
"mini-spinner-text": "Entlehnungen werden geladen...",
submit: "Buch entlehnen",
"success-body": "Das Buch wurde erfolgreich entlehnt.",
"success-summary": "Buchentlehnung erfolgreich"
},
"error-login-message": "Sie müssen eingeloggt sein um diese Funktion nutzen zu können!",
"error-permission-message": "Sie müssen Bibliotheksbeauftragte/r sein um diese Funktion nutzen zu können!",
"error-summary": "Ein Fehler ist aufgetreten",
"library-book-offer-select": {
headline: "Bibliothek Buch",
placeholder: "Bitte geben Sie einen Barcode ein"
},
"loan-list": {
"book-author": "Autor/Herausgeber",
"borrower-name": "Entlehner",
"current-state": "Stand",
"due-date": "Fällig am",
"error-load-loan": "Entlehnung konnte nicht geladen werden",
"error-load-loans": "Liste der Entlehnungen konnte nicht geladen werden",
"export-name": "Entlehnungen {{organizationCode}}",
loans: "Entlehnungen",
"mini-spinner-text": "Entlehnungen werden geladen...",
"no-loans": "Es sind keine Entlehnungen vorhanden.",
"open-only": "Nur offene Entlehnungen anzeigen",
"overdue-only": "Nur überfällige Entlehnungen anzeigen",
"return-date": "Rückgegeben am",
"start-date": "Entlehndatum"
},
"location-identifier": {
headline: "Identifikator zur Aufstellung",
placeholder: "Bitte geben Sie den Identifikator um das Buch aufzustellen ein",
submit: "Abschicken"
},
"order-list": {
"book-price": "Preis",
"current-state": "Stand",
"error-load-orders": "Liste der Bestellungen konnte nicht geladen werden",
"export-name": "Buchbestellungen {{organizationCode}}",
"mini-spinner-text": "Bestellungen werden geladen...",
"open-only": "Nur offene Bestellungen anzeigen",
"order-date": "Bestelldatum",
"order-number": "Bestellnummer",
"order-status": "Status",
"receiving -note": "Information",
"status-name-active": "offen",
"status-name-cancelled": "storniert",
"status-name-closed": "abgeschlossen"
},
"organization-select": {
label: "Institut"
},
"person-select": {
headline: "Person"
},
"renew-loan": {
book: "Buch",
"button-refresh-title": "Entlehnungen von {{personName}} erneut laden",
"contact-subject": "Entlehnung von: {{bookName}}",
"contact-title": "Per EMail Kontakt mit {{personName}} aufnehmen",
"contact-value": "EMail",
"end-date": "Rückgabedatum",
"error-load-loans-summary": "Fehler beim Laden der Entlehnungen",
"error-renew-loan-date-in-past": "Enddatum darf nicht in der Vergangenheit liegen!",
"error-renew-loan-summary": "Fehler beim Verlängern",
"info-renew-loan-success-body": "Das Verlängern der Entlehnung war erfolgreich.",
"info-renew-loan-success-summary": "Verlängern erfolgreich",
loans: "Entlehnungen",
"mini-spinner-text": "Entlehnungen werden geladen...",
"no-loans": "Es wurden keine bestehenden Entlehnungen gefunden!",
"renew-loan": "Entlehnung verlängern"
},
"return-book": {
borrower: "Entlehner",
"button-refresh-title": "Entlehnung von {{name}} erneut laden",
"error-no-existing-loans-body": "Es wurden keine bestehenden Entlehnungen gefunden!",
"error-no-existing-loans-summary": "Keine bestehenden Entlehnungen",
"info-existing-loans-body": "Es wurden eine bestehende Entlehnung gefunden, das Buch kann zurückgegeben werden!",
"info-existing-loans-summary": "Bestehende Entlehnung!",
"mini-spinner-text": "Entlehnungen werden geladen...",
submit: "Buch zurückgeben",
"success-body": "Das Buch von {{personName}} wurde erfolgreich zurückgegeben.",
"success-summary": "Buchrückgabe erfolgreich",
"user-name-unknown": "Unbekannt"
},
shelving: {
"button-refresh-title": "Aufstellung von {{name}} erneut laden"
},
"success-body": 'Das Buch "{{name}}" wurde erfolgreich aufgestellt.',
"success-summary": "Buchaufstellung erfolgreich"
},
f = {
"book-list": {
"book-author": "Author",
"book-availability-date": "Availability date",
"book-barcode": "Barcode",
"book-description": "Description",
"book-inventory-year": "Availability year",
"book-isbn": "ISBN/ISSN",
"book-location-identifier": "Location",
"book-publication-year": "Publication year",
"book-publisher": "Publisher",
"book-title": "Title",
books: "Books",
"current-state": "State",
"error-load-books": "List of books could not be loaded",
"export-name": "Books {{organizationCode}}",
"inventory-year-select-placeholder": "Please select a availability year to restrict the book list",
"location-identifier-select-placeholder": "Please select a location to restrict the book list",
"mini-spinner-text": "Loading books...",
"no-books": "There are no books."
},
budget: {
"budget-key-values": "Budget",
"load-error": "Failed to load budget values",
"mini-spinner-text": "Budget will be loaded...",
"no-budget": "There are no budget values for this institute!",
taa: "Allocated credit (including carryover from previous year)",
"taa-tcb": "Sum of billing charges",
tab: "Available balance",
tcb: "Current balances",
"tcb-tab": "Debited credit (open orders)"
},
"create-loan": {
"button-refresh-title": "Check loans of {{name}} again",
"error-existing-loans-body": "Existing loan was found, a new one cannot be created!",
"error-existing-loans-summary": "Existing loan was found!",
"info-no-existing-loans-body": "No existing loans were found, a new one can be created.",
"info-no-existing-loans-summary": "No existing loans",
"mini-spinner-text": "Loading loans...",
submit: "Loan book",
"success-body": "The book loan creation successful.",
"success-summary": "Book loan creation successful"
},
"error-login-message": "You need to be logged in to use this function!",
"error-permission-message": "You need to be a library officer to use this function!",
"error-summary": "An error occurred",
"library-book-offer-select": {
headline: "Library book",
placeholder: "Please enter a barcode"
},
"loan-list": {
"book-author": "Author/Publisher",
"borrower-name": "Borrower",
"current-state": "State",
"due-date": "Due date",
"error-load-loan": "Loan could not be loaded",
"error-load-loans": "List of loans could not be loaded",
"export-name": "Loans {{organizationCode}}",
loans: "Loans",
"mini-spinner-text": "Loading loans...",
"no-loans": "There are no books.",
"open-only": "Show open loans only",
"overdue-only": "Show overdue loans only",
"return-date": "Return date",
"start-date": "Start date"
},
"location-identifier": {
headline: "Identifier for book placement",
placeholder: "Please enter the identifier to place the book",
submit: "Send"
},
"order-list": {
"book-price": "Price",
"current-state": "State",
"error-load-orders": "List of orders could not be loaded",
"export-name": "Orders {{organizationCode}}",
"mini-spinner-text": "Loading order...",
"open-only": "Show open orders only",
"order-date": "Order date",
"order-number": "Order number",
"order-status": "Status",
"receiving -note": "Information",
"status-name-active": "active",
"status-name-cancelled": "cancelled",
"status-name-closed": "closed"
},
"organization-select": {
label: "Institute"
},
"person-select": {
headline: "Person"
},
"renew-loan": {
book: "Book",
"button-refresh-title": "Load loans from {{personName}} again",
"contact-subject": "Loaning of: {{bookName}}",
"contact-title": "Contact {{personName}} via email",
"contact-value": "EMail",
"end-date": "Return date",
"error-load-loans-summary": "Error on loading loans",
"error-renew-loan-date-in-past": "End time may not be in the past!",
"error-renew-loan-summary": "Renewal failed",
"info-renew-loan-success-body": "The renewal of the loan was successful.",
"info-renew-loan-success-summary": "Renewal successfull",
loans: "Loans",
"mini-spinner-text": "Loading loans...",
"no-loans": "No existing loans were found!",
"renew-loan": "Renew loan"
},
"return-book": {
borrower: "Borrower",
"button-refresh-title": "Load loans of {{name}} again",
"error-no-existing-loans-body": "No existing loans were found!",
"error-no-existing-loans-summary": "No existing loans",
"info-existing-loans-body": "Existing loan was found, it can be returned!",
"info-existing-loans-summary": "Existing loan was found!",
"mini-spinner-text": "Loading loans...",
submit: "Return book",
"success-body": "The book from {{personName}} was successfully returned.",
"success-summary": "Book returned successfully",
"user-name-unknown": "Unknown"
},
shelving: {
"button-refresh-title": "Load shelving from {{name}} again"
},
"success-body": 'The book lineup for "{{name}}" was successful.',
"success-summary": "Book lineup successful"
};
function g() {
return e({
en: f,
de: h
}, "de", "en");
}
function m(e) {
return e;
}
const v = e => {
const t = document.createElement("pre"),
n = document.createTextNode(e);
return t.appendChild(n), t.innerHTML;
},
y = e => {
var t = document.createElement("div");
return t.innerHTML = e, t.textContent || t.innerText || "";
},
b = {
handleXhrError(e, r, i, o = "sad", s = "de") {
if ("abort" === r) return;
let a;
const l = t();
l.changeLanguage(s), void 0 !== e.responseJSON && void 0 !== e.responseJSON["hydra:description"] ? a = e.responseJSON["hydra:description"] : void 0 !== e.responseJSON && void 0 !== e.responseJSON.detail ? a = e.responseJSON.detail : (a = r, i && (a += " - " + i)), 0 === e.status && (a = l.t("error.connection-to-server-refused")), n({
summary: l.t("error.summary"),
body: v(y(a)),
icon: o,
type: "danger"
}), void 0 !== this.sendSetPropertyEvent && this.sendSetPropertyEvent("analytics-event", {
category: "XhrError",
action: a
});
},
handleFetchError: async function (e, r = "", i = "sad", o = "de") {
if ("AbortError" === e.name) return;
let s;
const a = t();
a.changeLanguage(o);
try {
await e.json().then(t => {
s = void 0 !== t["hydra:description"] ? t["hydra:description"] : void 0 !== t.detail ? t.detail : e.statusText;
}).catch(() => {
s = void 0 !== e.statusText ? e.statusText : e;
});
} catch (t) {
"TypeError" === e.name && (s = "" !== e.message ? e.message : a.t("error.connection-to-server-refused"));
}
n({
summary: "" === r ? a.t("error.summary") : r,
body: v(y(s)),
icon: i,
type: "danger"
}), void 0 !== this.sendSetPropertyEvent && this.sendSetPropertyEvent("analytics-event", {
category: "FetchError",
action: "" === r ? s : r + ": " + s
});
}
};
class x extends r {
constructor() {
super(), Object.assign(x.prototype, b);
}
_(e) {
return null === this.shadowRoot ? this.querySelector(e) : this.shadowRoot.querySelector(e);
}
hasLibraryPermissions() {
if (!this.auth.person || !Array.isArray(this.auth.person.roles)) return !1;
let e = this.auth.person.roles;
return -1 !== e.indexOf("ROLE_F_BIB_F") || -1 !== e.indexOf("ROLE_LIBRARY_MANAGER");
}
_updateAuth() {
this._loginStatus = this.auth["login-status"];
let e = [this.isLoggedIn(), this.isLoading()];
this._loginState.toString() !== e.toString() && this.requestUpdate(), this._loginState = e, this.isLoggedIn() && !this._loginCalled && (this._loginCalled = !0, this.loginCallback());
}
update(e) {
e.forEach((e, t) => {
if ("auth" === t) this._updateAuth();
}), super.update(e);
}
connectedCallback() {
super.connectedCallback(), this._loginStatus = "", this._loginState = [], this._loginCalled = !1;
}
isLoggedIn() {
return void 0 !== this.auth.person && null !== this.auth.person;
}
isLoading() {
return "logged-out" !== this._loginStatus && !this.isLoggedIn() && void 0 !== this.auth.token;
}
loginCallback() {}
getOrganization() {
const e = this._(this.getScopedTagName("dbp-library-select"));
if (e) {
const t = e.getAttribute("data-object");
if (null !== t) return JSON.parse(t);
}
return null;
}
getOrganizationCode() {
const e = this.getOrganization();
return null !== e ? e.name : "";
}
}
var w,
_,
S = {};
w = "undefined" != typeof window ? window : i, _ = function (e, t) {
var n = [],
r = Object.getPrototypeOf,
i = n.slice,
o = n.flat ? function (e) {
return n.flat.call(e);
} : function (e) {
return n.concat.apply([], e);
},
s = n.push,
a = n.indexOf,
l = {},
u = l.toString,
c = l.hasOwnProperty,
d = c.toString,
p = d.call(Object),
h = {},
f = function f(e) {
return "function" == typeof e && "number" != typeof e.nodeType && "function" != typeof e.item;
},
g = function g(e) {
return null != e && e === e.window;
},
m = e.document,
v = {
type: !0,
src: !0,
nonce: !0,
noModule: !0
};
function y(e, t, n) {
var r,
i,
o = (n = n || m).createElement("script");
if (o.text = e, t) for (r in v) (i = t[r] || t.getAttribute && t.getAttribute(r)) && o.setAttribute(r, i);
n.head.appendChild(o).parentNode.removeChild(o);
}
function b(e) {
return null == e ? e + "" : "object" == typeof e || "function" == typeof e ? l[u.call(e)] || "object" : typeof e;
}
var x = "3.6.3",
w = function w(e, t) {
return new w.fn.init(e, t);
};
function _(e) {
var t = !!e && "length" in e && e.length,
n = b(e);
return !f(e) && !g(e) && ("array" === n || 0 === t || "number" == typeof t && t > 0 && t - 1 in e);
}
w.fn = w.prototype = {
jquery: x,
constructor: w,
length: 0,
toArray: function () {
return i.call(this);
},
get: function (e) {
return null == e ? i.call(this) : e < 0 ? this[e + this.length] : this[e];
},
pushStack: function (e) {
var t = w.merge(this.constructor(), e);
return t.prevObject = this, t;
},
each: function (e) {
return w.each(this, e);
},
map: function (e) {
return this.pushStack(w.map(this, function (t, n) {
return e.call(t, n, t);
}));
},
slice: function () {
return this.pushStack(i.apply(this, arguments));
},
first: function () {
return this.eq(0);
},
last: function () {
return this.eq(-1);
},
even: function () {
return this.pushStack(w.grep(this, function (e, t) {
return (t + 1) % 2;
}));
},
odd: function () {
return this.pushStack(w.grep(this, function (e, t) {
return t % 2;
}));
},
eq: function (e) {
var t = this.length,
n = +e + (e < 0 ? t : 0);
return this.pushStack(n >= 0 && n < t ? [this[n]] : []);
},
end: function () {
return this.prevObject || this.constructor();
},
push: s,
sort: n.sort,
splice: n.splice
}, w.extend = w.fn.extend = function () {
var e,
t,
n,
r,
i,
o,
s = arguments[0] || {},
a = 1,
l = arguments.length,
u = !1;
for ("boolean" == typeof s && (u = s, s = arguments[a] || {}, a++), "object" == typeof s || f(s) || (s = {}), a === l && (s = this, a--); a < l; a++) if (null != (e = arguments[a])) for (t in e) r = e[t], "__proto__" !== t && s !== r && (u && r && (w.isPlainObject(r) || (i = Array.isArray(r))) ? (n = s[t], o = i && !Array.isArray(n) ? [] : i || w.isPlainObject(n) ? n : {}, i = !1, s[t] = w.extend(u, o, r)) : void 0 !== r && (s[t] = r));
return s;
}, w.extend({
expando: "jQuery" + (x + Math.random()).replace(/\D/g, ""),
isReady: !0,
error: function (e) {
throw new Error(e);
},
noop: function () {},
isPlainObject: function (e) {
var t, n;
return !(!e || "[object Object]" !== u.call(e) || (t = r(e)) && ("function" != typeof (n = c.call(t, "constructor") && t.constructor) || d.call(n) !== p));
},
isEmptyObject: function (e) {
var t;
for (t in e) return !1;
return !0;
},
globalEval: function (e, t, n) {
y(e, {
nonce: t && t.nonce
}, n);
},
each: function (e, t) {
var n,
r = 0;
if (_(e)) for (n = e.length; r < n && !1 !== t.call(e[r], r, e[r]); r++);else for (r in e) if (!1 === t.call(e[r], r, e[r])) break;
return e;
},
makeArray: function (e, t) {
var n = t || [];
return null != e && (_(Object(e)) ? w.merge(n, "string" == typeof e ? [e] : e) : s.call(n, e)), n;
},
inArray: function (e, t, n) {
return null == t ? -1 : a.call(t, e, n);
},
merge: function (e, t) {
for (var n = +t.length, r = 0, i = e.length; r < n; r++) e[i++] = t[r];
return e.length = i, e;
},
grep: function (e, t, n) {
for (var r = [], i = 0, o = e.length, s = !n; i < o; i++) !t(e[i], i) !== s && r.push(e[i]);
return r;
},
map: function (e, t, n) {
var r,
i,
s = 0,
a = [];
if (_(e)) for (r = e.length; s < r; s++) null != (i = t(e[s], s, n)) && a.push(i);else for (s in e) null != (i = t(e[s], s, n)) && a.push(i);
return o(a);
},
guid: 1,
support: h
}), "function" == typeof Symbol && (w.fn[Symbol.iterator] = n[Symbol.iterator]), w.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "), function (e, t) {
l["[object " + t + "]"] = t.toLowerCase();
});
var S =
/*!
* Sizzle CSS Selector Engine v2.3.9
* https://sizzlejs.com/
*
* Copyright JS Foundation and other contributors
* Released under the MIT license
* https://js.foundation/
*
* Date: 2022-12-19
*/
function (e) {
var t,
n,
r,
i,
o,
s,
a,
l,
u,
c,
d,
p,
h,
f,
g,
m,
v,
y,
b,
x = "sizzle" + 1 * new Date(),
w = e.document,
_ = 0,
S = 0,
E = le(),
C = le(),
A = le(),
T = le(),
_k = function k(e, t) {
return e === t && (d = !0), 0;
},
$ = {}.hasOwnProperty,
D = [],
L = D.pop,
j = D.push,
N = D.push,
O = D.slice,
q = function q(e, t) {
for (var n = 0, r = e.length; n < r; n++) if (e[n] === t) return n;
return -1;
},
P = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",
I = "[\\x20\\t\\r\\n\\f]",
R = "(?:\\\\[\\da-fA-F]{1,6}[\\x20\\t\\r\\n\\f]?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+",
H = "\\[[\\x20\\t\\r\\n\\f]*(" + R + ")(?:" + I + "*([*^$|!~]?=)" + I + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + R + "))|)" + I + "*\\]",
M = ":(" + R + ")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|" + H + ")*)|.*)\\)|)",
B = new RegExp(I + "+", "g"),
z = new RegExp("^[\\x20\\t\\r\\n\\f]+|((?:^|[^\\\\])(?:\\\\.)*)[\\x20\\t\\r\\n\\f]+$", "g"),
U = new RegExp("^[\\x20\\t\\r\\n\\f]*,[\\x20\\t\\r\\n\\f]*"),
F = new RegExp("^[\\x20\\t\\r\\n\\f]*([>+~]|[\\x20\\t\\r\\n\\f])[\\x20\\t\\r\\n\\f]*"),
W = new RegExp(I + "|>"),
G = new RegExp(M),
V = new RegExp("^" + R + "$"),
Y = {
ID: new RegExp("^#(" + R + ")"),
CLASS: new RegExp("^\\.(" + R + ")"),
TAG: new RegExp("^(" + R + "|[*])"),
ATTR: new RegExp("^" + H),
PSEUDO: new RegExp("^" + M),
CHILD: new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\([\\x20\\t\\r\\n\\f]*(even|odd|(([+-]|)(\\d*)n|)[\\x20\\t\\r\\n\\f]*(?:([+-]|)[\\x20\\t\\r\\n\\f]*(\\d+)|))[\\x20\\t\\r\\n\\f]*\\)|)", "i"),
bool: new RegExp("^(?:" + P + ")$", "i"),
needsContext: new RegExp("^[\\x20\\t\\r\\n\\f]*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\([\\x20\\t\\r\\n\\f]*((?:-\\d)?\\d*)[\\x20\\t\\r\\n\\f]*\\)|)(?=[^-]|$)", "i")
},
K = /HTML$/i,
X = /^(?:input|select|textarea|button)$/i,
Z = /^h\d$/i,
J = /^[^{]+\{\s*\[native \w/,
Q = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,
ee = /[+~]/,
te = new RegExp("\\\\[\\da-fA-F]{1,6}[\\x20\\t\\r\\n\\f]?|\\\\([^\\r\\n\\f])", "g"),
ne = function ne(e, t) {
var n = "0x" + e.slice(1) - 65536;
return t || (n < 0 ? String.fromCharCode(n + 65536) : String.fromCharCode(n >> 10 | 55296, 1023 & n | 56320));
},
re = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,
ie = function ie(e, t) {
return t ? "\0" === e ? "�" : e.slice(0, -1) + "\\" + e.charCodeAt(e.length - 1).toString(16) + " " : "\\" + e;
},
oe = function oe() {
p();
},
se = xe(function (e) {
return !0 === e.disabled && "fieldset" === e.nodeName.toLowerCase();
}, {
dir: "parentNode",
next: "legend"
});
try {
N.apply(D = O.call(w.childNodes), w.childNodes), D[w.childNodes.length].nodeType;
} catch (e) {
N = {
apply: D.length ? function (e, t) {
j.apply(e, O.call(t));
} : function (e, t) {
for (var n = e.length, r = 0; e[n++] = t[r++];);
e.length = n - 1;
}
};
}
function ae(e, t, r, i) {
var o,
a,
u,
c,
d,
f,
v,
y = t && t.ownerDocument,
w = t ? t.nodeType : 9;
if (r = r || [], "string" != typeof e || !e || 1 !== w && 9 !== w && 11 !== w) return r;
if (!i && (p(t), t = t || h, g)) {
if (11 !== w && (d = Q.exec(e))) if (o = d[1]) {
if (9 === w) {
if (!(u = t.getElementById(o))) return r;
if (u.id === o) return r.push(u), r;
} else if (y && (u = y.getElementById(o)) && b(t, u) && u.id === o) return r.push(u), r;
} else {
if (d[2]) return N.apply(r, t.getElementsByTagName(e)), r;
if ((o = d[3]) && n.getElementsByClassName && t.getElementsByClassName) return N.apply(r, t.getElementsByClassName(o)), r;
}
if (n.qsa && !T[e + " "] && (!m || !m.test(e)) && (1 !== w || "object" !== t.nodeName.toLowerCase())) {
if (v = e, y = t, 1 === w && (W.test(e) || F.test(e))) {
for ((y = ee.test(e) && ve(t.parentNode) || t) === t && n.scope || ((c = t.getAttribute("id")) ? c = c.replace(re, ie) : t.setAttribute("id", c = x)), a = (f = s(e)).length; a--;) f[a] = (c ? "#" + c : ":scope") + " " + be(f[a]);
v = f.join(",");
}
try {
if (n.cssSupportsSelector && !CSS.supports("selector(:is(" + v + "))")) throw new Error();
return N.apply(r, y.querySelectorAll(v)), r;
} catch (t) {
T(e, !0);
} finally {
c === x && t.removeAttribute("id");
}
}
}
return l(e.replace(z, "$1"), t, r, i);
}
function le() {
var e = [];
return function t(n, i) {
return e.push(n + " ") > r.cacheLength && delete t[e.shift()], t[n + " "] = i;
};
}
function ue(e) {
return e[x] = !0, e;
}
function ce(e) {
var t = h.createElement("fieldset");
try {
return !!e(t);
} catch (e) {
return !1;
} finally {
t.parentNode && t.parentNode.removeChild(t), t = null;
}
}
function de(e, t) {
for (var n = e.split("|"), i = n.length; i--;) r.attrHandle[n[i]] = t;
}
function pe(e, t) {
var n = t && e,
r = n && 1 === e.nodeType && 1 === t.nodeType && e.sourceIndex - t.sourceIndex;
if (r) return r;
if (n) for (; n = n.nextSibling;) if (n === t) return -1;
return e ? 1 : -1;
}
function he(e) {
return function (t) {
return "input" === t.nodeName.toLowerCase() && t.type === e;
};
}
function fe(e) {
return function (t) {
var n = t.nodeName.toLowerCase();
return ("input" === n || "button" === n) && t.type === e;
};
}
function ge(e) {
return function (t) {
return "form" in t ? t.parentNode && !1 === t.disabled ? "label" in t ? "label" in t.parentNode ? t.parentNode.disabled === e : t.disabled === e : t.isDisabled === e || t.isDisabled !== !e && se(t) === e : t.disabled === e : "label" in t && t.disabled === e;
};
}
function me(e) {
return ue(function (t) {
return t = +t, ue(function (n, r) {
for (var i, o = e([], n.length, t), s = o.length; s--;) n[i = o[s]] && (n[i] = !(r[i] = n[i]));
});
});
}
function ve(e) {
return e && void 0 !== e.getElementsByTagName && e;
}
for (t in n = ae.support = {}, o = ae.isXML = function (e) {
var t = e && e.namespaceURI,
n = e && (e.ownerDocument || e).documentElement;
return !K.test(t || n && n.nodeName || "HTML");
}, p = ae.setDocument = function (e) {
var t,
i,
s = e ? e.ownerDocument || e : w;
return s != h && 9 === s.nodeType && s.documentElement ? (f = (h = s).documentElement, g = !o(h), w != h && (i = h.defaultView) && i.top !== i && (i.addEventListener ? i.addEventListener("unload", oe, !1) : i.attachEvent && i.attachEvent("onunload", oe)), n.scope = ce(function (e) {
return f.appendChild(e).appendChild(h.createElement("div")), void 0 !== e.querySelectorAll && !e.querySelectorAll(":scope fieldset div").length;
}), n.cssSupportsSelector = ce(function () {
return CSS.supports("selector(*)") && h.querySelectorAll(":is(:jqfake)") && !CSS.supports("selector(:is(*,:jqfake))");
}), n.attributes = ce(function (e) {
return e.className = "i", !e.getAttribute("className");
}), n.getElementsByTagName = ce(function (e) {
return e.appendChild(h.createComment("")), !e.getElementsByTagName("*").length;
}), n.getElementsByClassName = J.test(h.getElementsByClassName), n.getById = ce(function (e) {
return f.appendChild(e).id = x, !h.getElementsByName || !h.getElementsByName(x).length;
}), n.getById ? (r.filter.ID = function (e) {
var t = e.replace(te, ne);
return function (e) {
return e.getAttribute("id") === t;
};
}, r.find.ID = function (e, t) {
if (void 0 !== t.getElementById && g) {
var n = t.getElementById(e);
return n ? [n] : [];
}
}) : (r.filter.ID = function (e) {
var t = e.replace(te, ne);
return function (e) {
var n = void 0 !== e.getAttributeNode && e.getAttributeNode("id");
return n && n.value === t;
};
}, r.find.ID = function (e, t) {
if (void 0 !== t.getElementById && g) {
var n,
r,
i,
o = t.getElementById(e);
if (o) {
if ((n = o.getAttributeNode("id")) && n.value === e) return [o];
for (i = t.getElementsByName(e), r = 0; o = i[r++];) if ((n = o.getAttributeNode("id")) && n.value === e) return [o];
}
return [];
}
}), r.find.TAG = n.getElementsByTagName ? function (e, t) {
return void 0 !== t.getElementsByTagName ? t.getElementsByTagName(e) : n.qsa ? t.querySelectorAll(e) : void 0;
} : function (e, t) {
var n,
r = [],
i = 0,
o = t.getElementsByTagName(e);
if ("*" === e) {
for (; n = o[i++];) 1 === n.nodeType && r.push(n);
return r;
}
return o;
}, r.find.CLASS = n.getElementsByClassName && function (e, t) {
if (void 0 !== t.getElementsByClassName && g) return t.getElementsByClassName(e);
}, v = [], m = [], (n.qsa = J.test(h.querySelectorAll)) && (ce(function (e) {
var t;
f.appendChild(e).innerHTML = "<a id='" + x + "'></a><select id='" + x + "-\r\\' msallowcapture=''><option selected=''></option></select>", e.querySelectorAll("[msallowcapture^='']").length && m.push("[*^$]=[\\x20\\t\\r\\n\\f]*(?:''|\"\")"), e.querySelectorAll("[selected]").length || m.push("\\[[\\x20\\t\\r\\n\\f]*(?:value|" + P + ")"), e.querySelectorAll("[id~=" + x + "-]").length || m.push("~="), (t = h.createElement("input")).setAttribute("name", ""), e.appendChild(t), e.querySelectorAll("[name='']").length || m.push("\\[[\\x20\\t\\r\\n\\f]*name[\\x20\\t\\r\\n\\f]*=[\\x20\\t\\r\\n\\f]*(?:''|\"\")"), e.querySelectorAll(":checked").length || m.push(":checked"), e.querySelectorAll("a#" + x + "+*").length || m.push(".#.+[+~]"), e.querySelectorAll("\\\f"), m.push("[\\r\\n\\f]");
}), ce(function (e) {
e.innerHTML = "<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";
var t = h.createElement("input");
t.setAttribute("type", "hidden"), e.appendChild(t).setAttribute("name", "D"), e.querySelectorAll("[name=d]").length && m.push("name[\\x20\\t\\r\\n\\f]*[*^$|!~]?="), 2 !== e.querySelectorAll(":enabled").length && m.push(":enabled", ":disabled"), f.appendChild(e).disabled = !0, 2 !== e.querySelectorAll(":disabled").length && m.push(":enabled", ":disabled"), e.querySelectorAll("*,:x"), m.push(",.*:");
})), (n.matchesSelector = J.test(y = f.matches || f.webkitMatchesSelector || f.mozMatchesSelector || f.oMatchesSelector || f.msMatchesSelector)) && ce(function (e) {
n.disconnectedMatch = y.call(e, "*"), y.call(e, "[s!='']:x"), v.push("!=", M);
}), n.cssSupportsSelector || m.push(":has"), m = m.length && new RegExp(m.join("|")), v = v.length && new RegExp(v.join("|")), t = J.test(f.compareDocumentPosition), b = t || J.test(f.contains) ? function (e, t) {
var n = 9 === e.nodeType && e.documentElement || e,
r = t && t.parentNode;
return e === r || !(!r || 1 !== r.nodeType || !(n.contains ? n.contains(r) : e.compareDocumentPosition && 16 & e.compareDocumentPosition(r)));
} : function (e, t) {
if (t) for (; t = t.parentNode;) if (t === e) return !0;
return !1;
}, _k = t ? function (e, t) {
if (e === t) return d = !0, 0;
var r = !e.compareDocumentPosition - !t.compareDocumentPosition;
return r || (1 & (r = (e.ownerDocument || e) == (t.ownerDocument || t) ? e.compareDocumentPosition(t) : 1) || !n.sortDetached && t.compareDocumentPosition(e) === r ? e == h || e.ownerDocument == w && b(w, e) ? -1 : t == h || t.ownerDocument == w && b(w, t) ? 1 : c ? q(c, e) - q(c, t) : 0 : 4 & r ? -1 : 1);
} : function (e, t) {
if (e === t) return d = !0, 0;
var n,
r = 0,
i = e.parentNode,
o = t.parentNode,
s = [e],
a = [t];
if (!i || !o) return e == h ? -1 : t == h ? 1 : i ? -1 : o ? 1 : c ? q(c, e) - q(c, t) : 0;
if (i === o) return pe(e, t);
for (n = e; n = n.parentNode;) s.unshift(n);
for (n = t; n = n.parentNode;) a.unshift(n);
for (; s[r] === a[r];) r++;
return r ? pe(s[r], a[r]) : s[r] == w ? -1 : a[r] == w ? 1 : 0;
}, h) : h;
}, ae.matches = function (e, t) {
return ae(e, null, null, t);
}, ae.matchesSelector = function (e, t) {
if (p(e), n.matchesSelector && g && !T[t + " "] && (!v || !v.test(t)) && (!m || !m.test(t))) try {
var r = y.call(e, t);
if (r || n.disconnectedMatch || e.document && 11 !== e.document.nodeType) return r;
} catch (e) {
T(t, !0);
}
return ae(t, h, null, [e]).length > 0;
}, ae.contains = function (e, t) {
return (e.ownerDocument || e) != h && p(e), b(e, t);
}, ae.attr = function (e, t) {
(e.ownerDocument || e) != h && p(e);
var i = r.attrHandle[t.toLowerCase()],
o = i && $.call(r.attrHandle, t.toLowerCase()) ? i(e, t, !g) : void 0;
return void 0 !== o ? o : n.attributes || !g ? e.getAttribute(t) : (o = e.getAttributeNode(t)) && o.specified ? o.value : null;
}, ae.escape = function (e) {
return (e + "").replace(re, ie);
}, ae.error = function (e) {
throw new Error("Syntax error, unrecognized expression: " + e);
}, ae.uniqueSort = function (e) {
var t,
r = [],
i = 0,
o = 0;
if (d = !n.detectDuplicates, c = !n.sortStable && e.slice(0), e.sort(_k), d) {
for (; t = e[o++];) t === e[o] && (i = r.push(o));
for (; i--;) e.splice(r[i], 1);
}
return c = null, e;
}, i = ae.getText = function (e) {
var t,
n = "",
r = 0,
o = e.nodeType;
if (o) {
if (1 === o || 9 === o || 11 === o) {
if ("string" == typeof e.textContent) return e.textContent;
for (e = e.firstChild; e; e = e.nextSibling) n += i(e);
} else if (3 === o || 4 === o) return e.nodeValue;
} else for (; t = e[r++];) n += i(t);
return n;
}, r = ae.selectors = {
cacheLength: 50,
createPseudo: ue,
match: Y,
attrHandle: {},
find: {},
relative: {
">": {
dir: "parentNode",
first: !0
},
" ": {
dir: "parentNode"
},
"+": {
dir: "previousSibling",
first: !0
},
"~": {
dir: "previousSibling"
}
},
preFilter: {
ATTR: function (e) {
return e[1] = e[1].replace(te, ne), e[3] = (e[3] || e[4] || e[5] || "").replace(te, ne), "~=" === e[2] && (e[3] = " " + e[3] + " "), e.slice(0, 4);
},
CHILD: function (e) {
return e[1] = e[1].toLowerCase(), "nth" === e[1].slice(0, 3) ? (e[3] || ae.error(e[0]), e[4] = +(e[4] ? e[5] + (e[6] || 1) : 2 * ("even" === e[3] || "odd" === e[3])), e[5] = +(e[7] + e[8] || "odd" === e[3])) : e[3] && ae.error(e[0]), e;
},
PSEUDO: function (e) {
var t,
n = !e[6] && e[2];
return Y.CHILD.test(e[0]) ? null : (e[3] ? e[2] = e[4] || e[5] || "" : n && G.test(n) && (t = s(n, !0)) && (t = n.indexOf(")", n.length - t) - n.length) && (e[0] = e[0].slice(0, t), e[2] = n.slice(0, t)), e.slice(0, 3));
}
},
filter: {
TAG: function (e) {
var t = e.replace(te, ne).toLowerCase();
return "*" === e ? function () {
return !0;
} : function (e) {
return e.nodeName && e.nodeName.toLowerCase() === t;
};
},
CLASS: function (e) {
var t = E[e + " "];
return t || (t = new RegExp("(^|[\\x20\\t\\r\\n\\f])" + e + "(" + I + "|$)")) && E(e, function (e) {
return t.test("string" == typeof e.className && e.className || void 0 !== e.getAttribute && e.getAttribute("class") || "");
});
},
ATTR: function (e, t, n) {
return function (r) {
var i = ae.attr(r, e);
return null == i ? "!=" === t : !t || (i += "", "=" === t ? i === n : "!=" === t ? i !== n : "^=" === t ? n && 0 === i.indexOf(n) : "*=" === t ? n && i.indexOf(n) > -1 : "$=" === t ? n && i.slice(-n.length) === n : "~=" === t ? (" " + i.replace(B, " ") + " ").indexOf(n) > -1 : "|=" === t && (i === n || i.slice(0, n.length + 1) === n + "-"));
};
},
CHILD: function (e, t, n, r, i) {
var o = "nth" !== e.slice(0, 3),
s = "last" !== e.slice(-4),
a = "of-type" === t;
return 1 === r && 0 === i ? function (e) {
return !!e.parentNode;
} : function (t, n, l) {
var u,
c,
d,
p,
h,
f,
g = o !== s ? "nextSibling" : "previousSibling",
m = t.parentNode,
v = a && t.nodeName.toLowerCase(),
y = !l && !a,
b = !1;
if (m) {
if (o) {
for (; g;) {
for (p = t; p = p[g];) if (a ? p.nodeName.toLowerCase() === v : 1 === p.nodeType) return !1;
f = g = "only" === e && !f && "nextSibling";
}
return !0;
}
if (f = [s ? m.firstChild : m.lastChild], s && y) {
for (b = (h = (u = (c = (d = (p = m)[x] || (p[x] = {}))[p.uniqueID] || (d[p.uniqueID] = {}))[e] || [])[0] === _ && u[1]) && u[2], p = h && m.childNodes[h]; p = ++h && p && p[g] || (b = h = 0) || f.pop();) if (1 === p.nodeType && ++b && p === t) {
c[e] = [_, h, b];
break;
}
} else if (y && (b = h = (u = (c = (d = (p = t)[x] || (p[x] = {}))[p.uniqueID] || (d[p.uniqueID] = {}))[e] || [])[0] === _ && u[1]), !1 === b) for (; (p = ++h && p && p[g] || (b = h = 0) || f.pop()) && ((a ? p.nodeName.toLowerCase() !== v : 1 !== p.nodeType) || !++b || (y && ((c = (d = p[x] || (p[x] = {}))[p.uniqueID] || (d[p.uniqueID] = {}))[e] = [_, b]), p !== t)););
return (b -= i) === r || b % r == 0 && b / r >= 0;
}
};
},
PSEUDO: function (e, t) {
var n,
i = r.pseudos[e] || r.setFilters[e.toLowerCase()] || ae.error("unsupported pseudo: " + e);
return i[x] ? i(t) : i.length > 1 ? (n = [e, e, "", t], r.setFilters.hasOwnProperty(e.toLowerCase()) ? ue(function (e, n) {
for (var r, o = i(e, t), s = o.length; s--;) e[r = q(e, o[s])] = !(n[r] = o[s]);
}) : function (e) {
return i(e, 0, n);
}) : i;
}
},
pseudos: {
not: ue(function (e) {
var t = [],
n = [],
r = a(e.replace(z, "$1"));
return r[x] ? ue(function (e, t, n, i) {
for (var o, s = r(e, null, i, []), a = e.length; a--;) (o = s[a]) && (e[a] = !(t[a] = o));
}) : function (e, i, o) {
return t[0] = e, r(t, null, o, n), t[0] = null, !n.pop();
};
}),
has: ue(function (e) {
return function (t) {
return ae(e, t).length > 0;
};
}),
contains: ue(function (e) {
return e = e.replace(te, ne), function (t) {
return (t.textContent || i(t)).indexOf(e) > -1;
};
}),
lang: ue(function (e) {
return V.test(e || "") || ae.error("unsupported lang: " + e), e = e.replace(te, ne).toLowerCase(), function (t) {
var n;
do {
if (n = g ? t.lang : t.getAttribute("xml:lang") || t.getAttribute("lang")) return (n = n.toLowerCase()) === e || 0 === n.indexOf(e + "-");
} while ((t = t.parentNode) && 1 === t.nodeType);
return !1;
};
}),
target: function (t) {
var n = e.location && e.location.hash;
return n && n.slice(1) === t.id;
},
root: function (e) {
return e === f;
},
focus: function (e) {
return e === h.activeElement && (!h.hasFocus || h.hasFocus()) && !!(e.type || e.href || ~e.tabIndex);
},
enabled: ge(!1),
disabled: ge(!0),
checked: function (e) {
var t = e.nodeName.toLowerCase();
return "input" === t && !!e.checked || "option" === t && !!e.selected;
},
selected: function (e) {
return e.parentNode && e.parentNode.selectedIndex, !0 === e.selected;
},
empty: function (e) {
for (e = e.firstChild; e; e = e.nextSibling) if (e.nodeType < 6) return !1;
return !0;
},
parent: function (e) {
return !r.pseudos.empty(e);
},
header: function (e) {
return Z.test(e.nodeName);
},
input: function (e) {
return X.test(e.nodeName);
},
button: function (e) {
var t = e.nodeName.toLowerCase();
return "input" === t && "button" === e.type || "button" === t;
},
text: function (e) {
var t;
return "input" === e.nodeName.toLowerCase() && "text" === e.type && (null == (t = e.getAttribute("type")) || "text" === t.toLowerCase());
},
first: me(function () {
return [0];
}),
last: me(function (e, t) {
return [t - 1];
}),
eq: me(function (e, t, n) {
return [n < 0 ? n + t : n];
}),
even: me(function (e, t) {
for (var n = 0; n < t; n += 2) e.push(n);
return e;
}),
odd: me(function (e, t) {
for (var n = 1; n < t; n += 2) e.push(n);
return e;
}),
lt: me(function (e, t, n) {
for (var r = n < 0 ? n + t : n > t ? t : n; --r >= 0;) e.push(r);
return e;
}),
gt: me(function (e, t, n) {
for (var r = n < 0 ? n + t : n; ++r < t;) e.push(r);
return e;
})
}
}, r.pseudos.nth = r.pseudos.eq, {
radio: !0,
checkbox: !0,
file: !0,
password: !0,
image: !0
}) r.pseudos[t] = he(t);
for (t in {
submit: !0,
reset: !0
}) r.pseudos[t] = fe(t);
function ye() {}
function be(e) {
for (var t = 0, n = e.length, r = ""; t < n; t++) r += e[t].value;
return r;
}
function xe(e, t, n) {
var r = t.dir,
i = t.next,
o = i || r,
s = n && "parentNode" === o,
a = S++;
return t.first ? function (t, n, i) {
for (; t = t[r];) if (1 === t.nodeType || s) return e(t, n, i);
return !1;
} : function (t, n, l) {
var u,
c,
d,
p = [_, a];
if (l) {
for (; t = t[r];) if ((1 === t.nodeType || s) && e(t, n, l)) return !0;
} else for (; t = t[r];) if (1 === t.nodeType || s) if (c = (d = t[x] || (t[x] = {}))[t.uniqueID] || (d[t.uniqueID] = {}), i && i === t.nodeName.toLowerCase()) t = t[r] || t;else {
if ((u = c[o]) && u[0] === _ && u[1] === a) return p[2] = u[2];
if (c[o] = p, p[2] = e(t, n, l)) return !0;
}
return !1;
};
}
function we(e) {
return e.length > 1 ? function (t, n, r) {
for (var i = e.length; i--;) if (!e[i](t, n, r)) return !1;
return !0;
} : e[0];
}
function _e(e, t, n, r, i) {
for (var o, s = [], a = 0, l = e.length, u = null != t; a < l; a++) (o = e[a]) && (n && !n(o, r, i) || (s.push(o), u && t.push(a)));
return s;
}
function Se(e, t, n, r, i, o) {
return r && !r[x] && (r = Se(r)), i && !i[x] && (i = Se(i, o)), ue(function (o, s, a, l) {
var u,
c,
d,
p = [],
h = [],
f = s.length,
g = o || function (e, t, n) {
for (var r = 0, i = t.length; r < i; r++) ae(e, t[r], n);
return n;
}(t || "*", a.nodeType ? [a] : a, []),
m = !e || !o && t ? g : _e(g, p, e, a, l),
v = n ? i || (o ? e : f || r) ? [] : s : m;
if (n && n(m, v, a, l), r) for (u = _e(v, h), r(u, [], a, l), c = u.length; c--;) (d = u[c]) && (v[h[c]] = !(m[h[c]] = d));
if (o) {
if (i || e) {
if (i) {
for (u = [], c = v.length; c--;) (d = v[c]) && u.push(m[c] = d);
i(null, v = [], u, l);
}
for (c = v.length; c--;) (d = v[c]) && (u = i ? q(o, d) : p[c]) > -1 && (o[u] = !(s[u] = d));
}
} else v = _e(v === s ? v.splice(f, v.length) : v), i ? i(null, s, v, l) : N.apply(s, v);
});
}
function Ee(e) {
for (var t, n, i, o = e.length, s = r.relative[e[0].type], a = s || r.relative[" "], l = s ? 1 : 0, c = xe(function (e) {
return e === t;
}, a, !0), d = xe(function (e) {
return q(t, e) > -1;
}, a, !0), p = [function (e, n, r) {
var i = !s && (r || n !== u) || ((t = n).nodeType ? c(e, n, r) : d(e, n, r));
return t = null, i;
}]; l < o; l++) if (n = r.relative[e[l].type]) p = [xe(we(p), n)];else {
if ((n = r.filter[e[l].type].apply(null, e[l].matches))[x]) {
for (i = ++l; i < o && !r.relative[e[i].type]; i++);
return Se(l > 1 && we(p), l > 1 && be(e.slice(0, l - 1).concat({
value: " " === e[l - 2].type ? "*" : ""
})).replace(z, "$1"), n, l < i && Ee(e.slice(l, i)), i < o && Ee(e = e.slice(i)), i < o && be(e));
}
p.push(n);
}
return we(p);
}
return ye.prototype = r.filters = r.pseudos, r.setFilters = new ye(), s = ae.tokenize = function (e, t) {
var n,
i,
o,
s,
a,
l,
u,
c = C[e + " "];
if (c) return t ? 0 : c.slice(0);
for (a = e, l = [], u = r.preFilter; a;) {
for (s in n && !(i = U.exec(a)) || (i && (a = a.slice(i[0].length) || a), l.push(o = [])), n = !1, (i = F.exec(a)) && (n = i.shift(), o.push({
value: n,
type: i[0].replace(z, " ")
}), a = a.slice(n.length)), r.filter) !(i = Y[s].exec(a)) || u[s] && !(i = u[s](i)) || (n = i.shift(), o.push({
value: n,
type: s,
matches: i
}), a = a.slice(n.length));
if (!n) break;
}
return t ? a.length : a ? ae.error(e) : C(e, l).slice(0);
}, a = ae.compile = function (e, t) {
var n,
i = [],
o = [],
a = A[e + " "];
if (!a) {
for (t || (t = s(e)), n = t.length; n--;) (a = Ee(t[n]))[x] ? i.push(a) : o.push(a);
a = A(e, function (e, t) {
var n = t.length > 0,
i = e.length > 0,
o = function o(o, s, a, l, c) {
var d,
f,
m,
v = 0,
y = "0",
b = o && [],
x = [],
w = u,
S = o || i && r.find.TAG("*", c),
E = _ += null == w ? 1 : Math.random() || .1,
C = S.length;
for (c && (u = s == h || s || c); y !== C && null != (d = S[y]); y++) {
if (i && d) {
for (f = 0, s || d.ownerDocument == h || (p(d), a = !g); m = e[f++];) if (m(d, s || h, a)) {
l.push(d);
break;
}
c && (_ = E);
}
n && ((d = !m && d) && v--, o && b.push(d));
}
if (v += y, n && y !== v) {
for (f = 0; m = t[f++];) m(b, x, s, a);
if (o) {
if (v > 0) for (; y-