").addClass(errClass).css("position", "absolute")
- .css("top", el.offsetTop)
- .css("left", el.offsetLeft)
- // setting width can push out the page size, forcing otherwise
- // unnecessary scrollbars to appear and making it impossible for
- // the element to shrink; so use max-width instead
- .css("maxWidth", el.offsetWidth)
- .css("height", el.offsetHeight);
- errorDiv.text(err.message);
- $el.after(errorDiv);
-
- // Really dumb way to keep the size/position of the error in sync with
- // the parent element as the window is resized or whatever.
- var intId = setInterval(function() {
- if (!errorDiv[0].parentElement) {
- clearInterval(intId);
- return;
- }
- errorDiv
- .css("top", el.offsetTop)
- .css("left", el.offsetLeft)
- .css("maxWidth", el.offsetWidth)
- .css("height", el.offsetHeight);
- }, 500);
- }
- }
- },
- clearError: function(el) {
- var $el = $(el);
- var display = $el.data("restore-display-mode");
- $el.data("restore-display-mode", null);
-
- if (display === "inline" || display === "inline-block") {
- if (display)
- $el.css("display", display);
- $(el.nextSibling).filter(".htmlwidgets-error").remove();
- } else if (display === "block"){
- $el.css("visibility", "inherit");
- $(el.nextSibling).filter(".htmlwidgets-error").remove();
- }
- },
- sizing: {}
- };
-
- // Called by widget bindings to register a new type of widget. The definition
- // object can contain the following properties:
- // - name (required) - A string indicating the binding name, which will be
- // used by default as the CSS classname to look for.
- // - initialize (optional) - A function(el) that will be called once per
- // widget element; if a value is returned, it will be passed as the third
- // value to renderValue.
- // - renderValue (required) - A function(el, data, initValue) that will be
- // called with data. Static contexts will cause this to be called once per
- // element; Shiny apps will cause this to be called multiple times per
- // element, as the data changes.
- window.HTMLWidgets.widget = function(definition) {
- if (!definition.name) {
- throw new Error("Widget must have a name");
- }
- if (!definition.type) {
- throw new Error("Widget must have a type");
- }
- // Currently we only support output widgets
- if (definition.type !== "output") {
- throw new Error("Unrecognized widget type '" + definition.type + "'");
- }
- // TODO: Verify that .name is a valid CSS classname
-
- // Support new-style instance-bound definitions. Old-style class-bound
- // definitions have one widget "object" per widget per type/class of
- // widget; the renderValue and resize methods on such widget objects
- // take el and instance arguments, because the widget object can't
- // store them. New-style instance-bound definitions have one widget
- // object per widget instance; the definition that's passed in doesn't
- // provide renderValue or resize methods at all, just the single method
- // factory(el, width, height)
- // which returns an object that has renderValue(x) and resize(w, h).
- // This enables a far more natural programming style for the widget
- // author, who can store per-instance state using either OO-style
- // instance fields or functional-style closure variables (I guess this
- // is in contrast to what can only be called C-style pseudo-OO which is
- // what we required before).
- if (definition.factory) {
- definition = createLegacyDefinitionAdapter(definition);
- }
-
- if (!definition.renderValue) {
- throw new Error("Widget must have a renderValue function");
- }
-
- // For static rendering (non-Shiny), use a simple widget registration
- // scheme. We also use this scheme for Shiny apps/documents that also
- // contain static widgets.
- window.HTMLWidgets.widgets = window.HTMLWidgets.widgets || [];
- // Merge defaults into the definition; don't mutate the original definition.
- var staticBinding = extend({}, defaults, definition);
- overrideMethod(staticBinding, "find", function(superfunc) {
- return function(scope) {
- var results = superfunc(scope);
- // Filter out Shiny outputs, we only want the static kind
- return filterByClass(results, "html-widget-output", false);
- };
- });
- window.HTMLWidgets.widgets.push(staticBinding);
-
- if (shinyMode) {
- // Shiny is running. Register the definition with an output binding.
- // The definition itself will not be the output binding, instead
- // we will make an output binding object that delegates to the
- // definition. This is because we foolishly used the same method
- // name (renderValue) for htmlwidgets definition and Shiny bindings
- // but they actually have quite different semantics (the Shiny
- // bindings receive data that includes lots of metadata that it
- // strips off before calling htmlwidgets renderValue). We can't
- // just ignore the difference because in some widgets it's helpful
- // to call this.renderValue() from inside of resize(), and if
- // we're not delegating, then that call will go to the Shiny
- // version instead of the htmlwidgets version.
-
- // Merge defaults with definition, without mutating either.
- var bindingDef = extend({}, defaults, definition);
-
- // This object will be our actual Shiny binding.
- var shinyBinding = new Shiny.OutputBinding();
-
- // With a few exceptions, we'll want to simply use the bindingDef's
- // version of methods if they are available, otherwise fall back to
- // Shiny's defaults. NOTE: If Shiny's output bindings gain additional
- // methods in the future, and we want them to be overrideable by
- // HTMLWidget binding definitions, then we'll need to add them to this
- // list.
- delegateMethod(shinyBinding, bindingDef, "getId");
- delegateMethod(shinyBinding, bindingDef, "onValueChange");
- delegateMethod(shinyBinding, bindingDef, "onValueError");
- delegateMethod(shinyBinding, bindingDef, "renderError");
- delegateMethod(shinyBinding, bindingDef, "clearError");
- delegateMethod(shinyBinding, bindingDef, "showProgress");
-
- // The find, renderValue, and resize are handled differently, because we
- // want to actually decorate the behavior of the bindingDef methods.
-
- shinyBinding.find = function(scope) {
- var results = bindingDef.find(scope);
-
- // Only return elements that are Shiny outputs, not static ones
- var dynamicResults = results.filter(".html-widget-output");
-
- // It's possible that whatever caused Shiny to think there might be
- // new dynamic outputs, also caused there to be new static outputs.
- // Since there might be lots of different htmlwidgets bindings, we
- // schedule execution for later--no need to staticRender multiple
- // times.
- if (results.length !== dynamicResults.length)
- scheduleStaticRender();
-
- return dynamicResults;
- };
-
- // Wrap renderValue to handle initialization, which unfortunately isn't
- // supported natively by Shiny at the time of this writing.
-
- shinyBinding.renderValue = function(el, data) {
- Shiny.renderDependencies(data.deps);
- // Resolve strings marked as javascript literals to objects
- if (!(data.evals instanceof Array)) data.evals = [data.evals];
- for (var i = 0; data.evals && i < data.evals.length; i++) {
- window.HTMLWidgets.evaluateStringMember(data.x, data.evals[i]);
- }
- if (!bindingDef.renderOnNullValue) {
- if (data.x === null) {
- el.style.visibility = "hidden";
- return;
- } else {
- el.style.visibility = "inherit";
- }
- }
- if (!elementData(el, "initialized")) {
- initSizing(el);
-
- elementData(el, "initialized", true);
- if (bindingDef.initialize) {
- var rect = el.getBoundingClientRect();
- var result = bindingDef.initialize(el, rect.width, rect.height);
- elementData(el, "init_result", result);
- }
- }
- bindingDef.renderValue(el, data.x, elementData(el, "init_result"));
- evalAndRun(data.jsHooks.render, elementData(el, "init_result"), [el, data.x]);
- };
-
- // Only override resize if bindingDef implements it
- if (bindingDef.resize) {
- shinyBinding.resize = function(el, width, height) {
- // Shiny can call resize before initialize/renderValue have been
- // called, which doesn't make sense for widgets.
- if (elementData(el, "initialized")) {
- bindingDef.resize(el, width, height, elementData(el, "init_result"));
- }
- };
- }
-
- Shiny.outputBindings.register(shinyBinding, bindingDef.name);
- }
- };
-
- var scheduleStaticRenderTimerId = null;
- function scheduleStaticRender() {
- if (!scheduleStaticRenderTimerId) {
- scheduleStaticRenderTimerId = setTimeout(function() {
- scheduleStaticRenderTimerId = null;
- window.HTMLWidgets.staticRender();
- }, 1);
- }
- }
-
- // Render static widgets after the document finishes loading
- // Statically render all elements that are of this widget's class
- window.HTMLWidgets.staticRender = function() {
- var bindings = window.HTMLWidgets.widgets || [];
- forEach(bindings, function(binding) {
- var matches = binding.find(document.documentElement);
- forEach(matches, function(el) {
- var sizeObj = initSizing(el, binding);
-
- var getSize = function(el) {
- if (sizeObj) {
- return {w: sizeObj.getWidth(), h: sizeObj.getHeight()}
- } else {
- var rect = el.getBoundingClientRect();
- return {w: rect.width, h: rect.height}
- }
- };
-
- if (hasClass(el, "html-widget-static-bound"))
- return;
- el.className = el.className + " html-widget-static-bound";
-
- var initResult;
- if (binding.initialize) {
- var size = getSize(el);
- initResult = binding.initialize(el, size.w, size.h);
- elementData(el, "init_result", initResult);
- }
-
- if (binding.resize) {
- var lastSize = getSize(el);
- var resizeHandler = function(e) {
- var size = getSize(el);
- if (size.w === 0 && size.h === 0)
- return;
- if (size.w === lastSize.w && size.h === lastSize.h)
- return;
- lastSize = size;
- binding.resize(el, size.w, size.h, initResult);
- };
-
- on(window, "resize", resizeHandler);
-
- // This is needed for cases where we're running in a Shiny
- // app, but the widget itself is not a Shiny output, but
- // rather a simple static widget. One example of this is
- // an rmarkdown document that has runtime:shiny and widget
- // that isn't in a render function. Shiny only knows to
- // call resize handlers for Shiny outputs, not for static
- // widgets, so we do it ourselves.
- if (window.jQuery) {
- window.jQuery(document).on(
- "shown.htmlwidgets shown.bs.tab.htmlwidgets shown.bs.collapse.htmlwidgets",
- resizeHandler
- );
- window.jQuery(document).on(
- "hidden.htmlwidgets hidden.bs.tab.htmlwidgets hidden.bs.collapse.htmlwidgets",
- resizeHandler
- );
- }
-
- // This is needed for the specific case of ioslides, which
- // flips slides between display:none and display:block.
- // Ideally we would not have to have ioslide-specific code
- // here, but rather have ioslides raise a generic event,
- // but the rmarkdown package just went to CRAN so the
- // window to getting that fixed may be long.
- if (window.addEventListener) {
- // It's OK to limit this to window.addEventListener
- // browsers because ioslides itself only supports
- // such browsers.
- on(document, "slideenter", resizeHandler);
- on(document, "slideleave", resizeHandler);
- }
- }
-
- var scriptData = document.querySelector("script[data-for='" + el.id + "'][type='application/json']");
- if (scriptData) {
- var data = JSON.parse(scriptData.textContent || scriptData.text);
- // Resolve strings marked as javascript literals to objects
- if (!(data.evals instanceof Array)) data.evals = [data.evals];
- for (var k = 0; data.evals && k < data.evals.length; k++) {
- window.HTMLWidgets.evaluateStringMember(data.x, data.evals[k]);
- }
- binding.renderValue(el, data.x, initResult);
- evalAndRun(data.jsHooks.render, initResult, [el, data.x]);
- }
- });
- });
-
- invokePostRenderHandlers();
- }
-
-
- function has_jQuery3() {
- if (!window.jQuery) {
- return false;
- }
- var $version = window.jQuery.fn.jquery;
- var $major_version = parseInt($version.split(".")[0]);
- return $major_version >= 3;
- }
-
- /*
- / Shiny 1.4 bumped jQuery from 1.x to 3.x which means jQuery's
- / on-ready handler (i.e., $(fn)) is now asyncronous (i.e., it now
- / really means $(setTimeout(fn)).
- / https://jquery.com/upgrade-guide/3.0/#breaking-change-document-ready-handlers-are-now-asynchronous
- /
- / Since Shiny uses $() to schedule initShiny, shiny>=1.4 calls initShiny
- / one tick later than it did before, which means staticRender() is
- / called renderValue() earlier than (advanced) widget authors might be expecting.
- / https://github.com/rstudio/shiny/issues/2630
- /
- / For a concrete example, leaflet has some methods (e.g., updateBounds)
- / which reference Shiny methods registered in initShiny (e.g., setInputValue).
- / Since leaflet is privy to this life-cycle, it knows to use setTimeout() to
- / delay execution of those methods (until Shiny methods are ready)
- / https://github.com/rstudio/leaflet/blob/18ec981/javascript/src/index.js#L266-L268
- /
- / Ideally widget authors wouldn't need to use this setTimeout() hack that
- / leaflet uses to call Shiny methods on a staticRender(). In the long run,
- / the logic initShiny should be broken up so that method registration happens
- / right away, but binding happens later.
- */
- function maybeStaticRenderLater() {
- if (shinyMode && has_jQuery3()) {
- window.jQuery(window.HTMLWidgets.staticRender);
- } else {
- window.HTMLWidgets.staticRender();
- }
- }
-
- if (document.addEventListener) {
- document.addEventListener("DOMContentLoaded", function() {
- document.removeEventListener("DOMContentLoaded", arguments.callee, false);
- maybeStaticRenderLater();
- }, false);
- } else if (document.attachEvent) {
- document.attachEvent("onreadystatechange", function() {
- if (document.readyState === "complete") {
- document.detachEvent("onreadystatechange", arguments.callee);
- maybeStaticRenderLater();
- }
- });
- }
-
-
- window.HTMLWidgets.getAttachmentUrl = function(depname, key) {
- // If no key, default to the first item
- if (typeof(key) === "undefined")
- key = 1;
-
- var link = document.getElementById(depname + "-" + key + "-attachment");
- if (!link) {
- throw new Error("Attachment " + depname + "/" + key + " not found in document");
- }
- return link.getAttribute("href");
- };
-
- window.HTMLWidgets.dataframeToD3 = function(df) {
- var names = [];
- var length;
- for (var name in df) {
- if (df.hasOwnProperty(name))
- names.push(name);
- if (typeof(df[name]) !== "object" || typeof(df[name].length) === "undefined") {
- throw new Error("All fields must be arrays");
- } else if (typeof(length) !== "undefined" && length !== df[name].length) {
- throw new Error("All fields must be arrays of the same length");
- }
- length = df[name].length;
- }
- var results = [];
- var item;
- for (var row = 0; row < length; row++) {
- item = {};
- for (var col = 0; col < names.length; col++) {
- item[names[col]] = df[names[col]][row];
- }
- results.push(item);
- }
- return results;
- };
-
- window.HTMLWidgets.transposeArray2D = function(array) {
- if (array.length === 0) return array;
- var newArray = array[0].map(function(col, i) {
- return array.map(function(row) {
- return row[i]
- })
- });
- return newArray;
- };
- // Split value at splitChar, but allow splitChar to be escaped
- // using escapeChar. Any other characters escaped by escapeChar
- // will be included as usual (including escapeChar itself).
- function splitWithEscape(value, splitChar, escapeChar) {
- var results = [];
- var escapeMode = false;
- var currentResult = "";
- for (var pos = 0; pos < value.length; pos++) {
- if (!escapeMode) {
- if (value[pos] === splitChar) {
- results.push(currentResult);
- currentResult = "";
- } else if (value[pos] === escapeChar) {
- escapeMode = true;
- } else {
- currentResult += value[pos];
- }
- } else {
- currentResult += value[pos];
- escapeMode = false;
- }
- }
- if (currentResult !== "") {
- results.push(currentResult);
- }
- return results;
- }
- // Function authored by Yihui/JJ Allaire
- window.HTMLWidgets.evaluateStringMember = function(o, member) {
- var parts = splitWithEscape(member, '.', '\\');
- for (var i = 0, l = parts.length; i < l; i++) {
- var part = parts[i];
- // part may be a character or 'numeric' member name
- if (o !== null && typeof o === "object" && part in o) {
- if (i == (l - 1)) { // if we are at the end of the line then evalulate
- if (typeof o[part] === "string")
- o[part] = tryEval(o[part]);
- } else { // otherwise continue to next embedded object
- o = o[part];
- }
- }
- }
- };
-
- // Retrieve the HTMLWidget instance (i.e. the return value of an
- // HTMLWidget binding's initialize() or factory() function)
- // associated with an element, or null if none.
- window.HTMLWidgets.getInstance = function(el) {
- return elementData(el, "init_result");
- };
-
- // Finds the first element in the scope that matches the selector,
- // and returns the HTMLWidget instance (i.e. the return value of
- // an HTMLWidget binding's initialize() or factory() function)
- // associated with that element, if any. If no element matches the
- // selector, or the first matching element has no HTMLWidget
- // instance associated with it, then null is returned.
- //
- // The scope argument is optional, and defaults to window.document.
- window.HTMLWidgets.find = function(scope, selector) {
- if (arguments.length == 1) {
- selector = scope;
- scope = document;
- }
-
- var el = scope.querySelector(selector);
- if (el === null) {
- return null;
- } else {
- return window.HTMLWidgets.getInstance(el);
- }
- };
-
- // Finds all elements in the scope that match the selector, and
- // returns the HTMLWidget instances (i.e. the return values of
- // an HTMLWidget binding's initialize() or factory() function)
- // associated with the elements, in an array. If elements that
- // match the selector don't have an associated HTMLWidget
- // instance, the returned array will contain nulls.
- //
- // The scope argument is optional, and defaults to window.document.
- window.HTMLWidgets.findAll = function(scope, selector) {
- if (arguments.length == 1) {
- selector = scope;
- scope = document;
- }
-
- var nodes = scope.querySelectorAll(selector);
- var results = [];
- for (var i = 0; i < nodes.length; i++) {
- results.push(window.HTMLWidgets.getInstance(nodes[i]));
- }
- return results;
- };
-
- var postRenderHandlers = [];
- function invokePostRenderHandlers() {
- while (postRenderHandlers.length) {
- var handler = postRenderHandlers.shift();
- if (handler) {
- handler();
- }
- }
- }
-
- // Register the given callback function to be invoked after the
- // next time static widgets are rendered.
- window.HTMLWidgets.addPostRenderHandler = function(callback) {
- postRenderHandlers.push(callback);
- };
-
- // Takes a new-style instance-bound definition, and returns an
- // old-style class-bound definition. This saves us from having
- // to rewrite all the logic in this file to accomodate both
- // types of definitions.
- function createLegacyDefinitionAdapter(defn) {
- var result = {
- name: defn.name,
- type: defn.type,
- initialize: function(el, width, height) {
- return defn.factory(el, width, height);
- },
- renderValue: function(el, x, instance) {
- return instance.renderValue(x);
- },
- resize: function(el, width, height, instance) {
- return instance.resize(width, height);
- }
- };
-
- if (defn.find)
- result.find = defn.find;
- if (defn.renderError)
- result.renderError = defn.renderError;
- if (defn.clearError)
- result.clearError = defn.clearError;
-
- return result;
- }
-})();
diff --git a/book/_book/site_libs/jquery-3.5.1/jquery-AUTHORS.txt b/book/_book/site_libs/jquery-3.5.1/jquery-AUTHORS.txt
deleted file mode 100644
index 06df1a5..0000000
--- a/book/_book/site_libs/jquery-3.5.1/jquery-AUTHORS.txt
+++ /dev/null
@@ -1,357 +0,0 @@
-Authors ordered by first contribution.
-
-John Resig
-Gilles van den Hoven
-Michael Geary
-Stefan Petre
-Yehuda Katz
-Corey Jewett
-Klaus Hartl
-Franck Marcia
-Jörn Zaefferer
-Paul Bakaus
-Brandon Aaron
-Mike Alsup
-Dave Methvin
-Ed Engelhardt
-Sean Catchpole
-Paul Mclanahan
-David Serduke
-Richard D. Worth
-Scott González
-Ariel Flesler
-Cheah Chu Yeow
-Andrew Chalkley
-Fabio Buffoni
-Stefan Bauckmeier
-Jon Evans
-TJ Holowaychuk
-Riccardo De Agostini
-Michael Bensoussan
-Louis-Rémi Babé
-Robert Katić
-Damian Janowski
-Anton Kovalyov
-Dušan B. Jovanovic
-Earle Castledine
-Rich Dougherty
-Kim Dalsgaard
-Andrea Giammarchi
-Fabian Jakobs
-Mark Gibson
-Karl Swedberg
-Justin Meyer
-Ben Alman
-James Padolsey
-David Petersen
-Batiste Bieler
-Jake Archibald
-Alexander Farkas
-Filipe Fortes
-Rick Waldron
-Neeraj Singh
-Paul Irish
-Iraê Carvalho
-Matt Curry
-Michael Monteleone
-Noah Sloan
-Tom Viner
-J. Ryan Stinnett
-Douglas Neiner
-Adam J. Sontag
-Heungsub Lee
-Dave Reed
-Carl Fürstenberg
-Jacob Wright
-Ralph Whitbeck
-unknown
-temp01
-Colin Snover
-Jared Grippe
-Ryan W Tenney
-Alex Sexton
-Pinhook
-Ron Otten
-Jephte Clain
-Anton Matzneller
-Dan Heberden
-Henri Wiechers
-Russell Holbrook
-Julian Aubourg
-Gianni Alessandro Chiappetta
-Scott Jehl
-James Burke
-Jonas Pfenniger
-Xavi Ramirez
-Sylvester Keil
-Brandon Sterne
-Mathias Bynens
-Lee Carpenter
-Timmy Willison <4timmywil@gmail.com>
-Corey Frang
-Digitalxero
-David Murdoch
-Josh Varner
-Charles McNulty
-Jordan Boesch
-Jess Thrysoee
-Michael Murray
-Alexis Abril
-Rob Morgan
-John Firebaugh
-Sam Bisbee
-Gilmore Davidson
-Brian Brennan
-Xavier Montillet
-Daniel Pihlstrom
-Sahab Yazdani
-avaly
-Scott Hughes
-Mike Sherov
-Greg Hazel
-Schalk Neethling
-Denis Knauf
-Timo Tijhof
-Steen Nielsen
-Anton Ryzhov
-Shi Chuan
-Matt Mueller
-Berker Peksag
-Toby Brain
-Justin
-Daniel Herman
-Oleg Gaidarenko
-Rock Hymas
-Richard Gibson
-Rafaël Blais Masson
-cmc3cn <59194618@qq.com>
-Joe Presbrey
-Sindre Sorhus
-Arne de Bree
-Vladislav Zarakovsky
-Andrew E Monat
-Oskari
-Joao Henrique de Andrade Bruni
-tsinha
-Dominik D. Geyer
-Matt Farmer
-Trey Hunner
-Jason Moon
-Jeffery To
-Kris Borchers
-Vladimir Zhuravlev
-Jacob Thornton
-Chad Killingsworth
-Vitya Muhachev
-Nowres Rafid
-David Benjamin
-Alan Plum
-Uri Gilad
-Chris Faulkner
-Marcel Greter
-Elijah Manor
-Daniel Chatfield
-Daniel Gálvez
-Nikita Govorov
-Wesley Walser
-Mike Pennisi
-Matthias Jäggli
-Devin Cooper
-Markus Staab
-Dave Riddle
-Callum Macrae
-Jonathan Sampson
-Benjamin Truyman
-Jay Merrifield
-James Huston
-Sai Lung Wong
-Erick Ruiz de Chávez
-David Bonner
-Allen J Schmidt Jr
-Akintayo Akinwunmi
-MORGAN
-Ismail Khair
-Carl Danley
-Mike Petrovich
-Greg Lavallee
-Tom H Fuertes
-Roland Eckl
-Yiming He
-David Fox
-Bennett Sorbo
-Paul Ramos
-Rod Vagg
-Sebastian Burkhard
-Zachary Adam Kaplan
-Adam Coulombe
-nanto_vi
-nanto
-Danil Somsikov
-Ryunosuke SATO
-Diego Tres
-Jean Boussier
-Andrew Plummer
-Mark Raddatz
-Pascal Borreli
-Isaac Z. Schlueter
-Karl Sieburg
-Nguyen Phuc Lam
-Dmitry Gusev
-Steven Benner
-Li Xudong
-Michał Gołębiowski-Owczarek
-Renato Oliveira dos Santos
-Frederic Junod
-Tom H Fuertes
-Mitch Foley
-ros3cin
-Kyle Robinson Young
-John Paul
-Jason Bedard
-Chris Talkington
-Eddie Monge
-Terry Jones
-Jason Merino
-Dan Burzo
-Jeremy Dunck
-Chris Price
-Guy Bedford
-njhamann
-Goare Mao
-Amey Sakhadeo
-Mike Sidorov
-Anthony Ryan
-Lihan Li
-George Kats
-Dongseok Paeng
-Ronny Springer
-Ilya Kantor
-Marian Sollmann
-Chris Antaki
-David Hong
-Jakob Stoeck
-Christopher Jones
-Forbes Lindesay
-S. Andrew Sheppard
-Leonardo Balter
-Rodrigo Rosenfeld Rosas
-Daniel Husar
-Philip Jägenstedt
-John Hoven
-Roman Reiß
-Benjy Cui
-Christian Kosmowski
-David Corbacho
-Liang Peng
-TJ VanToll
-Aurelio De Rosa
-Senya Pugach
-Dan Hart
-Nazar Mokrynskyi
-Benjamin Tan