From 713c45d897630b145ce7e0a5ccb1ff4939aea25e Mon Sep 17 00:00:00 2001 From: Sven Slootweg Date: Sun, 28 Jul 2019 19:34:49 +0200 Subject: [PATCH] Add old shadow-generator and knex-mirror folders to haless-03 --- configuration/default.nix | 26 +- .../assets/favicons/apple-touch-icon.png | Bin 0 -> 12640 bytes .../assets/favicons/favicon-16x16.png | Bin 0 -> 1147 bytes .../assets/favicons/favicon-32x32.png | Bin 0 -> 2238 bytes .../knexjs.org/assets/favicons/manifest.json | 11 + .../assets/favicons/safari-pinned-tab.svg | 63 + .../knex-mirror/knexjs.org/assets/ga.js | 7 + .../knexjs.org/assets/images/github.png | Bin 0 -> 6893 bytes .../knexjs.org/assets/images/knex.png | Bin 0 -> 13446 bytes .../knex-mirror/knexjs.org/build/bundle.css | 2 + .../knex-mirror/knexjs.org/build/bundle.js | 70 + .../sources/knex-mirror/knexjs.org/index.html | 669 +++ .../shadow-generator/css/colorpicker.css | 161 + .../sources/shadow-generator/css/jqueryui.css | 565 +++ .../sources/shadow-generator/css/layout.css | 218 + .../sources/shadow-generator/css/presets.css | 76 + .../shadow-generator/css/shadowgen.css | 516 ++ .../sources/shadow-generator/images/Thumbs.db | Bin 0 -> 19968 bytes .../sources/shadow-generator/images/arrow.png | Bin 0 -> 5087 bytes .../sources/shadow-generator/images/blank.gif | Bin 0 -> 49 bytes .../images/colorpicker_background.png | Bin 0 -> 1897 bytes .../images/colorpicker_hex.png | Bin 0 -> 532 bytes .../images/colorpicker_hsb_b.png | Bin 0 -> 970 bytes .../images/colorpicker_hsb_h.png | Bin 0 -> 1012 bytes .../images/colorpicker_hsb_s.png | Bin 0 -> 1171 bytes .../images/colorpicker_indic.gif | Bin 0 -> 86 bytes .../images/colorpicker_overlay.png | Bin 0 -> 10355 bytes .../images/colorpicker_rgb_b.png | Bin 0 -> 970 bytes .../images/colorpicker_rgb_g.png | Bin 0 -> 1069 bytes .../images/colorpicker_rgb_r.png | Bin 0 -> 1066 bytes .../images/colorpicker_select.gif | Bin 0 -> 78 bytes .../images/colorpicker_submit.png | Bin 0 -> 984 bytes .../images/custom_background.png | Bin 0 -> 1916 bytes .../shadow-generator/images/custom_hex.png | Bin 0 -> 562 bytes .../shadow-generator/images/custom_hsb_b.png | Bin 0 -> 1097 bytes .../shadow-generator/images/custom_hsb_h.png | Bin 0 -> 970 bytes .../shadow-generator/images/custom_hsb_s.png | Bin 0 -> 1168 bytes .../shadow-generator/images/custom_indic.gif | Bin 0 -> 86 bytes .../shadow-generator/images/custom_rgb_b.png | Bin 0 -> 1008 bytes .../shadow-generator/images/custom_rgb_g.png | Bin 0 -> 1069 bytes .../shadow-generator/images/custom_rgb_r.png | Bin 0 -> 1018 bytes .../shadow-generator/images/custom_submit.png | Bin 0 -> 997 bytes .../shadow-generator/images/delete.png | Bin 0 -> 342 bytes .../shadow-generator/images/handle.png | Bin 0 -> 199 bytes .../shadow-generator/images/rename.png | Bin 0 -> 265 bytes .../shadow-generator/images/select.png | Bin 0 -> 506 bytes .../shadow-generator/images/select2.png | Bin 0 -> 518 bytes .../shadow-generator/images/select3.png | Bin 0 -> 330 bytes .../shadow-generator/images/select4.png | Bin 0 -> 200 bytes .../shadow-generator/images/select5.png | Bin 0 -> 185 bytes .../shadow-generator/images/slider.png | Bin 0 -> 315 bytes .../images/ui-bg_flat_0_303030_40x100.png | Bin 0 -> 180 bytes .../images/ui-bg_flat_0_aaaaaa_40x100.png | Bin 0 -> 180 bytes .../images/ui-bg_glass_95_fef1ec_1x400.png | Bin 0 -> 119 bytes .../ui-bg_gloss-wave_8_121212_500x100.png | Bin 0 -> 1696 bytes .../ui-bg_highlight-hard_12_000000_1x100.png | Bin 0 -> 100 bytes .../ui-bg_highlight-hard_55_303030_1x100.png | Bin 0 -> 117 bytes .../ui-bg_highlight-hard_9_363636_1x100.png | Bin 0 -> 99 bytes .../ui-bg_highlight-hard_9_545454_1x100.png | Bin 0 -> 106 bytes .../ui-bg_highlight-soft_13_2e2e2e_1x100.png | Bin 0 -> 106 bytes .../images/ui-icons_666666_256x240.png | Bin 0 -> 4369 bytes .../images/ui-icons_aaaaaa_256x240.png | Bin 0 -> 4369 bytes .../images/ui-icons_bbbbbb_256x240.png | Bin 0 -> 4369 bytes .../images/ui-icons_c98000_256x240.png | Bin 0 -> 4369 bytes .../images/ui-icons_cccccc_256x240.png | Bin 0 -> 4369 bytes .../images/ui-icons_cd0a0a_256x240.png | Bin 0 -> 4369 bytes .../images/ui-icons_f29a00_256x240.png | Bin 0 -> 4369 bytes .../sources/shadow-generator/index.html | 195 + .../shadow-generator/js/colorpicker.js | 496 ++ .../sources/shadow-generator/js/eye.js | 34 + .../sources/shadow-generator/js/jquery.js | 4376 +++++++++++++++++ .../sources/shadow-generator/js/json.js | 23 + .../sources/shadow-generator/js/layout.js | 67 + .../sources/shadow-generator/js/shadowgen.js | 571 +++ .../sources/shadow-generator/js/utils.js | 252 + .../sources/shadow-generator/shadow.zip | Bin 0 -> 143276 bytes 76 files changed, 8397 insertions(+), 1 deletion(-) create mode 100644 configuration/sources/knex-mirror/knexjs.org/assets/favicons/apple-touch-icon.png create mode 100644 configuration/sources/knex-mirror/knexjs.org/assets/favicons/favicon-16x16.png create mode 100644 configuration/sources/knex-mirror/knexjs.org/assets/favicons/favicon-32x32.png create mode 100644 configuration/sources/knex-mirror/knexjs.org/assets/favicons/manifest.json create mode 100644 configuration/sources/knex-mirror/knexjs.org/assets/favicons/safari-pinned-tab.svg create mode 100644 configuration/sources/knex-mirror/knexjs.org/assets/ga.js create mode 100644 configuration/sources/knex-mirror/knexjs.org/assets/images/github.png create mode 100644 configuration/sources/knex-mirror/knexjs.org/assets/images/knex.png create mode 100644 configuration/sources/knex-mirror/knexjs.org/build/bundle.css create mode 100644 configuration/sources/knex-mirror/knexjs.org/build/bundle.js create mode 100644 configuration/sources/knex-mirror/knexjs.org/index.html create mode 100644 configuration/sources/shadow-generator/css/colorpicker.css create mode 100644 configuration/sources/shadow-generator/css/jqueryui.css create mode 100644 configuration/sources/shadow-generator/css/layout.css create mode 100644 configuration/sources/shadow-generator/css/presets.css create mode 100644 configuration/sources/shadow-generator/css/shadowgen.css create mode 100644 configuration/sources/shadow-generator/images/Thumbs.db create mode 100644 configuration/sources/shadow-generator/images/arrow.png create mode 100644 configuration/sources/shadow-generator/images/blank.gif create mode 100644 configuration/sources/shadow-generator/images/colorpicker_background.png create mode 100644 configuration/sources/shadow-generator/images/colorpicker_hex.png create mode 100644 configuration/sources/shadow-generator/images/colorpicker_hsb_b.png create mode 100644 configuration/sources/shadow-generator/images/colorpicker_hsb_h.png create mode 100644 configuration/sources/shadow-generator/images/colorpicker_hsb_s.png create mode 100644 configuration/sources/shadow-generator/images/colorpicker_indic.gif create mode 100644 configuration/sources/shadow-generator/images/colorpicker_overlay.png create mode 100644 configuration/sources/shadow-generator/images/colorpicker_rgb_b.png create mode 100644 configuration/sources/shadow-generator/images/colorpicker_rgb_g.png create mode 100644 configuration/sources/shadow-generator/images/colorpicker_rgb_r.png create mode 100644 configuration/sources/shadow-generator/images/colorpicker_select.gif create mode 100644 configuration/sources/shadow-generator/images/colorpicker_submit.png create mode 100644 configuration/sources/shadow-generator/images/custom_background.png create mode 100644 configuration/sources/shadow-generator/images/custom_hex.png create mode 100644 configuration/sources/shadow-generator/images/custom_hsb_b.png create mode 100644 configuration/sources/shadow-generator/images/custom_hsb_h.png create mode 100644 configuration/sources/shadow-generator/images/custom_hsb_s.png create mode 100644 configuration/sources/shadow-generator/images/custom_indic.gif create mode 100644 configuration/sources/shadow-generator/images/custom_rgb_b.png create mode 100644 configuration/sources/shadow-generator/images/custom_rgb_g.png create mode 100644 configuration/sources/shadow-generator/images/custom_rgb_r.png create mode 100644 configuration/sources/shadow-generator/images/custom_submit.png create mode 100644 configuration/sources/shadow-generator/images/delete.png create mode 100644 configuration/sources/shadow-generator/images/handle.png create mode 100644 configuration/sources/shadow-generator/images/rename.png create mode 100644 configuration/sources/shadow-generator/images/select.png create mode 100644 configuration/sources/shadow-generator/images/select2.png create mode 100644 configuration/sources/shadow-generator/images/select3.png create mode 100644 configuration/sources/shadow-generator/images/select4.png create mode 100644 configuration/sources/shadow-generator/images/select5.png create mode 100644 configuration/sources/shadow-generator/images/slider.png create mode 100644 configuration/sources/shadow-generator/images/ui-bg_flat_0_303030_40x100.png create mode 100644 configuration/sources/shadow-generator/images/ui-bg_flat_0_aaaaaa_40x100.png create mode 100644 configuration/sources/shadow-generator/images/ui-bg_glass_95_fef1ec_1x400.png create mode 100644 configuration/sources/shadow-generator/images/ui-bg_gloss-wave_8_121212_500x100.png create mode 100644 configuration/sources/shadow-generator/images/ui-bg_highlight-hard_12_000000_1x100.png create mode 100644 configuration/sources/shadow-generator/images/ui-bg_highlight-hard_55_303030_1x100.png create mode 100644 configuration/sources/shadow-generator/images/ui-bg_highlight-hard_9_363636_1x100.png create mode 100644 configuration/sources/shadow-generator/images/ui-bg_highlight-hard_9_545454_1x100.png create mode 100644 configuration/sources/shadow-generator/images/ui-bg_highlight-soft_13_2e2e2e_1x100.png create mode 100644 configuration/sources/shadow-generator/images/ui-icons_666666_256x240.png create mode 100644 configuration/sources/shadow-generator/images/ui-icons_aaaaaa_256x240.png create mode 100644 configuration/sources/shadow-generator/images/ui-icons_bbbbbb_256x240.png create mode 100644 configuration/sources/shadow-generator/images/ui-icons_c98000_256x240.png create mode 100644 configuration/sources/shadow-generator/images/ui-icons_cccccc_256x240.png create mode 100644 configuration/sources/shadow-generator/images/ui-icons_cd0a0a_256x240.png create mode 100644 configuration/sources/shadow-generator/images/ui-icons_f29a00_256x240.png create mode 100644 configuration/sources/shadow-generator/index.html create mode 100644 configuration/sources/shadow-generator/js/colorpicker.js create mode 100644 configuration/sources/shadow-generator/js/eye.js create mode 100644 configuration/sources/shadow-generator/js/jquery.js create mode 100644 configuration/sources/shadow-generator/js/json.js create mode 100644 configuration/sources/shadow-generator/js/layout.js create mode 100644 configuration/sources/shadow-generator/js/shadowgen.js create mode 100644 configuration/sources/shadow-generator/js/utils.js create mode 100644 configuration/sources/shadow-generator/shadow.zip diff --git a/configuration/default.nix b/configuration/default.nix index 0791d41..e8af5c4 100644 --- a/configuration/default.nix +++ b/configuration/default.nix @@ -20,7 +20,31 @@ in { ./hardware-configurations/machine-haless-03.nix ]; - services.nginx.enable = true; networking.firewall.allowedTCPPorts = [ 80 ]; + + services.nginx = { + enable = true; + virtualHosts = { + "haless-new.cryto.net" = { + # locations."/" = { + # root = ""; + # }; + locations."/shadow" = { + alias = ./sources/shadow-generator; + }; + locations."/knex-mirror" = { + alias = ./sources/knex-mirror; + }; + }; + }; + }; + + # services.phpfpm = { + # pools = { + # main = { + # listen = "/var/run/phpfpm-main.sock"; + # }; + # }; + # }; }; } diff --git a/configuration/sources/knex-mirror/knexjs.org/assets/favicons/apple-touch-icon.png b/configuration/sources/knex-mirror/knexjs.org/assets/favicons/apple-touch-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..635de644f9b8f56afea0a6c90abfca70f116ea98 GIT binary patch literal 12640 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 Ar~m)} literal 0 HcmV?d00001 diff --git a/configuration/sources/knex-mirror/knexjs.org/assets/favicons/favicon-16x16.png b/configuration/sources/knex-mirror/knexjs.org/assets/favicons/favicon-16x16.png new file mode 100644 index 0000000000000000000000000000000000000000..92e2df35a187181be69126ebed2ef110bb326f0d GIT binary patch literal 1147 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJOS+@4BLl<6e(pbstU$g(vPY0F z14ES>14Ba#1H&(%P{RubhEf9thF1v;3|2E37{m+a>pL4KfEWni0Rom|TkA>6lUmwXTl)7FIO z@2^Z7=CG!AExu}3{UhMfwAltT-~PFE^X~J%Pg|52b3f;-tN9hom}FA%^2NhD>1Nq= zY5U)OIJfYg?SyULuJ5>^;j-%M%B6lC=PN(n4s4zNeoLo?OzGp(KSTL4*G9HIE7{Jq z!e5(_x2Wo`pHPCL2a3PZ!4! ziOb0e3`}lfVP<7~Zf$4#aRHVtL#{%uZiB9_PHzJ*FHdh{BZE^X zPMy@&(CXZ*y?Vu}PA1kXrY2iMwuF|HeEq`9(<>p_Be~Sq$M@`+N*$fAYkFp`kxa?W zdHbaD%~u&2)wy$GW9~}av9;N|r?%$r4w*k&ZEcx%NK9#+%GBKC>~vV>kgPJ3@?nWZ z7K@UT9zPNe;hD4btUO_QmvAUQh^kMk%6I^u7QQFfn|t+nU#Tom8qGw zff11Lx6eujMMG|WN@iLmZVf$`n-%~ygja<`lmsP~D-;yvr)B1(DwI?fq$*?3oE!Zm>f=FR^A+&X*?;fE{di-sH6+U z>+LEjbP;NkQtp>*BNZXNgs}J5pKnjzF6TMte9!rw@8|QqJm;K0eY_}|YWivb08JXz zl@3YtmjQ=Cv+Mb^8c59BO7bKDa5Y_hI#lV)A(Kk?1Yi#q0RDaerXUsn4FJ0d0K5wU zfG7k&Z)a|~?YaBW0U(FmOZ`Ea7>_O*o(SDBkfhPkM zJfq@%$0%d4DzO->I^6W9`o8C+X z&xWnGC9=WS)(b1G=!eemxu?c#Zg^L3R$$iCMU8{3oGKDI zPSO&qn`@}&^OE6GA1B|ukj{Be?j;H8@XkVIU%Z8FXuf|yyb;n0nJswT)p&Z%A61?y zXWAwQR`;*!zdIcN^ka1AMq_>3c7XxPSfCxd`Fg@L%^}PpoZ%-!ey>q_e{JTHiaa4Y zCzW=(`go%#$6$y%v?BfqLw79qfZkpS#U}M)!^pn#RoY78YW&hYHd-VLCn3pYQ}UWF z<<^c44>M$_6(WTKd>XJS*(+i}@~1rHkZbf~5X~G8JLn9F zTX8CLTm8t?#NFw8iYZOzcs2CnQ|8S&18wiGnp_wT^XuLyKdnzanRWaj$P(G3(1ihYOsBSfcfbBNBuQ?Y1guea`x(V*hPOX{p(j+z+GAAEdK`J-aicY3=1< z+s6!Gy-oIT!j6v9N#6RqvYk9P*z7vPE>t>_R{tqJPF*~Us|rh*^cZ$VMagd?)G2-AL2J<-z2ojAVl&e1aL zrKGDF7w^Y*aLAu38qfLpASnj?NfqVgl;V7IPx!1?1t}FfV^U3q>E2=W)<<0RMY?x<+6t08u;dYJ)QAzC2XO*JVa+* z1V{YgP|@ + + + +Created by potrace 1.11, written by Peter Selinger 2001-2013 + + + + + diff --git a/configuration/sources/knex-mirror/knexjs.org/assets/ga.js b/configuration/sources/knex-mirror/knexjs.org/assets/ga.js new file mode 100644 index 0000000..bddce84 --- /dev/null +++ b/configuration/sources/knex-mirror/knexjs.org/assets/ga.js @@ -0,0 +1,7 @@ +(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ +(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), +m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) +})(window,document,'script','//www.google-analytics.com/analytics.js','ga'); + +ga('create', 'UA-39763513-2', 'knexjs.org'); +ga('send', 'pageview'); \ No newline at end of file diff --git a/configuration/sources/knex-mirror/knexjs.org/assets/images/github.png b/configuration/sources/knex-mirror/knexjs.org/assets/images/github.png new file mode 100644 index 0000000000000000000000000000000000000000..10c08f4d5502ad12ba372eb80812df4bdd557a57 GIT binary patch literal 6893 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

os+m<8wB|BFG%0_DlNxb zA02$&PvP#V_D!y06B8z{QwQC?A;l6W_XXi_h7vyOV$lFQ#7Kl zU>?X!>Qj&qiXZRZV}N_(r656qhA83hoNA9lN}lmHNEY5)c!2n=X=V1c`wIs0l0(l2 z1Q$7&(P*P&r!y91EDopdb^J8c2RqBRFfNhC7mL!27fGcrfIFG2e=1Fg(|&axSGr;~ zTa#VBpje?w<4;ZZWXF$XKYChEr_-9og<`Q%(!wL|mCc z8TwX+5=|;46AE6__=S~N>^wuskDJx-cNrb96lw`DhEU*!#};`Qmhb?`;IN;OE2H1@l3vl z9@47DTYd0Ov-Gkuwy+0o?n}%bZW_R#Z?|b0G8k150BD80sF5M7lZCOxZ`*;oVAMQb zpc~Wos(6Zl6gy{-sIC%V8c#Hbo&wi>V(`YOaB>n!p=e~eC=Hcp;4ZAQ1(*gz3EQWo zr&pBn2^Bb0YWl~rnz5qu4Pfhx9bU%S7&K`;XriPo@jn^2A?}hY_g;f~SvrUcxokT4 z>@x~#nZ`i5%#ic>%Tz3u(8>GVH!ZMwrAFSW-y zxen)7aYiOjNJsy>okruN`Z4n2%*_Fcf(4VxYSU@bEI?G@Av&oVUAw$-y1(|Wlc8+ti#G@P4 zeTSP1sI)6!tA0S@O;u%9r{1C6vq1T0j67iod*kVp>8~RcXyxR(hTi7SPtAZ0-k6~S{;Sg-!u8X#y7Amdd1 zpA(|{bA>I9r%hz}>R&bU=ix@4S)f Stw#EP1<=tl)U1ZvWBv~ks^vBS literal 0 HcmV?d00001 diff --git a/configuration/sources/knex-mirror/knexjs.org/assets/images/knex.png b/configuration/sources/knex-mirror/knexjs.org/assets/images/knex.png new file mode 100644 index 0000000000000000000000000000000000000000..3bd1d4c80f42f8d9cdce84e3dc340eed8956ae0e GIT binary patch literal 13446 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 + * @license MIT + */ +"use strict";function r(){try{var e=new Uint8Array(1);return e.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}},42===e.foo()&&"function"==typeof e.subarray&&0===e.subarray(1,1).byteLength}catch(e){return!1}}function i(){return a.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function o(e,t){if(i()=i())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+i().toString(16)+" bytes");return 0|e}function g(e){return+e!=e&&(e=0),a.alloc(+e)}function v(e,t){if(a.isBuffer(e))return e.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!=typeof e&&(e=""+e);var n=e.length;if(0===n)return 0;for(var r=!1;;)switch(t){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":case void 0:return H(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return $(e).length;default:if(r)return H(e).length;t=(""+t).toLowerCase(),r=!0}}function y(e,t,n){var r=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return"";if(n>>>=0,t>>>=0,n<=t)return"";for(e||(e="utf8");;)switch(e){case"hex":return j(this,t,n);case"utf8":case"utf-8":return A(this,t,n);case"ascii":return O(this,t,n);case"latin1":case"binary":return M(this,t,n);case"base64":return N(this,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return I(this,t,n);default:if(r)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),r=!0}}function _(e,t,n){var r=e[t];e[t]=e[n],e[n]=r}function b(e,t,n,r,i){if(0===e.length)return-1;if("string"==typeof n?(r=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),n=+n,isNaN(n)&&(n=i?0:e.length-1),n<0&&(n=e.length+n),n>=e.length){if(i)return-1;n=e.length-1}else if(n<0){if(!i)return-1;n=0}if("string"==typeof t&&(t=a.from(t,r)),a.isBuffer(t))return 0===t.length?-1:w(e,t,n,r,i);if("number"==typeof t)return t&=255,a.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(e,t,n):Uint8Array.prototype.lastIndexOf.call(e,t,n):w(e,[t],n,r,i);throw new TypeError("val must be string, number or Buffer")}function w(e,t,n,r,i){function o(e,t){return 1===a?e[t]:e.readUInt16BE(t*a)}var a=1,s=e.length,u=t.length;if(void 0!==r&&(r=String(r).toLowerCase(),"ucs2"===r||"ucs-2"===r||"utf16le"===r||"utf-16le"===r)){if(e.length<2||t.length<2)return-1;a=2,s/=2,u/=2,n/=2}var l;if(i){var c=-1;for(l=n;ls&&(n=s-u),l=n;l>=0;l--){for(var f=!0,h=0;hi&&(r=i)):r=i;var o=t.length;if(o%2!==0)throw new TypeError("Invalid hex string");r>o/2&&(r=o/2);for(var a=0;a239?4:o>223?3:o>191?2:1;if(i+s<=n){var u,l,c,f;switch(s){case 1:o<128&&(a=o);break;case 2:u=e[i+1],128===(192&u)&&(f=(31&o)<<6|63&u,f>127&&(a=f));break;case 3:u=e[i+1],l=e[i+2],128===(192&u)&&128===(192&l)&&(f=(15&o)<<12|(63&u)<<6|63&l,f>2047&&(f<55296||f>57343)&&(a=f));break;case 4:u=e[i+1],l=e[i+2],c=e[i+3],128===(192&u)&&128===(192&l)&&128===(192&c)&&(f=(15&o)<<18|(63&u)<<12|(63&l)<<6|63&c,f>65535&&f<1114112&&(a=f))}}null===a?(a=65533,s=1):a>65535&&(a-=65536,r.push(a>>>10&1023|55296),a=56320|1023&a),r.push(a),i+=s}return R(r)}function R(e){var t=e.length;if(t<=ee)return String.fromCharCode.apply(String,e);for(var n="",r=0;rr)&&(n=r);for(var i="",o=t;on)throw new RangeError("Trying to access beyond buffer length")}function q(e,t,n,r,i,o){if(!a.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>i||te.length)throw new RangeError("Index out of range")}function B(e,t,n,r){t<0&&(t=65535+t+1);for(var i=0,o=Math.min(e.length-n,2);i>>8*(r?i:1-i)}function L(e,t,n,r){t<0&&(t=4294967295+t+1);for(var i=0,o=Math.min(e.length-n,4);i>>8*(r?i:3-i)&255}function F(e,t,n,r,i,o){if(n+r>e.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function D(e,t,n,r,i){return i||F(e,t,n,4,3.4028234663852886e38,-3.4028234663852886e38),X.write(e,t,n,r,23,4),n+4}function U(e,t,n,r,i){return i||F(e,t,n,8,1.7976931348623157e308,-1.7976931348623157e308),X.write(e,t,n,r,52,8),n+8}function z(e){if(e=W(e).replace(te,""),e.length<2)return"";for(;e.length%4!==0;)e+="=";return e}function W(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}function Q(e){return e<16?"0"+e.toString(16):e.toString(16)}function H(e,t){t=t||1/0;for(var n,r=e.length,i=null,o=[],a=0;a55295&&n<57344){if(!i){if(n>56319){(t-=3)>-1&&o.push(239,191,189);continue}if(a+1===r){(t-=3)>-1&&o.push(239,191,189);continue}i=n;continue}if(n<56320){(t-=3)>-1&&o.push(239,191,189),i=n;continue}n=(i-55296<<10|n-56320)+65536}else i&&(t-=3)>-1&&o.push(239,191,189);if(i=null,n<128){if((t-=1)<0)break;o.push(n)}else if(n<2048){if((t-=2)<0)break;o.push(n>>6|192,63&n|128)}else if(n<65536){if((t-=3)<0)break;o.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;o.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return o}function V(e){for(var t=[],n=0;n>8,i=n%256,o.push(i),o.push(r);return o}function $(e){return Y.toByteArray(z(e))}function G(e,t,n,r){for(var i=0;i=t.length||i>=e.length);++i)t[i+n]=e[i];return i}function J(e){return e!==e}var Y=n(426),X=n(541),Z=n(177);t.Buffer=a,t.SlowBuffer=g,t.INSPECT_MAX_BYTES=50,a.TYPED_ARRAY_SUPPORT=void 0!==e.TYPED_ARRAY_SUPPORT?e.TYPED_ARRAY_SUPPORT:r(),t.kMaxLength=i(),a.poolSize=8192,a._augment=function(e){return e.__proto__=a.prototype,e},a.from=function(e,t,n){return s(null,e,t,n)},a.TYPED_ARRAY_SUPPORT&&(a.prototype.__proto__=Uint8Array.prototype,a.__proto__=Uint8Array,"undefined"!=typeof Symbol&&Symbol.species&&a[Symbol.species]===a&&Object.defineProperty(a,Symbol.species,{value:null,configurable:!0})),a.alloc=function(e,t,n){return l(null,e,t,n)},a.allocUnsafe=function(e){return c(null,e)},a.allocUnsafeSlow=function(e){return c(null,e)},a.isBuffer=function(e){return!(null==e||!e._isBuffer)},a.compare=function(e,t){if(!a.isBuffer(e)||!a.isBuffer(t))throw new TypeError("Arguments must be Buffers");if(e===t)return 0;for(var n=e.length,r=t.length,i=0,o=Math.min(n,r);i0&&(e=this.toString("hex",0,n).match(/.{2}/g).join(" "),this.length>n&&(e+=" ... ")),""},a.prototype.compare=function(e,t,n,r,i){if(!a.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===n&&(n=e?e.length:0),void 0===r&&(r=0),void 0===i&&(i=this.length),t<0||n>e.length||r<0||i>this.length)throw new RangeError("out of range index");if(r>=i&&t>=n)return 0;if(r>=i)return-1;if(t>=n)return 1;if(t>>>=0,n>>>=0,r>>>=0,i>>>=0,this===e)return 0;for(var o=i-r,s=n-t,u=Math.min(o,s),l=this.slice(r,i),c=e.slice(t,n),f=0;fi)&&(n=i),e.length>0&&(n<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");r||(r="utf8");for(var o=!1;;)switch(r){case"hex":return x(this,e,t,n);case"utf8":case"utf-8":return E(this,e,t,n);case"ascii":return k(this,e,t,n);case"latin1":case"binary":return C(this,e,t,n);case"base64":return S(this,e,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return T(this,e,t,n);default:if(o)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),o=!0}},a.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var ee=4096;a.prototype.slice=function(e,t){var n=this.length;e=~~e,t=void 0===t?n:~~t,e<0?(e+=n,e<0&&(e=0)):e>n&&(e=n),t<0?(t+=n,t<0&&(t=0)):t>n&&(t=n),t0&&(i*=256);)r+=this[e+--t]*i;return r},a.prototype.readUInt8=function(e,t){return t||P(e,1,this.length),this[e]},a.prototype.readUInt16LE=function(e,t){return t||P(e,2,this.length),this[e]|this[e+1]<<8},a.prototype.readUInt16BE=function(e,t){return t||P(e,2,this.length),this[e]<<8|this[e+1]},a.prototype.readUInt32LE=function(e,t){return t||P(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},a.prototype.readUInt32BE=function(e,t){return t||P(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},a.prototype.readIntLE=function(e,t,n){e|=0,t|=0,n||P(e,t,this.length);for(var r=this[e],i=1,o=0;++o=i&&(r-=Math.pow(2,8*t)),r},a.prototype.readIntBE=function(e,t,n){e|=0,t|=0,n||P(e,t,this.length);for(var r=t,i=1,o=this[e+--r];r>0&&(i*=256);)o+=this[e+--r]*i;return i*=128,o>=i&&(o-=Math.pow(2,8*t)),o},a.prototype.readInt8=function(e,t){return t||P(e,1,this.length),128&this[e]?(255-this[e]+1)*-1:this[e]},a.prototype.readInt16LE=function(e,t){t||P(e,2,this.length);var n=this[e]|this[e+1]<<8;return 32768&n?4294901760|n:n},a.prototype.readInt16BE=function(e,t){t||P(e,2,this.length);var n=this[e+1]|this[e]<<8;return 32768&n?4294901760|n:n},a.prototype.readInt32LE=function(e,t){return t||P(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},a.prototype.readInt32BE=function(e,t){return t||P(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},a.prototype.readFloatLE=function(e,t){return t||P(e,4,this.length),X.read(this,e,!0,23,4)},a.prototype.readFloatBE=function(e,t){return t||P(e,4,this.length),X.read(this,e,!1,23,4)},a.prototype.readDoubleLE=function(e,t){return t||P(e,8,this.length),X.read(this,e,!0,52,8)},a.prototype.readDoubleBE=function(e,t){return t||P(e,8,this.length),X.read(this,e,!1,52,8)},a.prototype.writeUIntLE=function(e,t,n,r){if(e=+e,t|=0,n|=0,!r){var i=Math.pow(2,8*n)-1;q(this,e,t,n,i,0)}var o=1,a=0;for(this[t]=255&e;++a=0&&(a*=256);)this[t+o]=e/a&255;return t+n},a.prototype.writeUInt8=function(e,t,n){return e=+e,t|=0,n||q(this,e,t,1,255,0),a.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},a.prototype.writeUInt16LE=function(e,t,n){return e=+e,t|=0,n||q(this,e,t,2,65535,0),a.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):B(this,e,t,!0),t+2},a.prototype.writeUInt16BE=function(e,t,n){return e=+e,t|=0,n||q(this,e,t,2,65535,0),a.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):B(this,e,t,!1),t+2},a.prototype.writeUInt32LE=function(e,t,n){return e=+e,t|=0,n||q(this,e,t,4,4294967295,0),a.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):L(this,e,t,!0),t+4},a.prototype.writeUInt32BE=function(e,t,n){return e=+e,t|=0,n||q(this,e,t,4,4294967295,0),a.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):L(this,e,t,!1),t+4},a.prototype.writeIntLE=function(e,t,n,r){if(e=+e,t|=0,!r){var i=Math.pow(2,8*n-1);q(this,e,t,n,i-1,-i)}var o=0,a=1,s=0;for(this[t]=255&e;++o>0)-s&255;return t+n},a.prototype.writeIntBE=function(e,t,n,r){if(e=+e,t|=0,!r){var i=Math.pow(2,8*n-1);q(this,e,t,n,i-1,-i)}var o=n-1,a=1,s=0;for(this[t+o]=255&e;--o>=0&&(a*=256);)e<0&&0===s&&0!==this[t+o+1]&&(s=1),this[t+o]=(e/a>>0)-s&255;return t+n},a.prototype.writeInt8=function(e,t,n){return e=+e,t|=0,n||q(this,e,t,1,127,-128),a.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},a.prototype.writeInt16LE=function(e,t,n){return e=+e,t|=0,n||q(this,e,t,2,32767,-32768),a.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):B(this,e,t,!0),t+2},a.prototype.writeInt16BE=function(e,t,n){return e=+e,t|=0,n||q(this,e,t,2,32767,-32768),a.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):B(this,e,t,!1),t+2},a.prototype.writeInt32LE=function(e,t,n){return e=+e,t|=0,n||q(this,e,t,4,2147483647,-2147483648),a.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):L(this,e,t,!0),t+4},a.prototype.writeInt32BE=function(e,t,n){return e=+e,t|=0,n||q(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),a.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):L(this,e,t,!1),t+4},a.prototype.writeFloatLE=function(e,t,n){return D(this,e,t,!0,n)},a.prototype.writeFloatBE=function(e,t,n){return D(this,e,t,!1,n)},a.prototype.writeDoubleLE=function(e,t,n){return U(this,e,t,!0,n)},a.prototype.writeDoubleBE=function(e,t,n){return U(this,e,t,!1,n)},a.prototype.copy=function(e,t,n,r){if(n||(n=0),r||0===r||(r=this.length),t>=e.length&&(t=e.length),t||(t=0),r>0&&r=this.length)throw new RangeError("sourceStart out of bounds");if(r<0)throw new RangeError("sourceEnd out of bounds");r>this.length&&(r=this.length),e.length-t=0;--i)e[i+t]=this[i+n];else if(o<1e3||!a.TYPED_ARRAY_SUPPORT)for(i=0;i>>=0,n=void 0===n?this.length:n>>>0,e||(e=0);var o;if("number"==typeof e)for(o=t;o1,r=t.length>0&&!(1===t.length&&"constructor"===t[0]),i=I.test(e+"")&&T.names(e).length>0;if(n||r||i)return!0}return!1}catch(e){return!1}}function d(e){function t(){}t.prototype=e;for(var n=8;n--;)new t;return e}function m(e){return P.test(e)}function g(e,t,n){for(var r=new Array(e),i=0;i10||e[0]>0}(),U.isNode&&U.toFastProperties(r);try{throw new Error}catch(e){U.lastLineError=e}e.exports=U}).call(t,function(){return this}(),n(17))},function(e,t,n){"use strict";function r(){try{Promise===o&&(Promise=i)}catch(e){}return o}var i;"undefined"!=typeof Promise&&(i=Promise);var o=n(443)();o.noConflict=r,e.exports=o},function(e,t){/* + object-assign + (c) Sindre Sorhus + @license MIT + */ +"use strict";function n(e){if(null===e||void 0===e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}function r(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;var r=Object.getOwnPropertyNames(t).map(function(e){return t[e]});if("0123456789"!==r.join(""))return!1;var i={};return"abcdefghijklmnopqrst".split("").forEach(function(e){i[e]=e}),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},i)).join("")}catch(e){return!1}}var i=Object.getOwnPropertySymbols,o=Object.prototype.hasOwnProperty,a=Object.prototype.propertyIsEnumerable;e.exports=r()?Object.assign:function(e,t){for(var r,s,u=n(e),l=1;l1)for(var n=1;n0&&this._events[e].length>i&&(this._events[e].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[e].length),"function"==typeof console.trace&&console.trace())),this},n.prototype.on=n.prototype.addListener,n.prototype.once=function(e,t){function n(){this.removeListener(e,n),i||(i=!0,t.apply(this,arguments))}if(!r(t))throw TypeError("listener must be a function");var i=!1;return n.listener=t,this.on(e,n),this},n.prototype.removeListener=function(e,t){var n,i,a,s;if(!r(t))throw TypeError("listener must be a function");if(!this._events||!this._events[e])return this;if(n=this._events[e],a=n.length,i=-1,n===t||r(n.listener)&&n.listener===t)delete this._events[e],this._events.removeListener&&this.emit("removeListener",e,t);else if(o(n)){for(s=a;s-- >0;)if(n[s]===t||n[s].listener&&n[s].listener===t){i=s;break}if(i<0)return this;1===n.length?(n.length=0,delete this._events[e]):n.splice(i,1),this._events.removeListener&&this.emit("removeListener",e,t)}return this},n.prototype.removeAllListeners=function(e){var t,n;if(!this._events)return this;if(!this._events.removeListener)return 0===arguments.length?this._events={}:this._events[e]&&delete this._events[e],this;if(0===arguments.length){for(t in this._events)"removeListener"!==t&&this.removeAllListeners(t);return this.removeAllListeners("removeListener"),this._events={},this}if(n=this._events[e],r(n))this.removeListener(e,n);else if(n)for(;n.length;)this.removeListener(e,n[n.length-1]);return delete this._events[e],this},n.prototype.listeners=function(e){var t;return t=this._events&&this._events[e]?r(this._events[e])?[this._events[e]]:this._events[e].slice():[]},n.prototype.listenerCount=function(e){if(this._events){var t=this._events[e];if(r(t))return 1;if(t)return t.length}return 0},n.listenerCount=function(e,t){return e.listenerCount(t)}},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=n(244),o=r(i),a=n(425),s=r(a),u="function"==typeof s.default&&"symbol"==typeof o.default?function(e){return typeof e}:function(e){return e&&"function"==typeof s.default&&e.constructor===s.default&&e!==s.default.prototype?"symbol":typeof e};t.default="function"==typeof s.default&&"symbol"===u(o.default)?function(e){return"undefined"==typeof e?"undefined":u(e)}:function(e){return e&&"function"==typeof s.default&&e.constructor===s.default&&e!==s.default.prototype?"symbol":"undefined"==typeof e?"undefined":u(e)}},function(e,t,n){(function(r){function i(){return!("undefined"==typeof window||!window.process||"renderer"!==window.process.type)||("undefined"==typeof navigator||!navigator.userAgent||!navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))&&("undefined"!=typeof document&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||"undefined"!=typeof window&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/))}function o(e){var n=this.useColors;if(e[0]=(n?"%c":"")+this.namespace+(n?" %c":" ")+e[0]+(n?"%c ":" ")+"+"+t.humanize(this.diff),n){var r="color: "+this.color;e.splice(1,0,r,"color: inherit");var i=0,o=0;e[0].replace(/%[a-zA-Z%]/g,function(e){"%%"!==e&&(i++,"%c"===e&&(o=i))}),e.splice(o,0,r)}}function a(){return"object"==typeof console&&console.log&&Function.prototype.apply.call(console.log,console,arguments)}function s(e){try{null==e?t.storage.removeItem("debug"):t.storage.debug=e}catch(e){}}function u(){var e;try{e=t.storage.debug}catch(e){}return!e&&"undefined"!=typeof r&&"env"in r&&(e={NODE_ENV:"production"}.DEBUG),e}function l(){try{return window.localStorage}catch(e){}}t=e.exports=n(587),t.log=a,t.formatArgs=o,t.save=s,t.load=u,t.useColors=i,t.storage="undefined"!=typeof chrome&&"undefined"!=typeof chrome.storage?chrome.storage.local:l(),t.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"],t.formatters.j=function(e){try{return JSON.stringify(e)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}},t.enable(u())}).call(t,n(17))},function(e,t,n){e.exports=!n(52)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},function(e,t,n){var r=n(39),i=n(260),o=n(172),a=Object.defineProperty;t.f=n(29)?Object.defineProperty:function(e,t,n){if(r(e),t=o(t,!0),r(n),i)try{return a(e,t,n)}catch(e){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(e[t]=n.value),e}},function(e,t){"use strict";function n(e){return function(){return e}}var r=function(){};r.thatReturns=n,r.thatReturnsFalse=n(!1),r.thatReturnsTrue=n(!0),r.thatReturnsNull=n(null),r.thatReturnsThis=function(){return this},r.thatReturnsArgument=function(e){return e},e.exports=r},function(e,t,n){function r(e){return"function"==typeof e?e:null==e?a:"object"==typeof e?s(e)?o(e[0],e[1]):i(e):u(e)}var i=n(616),o=n(617),a=n(76),s=n(9),u=n(728);e.exports=r},function(e,t){function n(e){return void 0===e}e.exports=n},function(e,t,n){"use strict";var r=null;e.exports={debugTool:r}},function(e,t,n){(function(e){function n(e){return Array.isArray?Array.isArray(e):"[object Array]"===g(e)}function r(e){return"boolean"==typeof e}function i(e){return null===e}function o(e){return null==e}function a(e){return"number"==typeof e}function s(e){return"string"==typeof e}function u(e){return"symbol"==typeof e}function l(e){return void 0===e}function c(e){return"[object RegExp]"===g(e)}function f(e){return"object"==typeof e&&null!==e}function h(e){return"[object Date]"===g(e)}function p(e){return"[object Error]"===g(e)||e instanceof Error}function d(e){return"function"==typeof e}function m(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"==typeof e||"undefined"==typeof e}function g(e){return Object.prototype.toString.call(e)}t.isArray=n,t.isBoolean=r,t.isNull=i,t.isNullOrUndefined=o,t.isNumber=a,t.isString=s,t.isSymbol=u,t.isUndefined=l,t.isRegExp=c,t.isObject=f,t.isDate=h,t.isError=p,t.isFunction=d,t.isPrimitive=m,t.isBuffer=e.isBuffer}).call(t,n(8).Buffer)},function(e,t,n){function r(e){return null!=e&&o(e.length)&&!i(e)}var i=n(78),o=n(210);e.exports=r},function(e,t){function n(e){return null!=e&&"object"==typeof e}e.exports=n},function(e,t,n){"use strict";function r(){T.ReactReconcileTransaction&&w?void 0:c("123")}function i(){this.reinitializeTransaction(),this.dirtyComponentsLength=null,this.callbackQueue=h.getPooled(),this.reconcileTransaction=T.ReactReconcileTransaction.getPooled(!0)}function o(e,t,n,i,o,a){return r(),w.batchedUpdates(e,t,n,i,o,a)}function a(e,t){return e._mountOrder-t._mountOrder}function s(e){var t=e.dirtyComponentsLength;t!==v.length?c("124",t,v.length):void 0,v.sort(a),y++;for(var n=0;no&&(u.warn('Automatically generated name "'+l+'" exceeds '+o+" character limit for Oracle. Using base64 encoded sha1 of that name instead."),l=i.createHash("sha1").update(l).digest("base64").replace("=","")),l}function o(e,t){return"begin execute immediate '"+e.replace(/'/g,"''")+"'; "+("exception when others then if sqlcode != "+t+" then raise; ")+"end if; end;"}function a(e){this.columnName=e}t.__esModule=!0,t.ReturningHelper=t.wrapSqlWithCatch=t.generateCombinedName=void 0;var s=n(6),u=r(s);a.prototype.toString=function(){return"[object ReturningHelper:"+this.columnName+"]"},t.generateCombinedName=i,t.wrapSqlWithCatch=o,t.ReturningHelper=a},function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}function o(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:M;this.client=e,this.sql="",this.bindings=[],this._wrappedBefore=void 0,this._wrappedAfter=void 0,this._debug=e&&e.config&&e.config.debug}function a(e,t){var n=e.bindings.length,r=e.bindings,i=0,o=e.sql.replace(/\\?\?\??/g,function(e){if("\\?"===e)return e;var n=r[i++];return"??"===e?t.columnize(n):t.parameter(n)});if(n!==i)throw new Error("Expected "+n+" bindings, saw "+i);return{method:"raw",sql:o,bindings:t.bindings}}function s(e,t){var n=e.bindings,r=e.sql,i=/\\?(:(\w+):(?=::)|:(\w+):(?!:)|:(\w+))/g;return r=e.sql.replace(i,function(e,r,i,o,a){if(e!==r)return r;var s=i||o||a,u=e.trim(),l=":"===u[u.length-1],c=n[s];return void 0===c?(n.hasOwnProperty(s)&&t.bindings.push(c),e):l?e.replace(r,t.columnize(c)):e.replace(r,t.parameter(c))}),{method:"raw",sql:r,bindings:t.bindings}}t.__esModule=!0;var u=n(211),l=i(u),c=n(33),f=i(c),h=n(19),p=i(h),d=n(212),m=i(d),g=n(79),v=i(g),y=n(4),_=i(y),b=n(1),w=i(b),x=n(6),E=r(x),k=n(26),C=n(28),S=i(C),T=n(123),N=i(T),A=n(372),R=i(A),O=(0,S.default)("knex:bindings"),M={formatter:function(){return new N.default(M)}};(0,w.default)(o,k.EventEmitter),(0,_.default)(o.prototype,{set:function(e,t){return this.sql=e,this.bindings=(0,p.default)(t)&&!t.toSQL||(0,f.default)(t)?t:[t],this},timeout:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.cancel;return(0,l.default)(e)&&e>0&&(this._timeout=e,n&&(this.client.assertCanCancelQuery(),this._cancelOnTimeout=!0)),this},wrap:function(e,t){return this._wrappedBefore=e,this._wrappedAfter=t,this},toString:function(){return this.toQuery()},toSQL:function(e,t){var n=void 0,r=this.client.formatter();if(n=Array.isArray(this.bindings)?a(this,r):this.bindings&&(0,m.default)(this.bindings)?s(this,r):{method:"raw",sql:this.sql,bindings:(0,f.default)(this.bindings)?[]:[this.bindings]},this._wrappedBefore&&(n.sql=this._wrappedBefore+n.sql),this._wrappedAfter&&(n.sql=n.sql+this._wrappedAfter),n.options=(0,v.default)(this._options,_.default,{}),this._timeout&&(n.timeout=this._timeout,this._cancelOnTimeout&&(n.cancelOnTimeout=this._cancelOnTimeout)),n.bindings=n.bindings||[],E.containsUndefined(n.bindings))throw O(n.bindings),new Error("Undefined binding(s) detected when compiling RAW query: "+n.sql);return n.__knexQueryUid=R.default.v4(),n}}),n(181)(o),t.default=o,e.exports=t.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e,t,n){var r=(0,C.default)(n);return r.transaction=function(t,r){return n.transaction(t,r,e)},r.savepoint=function(e,t){return r.transaction(e,t)},e.client.transacting?(r.commit=function(n){return e.release(t,n)},r.rollback=function(n){return e.rollbackTo(t,n)}):(r.commit=function(n){return e.commit(t,n)},r.rollback=function(n){return e.rollback(t,n)}),r}function o(e,t,n){var r=(0,u.default)(t.constructor.prototype);r.config=t.config,r.driver=t.driver,r.connectionSettings=t.connectionSettings,r.transacting=!0,r.valueForUndefined=t.valueForUndefined,r.on("query",function(n){e.emit("query",n),t.emit("query",n)}),r.on("query-error",function(n,r){e.emit("query-error",n,r),t.emit("query-error",n,r)}),r.on("query-response",function(n,r,i){e.emit("query-response",n,r,i),t.emit("query-response",n,r,i)});var i=r.query;r.query=function(t,o){var s=e.isCompleted();return b.default.try(function(){if(t!==n)throw new Error("Invalid connection for transaction query.");return s&&a(e,o),i.call(r,t,o)})};var o=r.stream;return r.stream=function(t,i,s,u){var l=e.isCompleted();return b.default.try(function(){if(t!==n)throw new Error("Invalid connection for transaction query.");return l&&a(e,i),o.call(r,t,i,s,u)})},r.acquireConnection=function(){return b.default.resolve(n)},r.releaseConnection=function(){return b.default.resolve()},r}function a(e,t){var n="string"==typeof t?t:t&&t.sql;throw S("%s: Transaction completed: %s",e.txid,n),new Error("Transaction query already complete, run with DEBUG=knex:tx for more info")}t.__esModule=!0;var s=n(111),u=r(s),l=n(3),c=r(l),f=n(11),h=r(f),p=n(10),d=r(p),m=n(33),g=r(m),v=n(143),y=r(v),_=n(13),b=r(_),w=n(26),x=n(28),E=r(x),k=n(183),C=r(k),S=(0,E.default)("knex:tx"),T=function(e){function t(n,r,a,s){(0,c.default)(this,t);var u=(0,h.default)(this,e.call(this)),l=u.txid=(0,y.default)("trx");return u.client=n,u.outerTx=s,u.trxClient=void 0,u._debug=n.config&&n.config.debug,S("%s: Starting %s transaction",l,s?"nested":"top level"),u._promise=b.default.using(u.acquireConnection(n,a,l),function(e){var t=u.trxClient=o(u,n,e),a=n.transacting?u.savepoint(e):u.begin(e);return a.then(function(){return i(u,e,t)}).then(function(e){var t=void 0;try{t=r(e)}catch(e){t=b.default.reject(e)}return t&&t.then&&"function"==typeof t.then&&t.then(function(t){return e.commit(t)}).catch(function(t){return e.rollback(t)}),null}).catch(function(e){return u._rejecter(e)}),new b.default(function(e,t){u._resolver=e,u._rejecter=t})}),u._completed=!1,u._previousSibling=b.default.resolve(!0),s&&(s._lastChild&&(u._previousSibling=s._lastChild),s._lastChild=u._promise),u}return(0,d.default)(t,e),t.prototype.isCompleted=function(){return this._completed||this.outerTx&&this.outerTx.isCompleted()||!1},t.prototype.begin=function(e){return this.query(e,"BEGIN;")},t.prototype.savepoint=function(e){return this.query(e,"SAVEPOINT "+this.txid+";")},t.prototype.commit=function(e,t){return this.query(e,"COMMIT;",1,t)},t.prototype.release=function(e,t){return this.query(e,"RELEASE SAVEPOINT "+this.txid+";",1,t)},t.prototype.rollback=function(e,t){var n=this;return this.query(e,"ROLLBACK;",2,t).timeout(5e3).catch(b.default.TimeoutError,function(){n._resolver()})},t.prototype.rollbackTo=function(e,t){var n=this;return this.query(e,"ROLLBACK TO SAVEPOINT "+this.txid,2,t).timeout(5e3).catch(b.default.TimeoutError,function(){n._resolver()})},t.prototype.query=function(e,t,n,r){var i=this,o=this.trxClient.query(e,t).catch(function(e){n=2,r=e,i._completed=!0,S("%s error running transaction query",i.txid)}).tap(function(){1===n&&i._resolver(r),2===n&&((0,g.default)(r)&&(r=new Error("Transaction rejected with non-error: "+r)),i._rejecter(r))});return 1!==n&&2!==n||(this._completed=!0),o},t.prototype.debug=function(e){return this._debug=!arguments.length||e,this},t.prototype.acquireConnection=function(e,t,n){var r=t&&t.connection;return b.default.try(function(){return r||e.acquireConnection()}).disposer(function(t){r?S("%s: not releasing external connection",n):(S("%s: releasing connection",n),e.releaseConnection(t))})},t}(w.EventEmitter);t.default=T;var N=["then","bind","catch","finally","asCallback","spread","map","reduce","tap","thenReturn","return","yield","ensure","exec","reflect","get","mapSeries","delay"];N.forEach(function(e){T.prototype[e]=function(){return this._promise[e].apply(this._promise,arguments)}}),e.exports=t.default},function(e,t,n){var r=n(24),i=r.Symbol;e.exports=i},function(e,t,n){function r(e,t){var n=o(e,t);return i(n)?n:void 0}var i=n(612),o=n(659);e.exports=r},function(e,t,n){(function(t){"use strict";function n(e,n,r,i){if("function"!=typeof e)throw new TypeError('"callback" argument must be a function');var o,a,s=arguments.length;switch(s){case 0:case 1:return t.nextTick(e);case 2:return t.nextTick(function(){e.call(null,n)});case 3:return t.nextTick(function(){e.call(null,n,r)});case 4:return t.nextTick(function(){e.call(null,n,r,i)});default:for(o=new Array(s-1),a=0;a=t.length?{value:void 0,done:!0}:(e=r(t,n),this._i+=e.length,{value:e,done:!1})})},function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}function o(){return"client"+ne++}function a(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(this.config=e,!this.config.client&&!this.dialect)throw new Error("knex: Required configuration option 'client' is missing.");this.connectionSettings=(0,h.default)(e.connection||{}),this.driverName&&e.connection&&(this.initializeDriver(),(!e.pool||e.pool&&0!==e.pool.max)&&(this.__cid=o(),this.initializePool(e))),this.valueForUndefined=this.raw("DEFAULT"),e.useNullAsDefault&&(this.valueForUndefined=null)}t.__esModule=!0;var s=n(333),u=i(s),l=n(331),c=i(l),f=n(712),h=i(f),p=n(143),d=i(p),m=n(4),g=i(m),v=n(13),y=i(v),_=n(6),b=r(_),w=n(56),x=i(w),E=n(582),k=i(E),C=n(123),S=i(C),T=n(57),N=i(T),A=n(283),R=i(A),O=n(67),M=i(O),j=n(583),I=i(j),P=n(69),q=i(P),B=n(584),L=i(B),F=n(70),D=i(F),U=n(285),z=i(U),W=n(68),Q=i(W),H=n(376),V=r(H),K=n(239),$=r(K),G=n(1),J=i(G),Y=n(26),X=n(124),Z=n(28)("knex:client"),ee=n(28)("knex:query"),te=n(28)("knex:bindings"),ne=0;(0,J.default)(a,Y.EventEmitter),(0,g.default)(a.prototype,{formatter:function(){return new S.default(this)},queryBuilder:function(){return new R.default(this)},queryCompiler:function(e){return new M.default(this,e)},schemaBuilder:function(){return new I.default(this)},schemaCompiler:function(e){return new q.default(this,e)},tableBuilder:function(e,t,n){return new L.default(this,e,t,n)},tableCompiler:function(e){return new D.default(this,e)},columnBuilder:function(e,t,n){return new z.default(this,e,t,n)},columnCompiler:function(e,t){return new Q.default(this,e,t)},runner:function(e){return new k.default(this,e)},transaction:function(e,t,n){return new N.default(this,e,t,n)},raw:function(){var e;return(e=new x.default(this)).set.apply(e,arguments)},_formatQuery:function(e,t,n){var r=this;t=null==t?[]:[].concat(t);var i=0;return e.replace(/\\?\?/g,function(e){if("\\?"===e)return"?";if(i===t.length)return e;var o=t[i++];return r._escapeBinding(o,{timeZone:n})})},_escapeBinding:(0,X.makeEscape)({escapeString:function(e){return"'"+e.replace(/'/g,"''")+"'"}}),query:function(e,t){var n=this;return"string"==typeof t&&(t={sql:t}),t.sql=this.positionBindings(t.sql),t.bindings=this.prepBindings(t.bindings),ee(t.sql),this.emit("query",(0,g.default)({__knexUid:e.__knexUid},t)),te(t.bindings),this._query(e,t).catch(function(r){throw r.message=n._formatQuery(t.sql,t.bindings)+" - "+r.message,n.emit("query-error",r,(0,g.default)({__knexUid:e.__knexUid},t)),r})},stream:function(e,t,n,r){return"string"==typeof t&&(t={sql:t}),t.sql=this.positionBindings(t.sql),t.bindings=this.prepBindings(t.bindings),this.emit("query",(0,g.default)({__knexUid:e.__knexUid},t)),ee(t.sql),te(t.bindings),this._stream(e,t,n,r)},prepBindings:function(e){return e},positionBindings:function(e){return e},postProcessResponse:function(e){return this.config.postProcessResponse?this.config.postProcessResponse(e):e},wrapIdentifier:function(e){return this.config.wrapIdentifier?this.config.wrapIdentifier(e,this.wrapIdentifierImpl):this.wrapIdentifierImpl(e)},wrapIdentifierImpl:function(e){return"*"!==e?'"'+e.replace(/"/g,'""')+'"':"*"},initializeDriver:function(){try{this.driver=this._driver()}catch(e){b.exit("Knex: run\n$ npm install "+this.driverName+" --save\n"+e.stack)}},poolDefaults:function(){return{min:2,max:10,testOnBorrow:!0,Promise:y.default}},getPoolSettings:function(e){var t=this;e=(0,c.default)({},e,this.poolDefaults());var n=function(e,t){var n=(0,u.default)(e,t);if(void 0!==n&&(n=parseInt(n,10),isNaN(n)||n<=0))throw new Error(t+" must be a positive int");return n},r=[n(this.config,"acquireConnectionTimeout")||6e4,n({pool:e},"pool.acquireTimeoutMillis")].filter(function(e){return void 0!==e});return e.acquireTimeoutMillis=Math.min.apply(Math,r),{config:e,factory:{create:function(){return t.acquireRawConnection().tap(function(t){if(t.__knexUid=(0,d.default)("__knexUid"),e.afterCreate)return y.default.promisify(e.afterCreate)(t)}).catch(function(e){return{genericPoolMissingRetryCountHack:!0,__knex__disposed:e,query:function(){throw e}}})},destroy:function(n){if(!n.genericPoolMissingRetryCountHack)return e.beforeDestroy&&(b.warn("\n beforeDestroy is deprecated, please open an issue if you use this\n to discuss alternative apis\n "),e.beforeDestroy(n,function(){})),void 0!==n?t.destroyRawConnection(n):y.default.resolve()},validate:function(e){return e.__knex__disposed?(b.warn("Connection Error: "+e.__knex__disposed),y.default.resolve(!1)):t.validateConnection(e)}}}},initializePool:function(e){if(this.pool)return void b.warn("The pool has already been initialized");var t=this.getPoolSettings(e.pool);this.pool=V.createPool(t.factory,t.config)},validateConnection:function(e){return y.default.resolve(!0)},acquireConnection:function(){return this.pool?this.pool.acquire().tap(function(e){Z("acquired connection from pool: %s",e.__knexUid)}).catch($.TimeoutError,function(){throw new y.default.TimeoutError("Knex: Timeout acquiring a connection. The pool is probably full. Are you missing a .transacting(trx) call?")}):y.default.reject(new Error("Unable to acquire a connection"))},releaseConnection:function(e){return Z("releasing connection to pool: %s",e.__knexUid),this.pool.release(e).catch(function(){Z("pool refused connection: %s",e.__knexUid)})},destroy:function(e){var t=this;return y.default.resolve(this.pool&&this.pool.drain().then(function(){return t.pool.clear()}).then(function(){t.pool=void 0,"function"==typeof e&&e()}))},database:function(){return this.connectionSettings.database},toString:function(){return"[object KnexClient]"},canCancelQuery:!1,assertCanCancelQuery:function(){if(!this.canCancelQuery)throw new Error("Query cancelling not supported for this dialect")},cancelQuery:function(){throw new Error("Query cancelling not supported for this dialect")}}),t.default=a,e.exports=t.default},function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}function o(e,t){this.client=e,this.method=t._method||"select",this.options=t._options,this.single=t._single,this.timeout=t._timeout||!1,this.cancelOnTimeout=t._cancelOnTimeout||!1,this.grouped=(0,E.default)(t._statements,"grouping"),this.formatter=e.formatter()}t.__esModule=!0;var a=n(51),s=i(a),u=n(27),l=i(u),c=n(79),f=i(c),h=n(725),p=i(h),d=n(18),m=i(d),g=n(33),v=i(g),y=n(41),_=i(y),b=n(77),w=i(b),x=n(209),E=i(x),k=n(207),C=i(k),S=n(710),T=i(S),N=n(4),A=i(N),R=n(6),O=r(R),M=n(56),j=i(M),I=n(284),P=i(I),q=n(28),B=i(q),L=n(372),F=i(L),D=(0,B.default)("knex:bindings"),U=["columns","join","where","union","group","having","order","limit","offset","lock"];(0,A.default)(o.prototype,{_emptyInsertValue:"default values",toSQL:function(e,t){var n=this;this._undefinedInWhereClause=!1,e=e||this.method;var r=this[e]()||"",i={method:e,options:(0,f.default)(this.options,A.default,{}),timeout:this.timeout,cancelOnTimeout:this.cancelOnTimeout,bindings:this.formatter.bindings||[],__knexQueryUid:F.default.v4(),toNative:function(){return{sql:n.client.positionBindings(i.sql),bindings:n.client.prepBindings(i.bindings)}}};if((0,_.default)(r)?i.sql=r:(0,A.default)(i,r),"select"!==e&&"first"!==e||this.single.as&&(i.as=this.single.as),this._undefinedInWhereClause)throw D(i.bindings),new Error("Undefined binding(s) detected when compiling "+(e.toUpperCase()+" query: "+i.sql));return i},select:function(){var e=this,t=this.with(),n=U.map(function(t){return e[t](e)});return t+=(0,C.default)(n).join(" ")},pluck:function(){var e=this.single.pluck;return e.indexOf(".")!==-1&&(e=e.split(".").slice(-1)[0]),{sql:this.select(),pluck:e}},insert:function(){var e=this.single.insert||[],t=this.with()+("insert into "+this.tableName+" ");if(Array.isArray(e)){if(0===e.length)return""}else if("object"===("undefined"==typeof e?"undefined":(0,l.default)(e))&&(0,w.default)(e))return t+this._emptyInsertValue;var n=this._prepInsert(e);if("string"==typeof n)t+=n;else if(n.columns.length){t+="("+this.formatter.columnize(n.columns),t+=") values (";for(var r=-1;++r0&&r.push(this.formatter.columnize(i.value))}return 0===r.length&&(r=["*"]),"select "+(t?"distinct ":"")+r.join(", ")+(this.tableName?" from "+(this.single.only?"only ":"")+this.tableName:"")},aggregate:function(e){var t=e.value,n=t.toLowerCase().indexOf(" as "),r=e.aggregateDistinct?"distinct ":"";if(n!==-1){var i=t.slice(0,n),o=t.slice(n+4);return e.method+"("+(r+this.formatter.wrap(i))+") as "+this.formatter.wrap(o)}return e.method+"("+(r+this.formatter.wrap(t))+")"},aggregateRaw:function(e){var t=e.aggregateDistinct?"distinct ":"";return e.method+"("+(t+this.formatter.unwrapRaw(e.value))+")"},join:function e(){var t="",n=-1,r=this.grouped.join;if(!r)return"";for(;++n0&&(t+=" "),"raw"===e.joinType)t+=this.formatter.unwrapRaw(e.table);else{t+=e.joinType+" join "+this.formatter.wrap(i);for(var o=-1;++o0?" "+a.bool+" ":" "+("onUsing"===a.type?"using":"on")+" ";var s=this[a.type].call(this,a);s&&(t+=s)}}}return t},onBetween:function(e){return this.formatter.wrap(e.column)+" "+this._not(e,"between")+" "+(0,m.default)(e.value,(0,T.default)(this.formatter.parameter,this.formatter)).join(" and ")},onNull:function(e){return this.formatter.wrap(e.column)+" is "+this._not(e,"null")},onExists:function(e){return this._not(e,"exists")+" ("+this.formatter.rawOrFn(e.value)+")"},onIn:function(e){return Array.isArray(e.column)?this.multiOnIn(e):this.formatter.wrap(e.column)+" "+this._not(e,"in ")+this.wrap(this.formatter.parameterize(e.value))},multiOnIn:function(e){var t=-1,n="("+this.formatter.columnize(e.column)+") ";for(n+=this._not(e,"in ")+"((";++t1?t.join(" "):""}},group:function(){return this._groupsOrders("group")},order:function(){return this._groupsOrders("order")},having:function(){var e=this.grouped.having;if(!e)return"";for(var t=["having"],n=0,r=e.length;n1||1===t.length&&"having"!==t[0])&&t.push(i.bool),t.push(o))}return t.length>1?t.join(" "):""},havingRaw:function(e){return this._not(e,"")+this.formatter.unwrapRaw(e.value)},havingWrapped:function(e){var t=this.formatter.rawOrFn(e.value,"where");return t&&this._not(e,"")+"("+t.slice(6)+")"||""},havingBasic:function(e){return this._not(e,"")+this.formatter.wrap(e.column)+" "+this.formatter.operator(e.operator)+" "+this.formatter.parameter(e.value)},havingNull:function(e){return this.formatter.wrap(e.column)+" is "+this._not(e,"null")},havingExists:function(e){return this._not(e,"exists")+" ("+this.formatter.rawOrFn(e.value)+")"},havingBetween:function(e){return this.formatter.wrap(e.column)+" "+this._not(e,"between")+" "+(0,m.default)(e.value,(0,T.default)(this.formatter.parameter,this.formatter)).join(" and ")},havingIn:function(e){return Array.isArray(e.column)?this.multiHavingIn(e):this.formatter.wrap(e.column)+" "+this._not(e,"in ")+this.wrap(this.formatter.parameterize(e.value))},multiHavingIn:function(e){var t=-1,n="("+this.formatter.columnize(e.column)+") ";for(n+=this._not(e,"in ")+"((";++t0&&(r+=" "),(i>0||!t)&&(r+=e.clause+" ");var a=this.formatter.rawOrFn(e.value);a&&(e.wrap&&(r+="("),r+=a,e.wrap&&(r+=")"))}return r},onlyUnions:function(){return!this.grouped.columns&&this.grouped.union&&!this.tableName},limit:function(){var e=!this.single.limit&&0!==this.single.limit;return e?"":"limit "+this.formatter.parameter(this.single.limit)},offset:function(){return this.single.offset?"offset "+this.formatter.parameter(this.single.offset):""},del:function(){var e=this.tableName,t=this.where();return this.with()+("delete from "+(this.single.only?"only ":"")+e)+(t?" "+t:"")},truncate:function(){return"truncate "+this.tableName},lock:function(){if(this.single.lock){if(this.client.transacting)return this[this.single.lock]();O.warn('You are attempting to perform a "lock" command outside of a transaction.')}},counter:function e(){var e=this.single.counter,t={};return t[e.column]=this.client.raw(this.formatter.wrap(e.column)+" "+(e.symbol||"+")+" "+e.amount),this.single.update=t,this.update()},onWrapped:function(e){var t=this,n=new P.default;e.value.call(n,n);var r="";return n.clauses.forEach(function(e,n){n>0&&(r+=" "+e.bool+" ");var i=t[e.type](e);i&&(r+=i)}),r.length?"("+r+")":""},onBasic:function(e){return this.formatter.wrap(e.column)+" "+this.formatter.operator(e.operator)+" "+this.formatter.wrap(e.value)},onRaw:function(e){return this.formatter.unwrapRaw(e.value)},onUsing:function(e){return this.formatter.wrap(e.column)},whereIn:function(e){return Array.isArray(e.column)?this.multiWhereIn(e):this.formatter.wrap(e.column)+" "+this._not(e,"in ")+this.wrap(this.formatter.parameterize(e.value))},multiWhereIn:function(e){var t=-1,n="("+this.formatter.columnize(e.column)+") ";for(n+=this._not(e,"in ")+"((";++t0?" "+e.join(" "):""},o.prototype.increments="integer not null primary key autoincrement",o.prototype.bigincrements="integer not null primary key autoincrement",o.prototype.integer=o.prototype.smallint=o.prototype.mediumint="integer",o.prototype.biginteger="bigint",o.prototype.varchar=function(e){return"varchar("+this._num(e,255)+")"},o.prototype.text="text",o.prototype.tinyint="tinyint",o.prototype.floating=function(e,t){return"float("+this._num(e,8)+", "+this._num(t,2)+")"},o.prototype.decimal=function(e,t){return"decimal("+this._num(e,8)+", "+this._num(t,2)+")"},o.prototype.binary="blob",o.prototype.bool="boolean",o.prototype.date="date",o.prototype.datetime="datetime",o.prototype.time="time",o.prototype.timestamp="timestamp",o.prototype.enu="varchar",o.prototype.bit=o.prototype.json="text",o.prototype.uuid="char(36)",o.prototype.specifictype=function(e){return e},o.prototype.nullable=function(e){return e===!1?"not null":"null"},o.prototype.notNullable=function(){return this.nullable(!1)},o.prototype.defaultTo=function(e){if(void 0===e)return"";if(null===e)e="null";else if(e instanceof _.default)e=e.toQuery();else if("bool"===this.type)"false"===e&&(e=0),e="'"+(e?1:0)+"'";else{if("json"===this.type&&(0,l.default)(e))return(0,s.default)(e);e="'"+e+"'"}return"default "+e},o.prototype._num=function(e,t){if(void 0===e||null===e)return t;var n=parseInt(e,10);return isNaN(n)?t:n},t.default=o,e.exports=t.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e,t){this.builder=t,this.client=e,this.schema=t._schema,this.formatter=e.formatter(),this.sequence=[]}function o(e){return function(t,n){var r=this.client.tableBuilder(e,t,n);r.setSchema(this.schema);for(var i=r.toSQL(),o=0,a=i.length;o=n.length)break;o=n[i++]}else{if(i=n.next(),i.done)break;o=i.value}var a=o;this.pushQuery(a)}},o.prototype.addColumnsPrefix="add column ",o.prototype.addColumns=function(e,t){if(t=t||this.addColumnsPrefix,e.sql.length>0){var n=(0,_.default)(e.sql,function(e){return t+e});this.pushQuery({sql:(this.lowerCase?"alter table ":"ALTER TABLE ")+this.tableName()+" "+n.join(", "),bindings:e.bindings})}},o.prototype.alterColumnsPrefix="alter column ",o.prototype.alterColumns=function(e,t){e.sql.length>0&&this.addColumns(e,this.alterColumnsPrefix,t)},o.prototype.getColumns=function(e){var t=this,n=this.grouped.columns||[];return e=e||"add",n.filter(function(t){return t.builder._method===e}).map(function(e){return t.client.columnCompiler(t,e.builder)})},o.prototype.tableName=function(){var e=this.schemaNameRaw?this.schemaNameRaw+"."+this.tableNameRaw:this.tableNameRaw;return this.formatter.wrap(e)},o.prototype.alterTable=function(){for(var e=this.grouped.alterTable||[],t=0,n=e.length;t1){for(var g=Array(m),v=0;v1){for(var _=Array(y),b=0;b-1&&e%1==0&&ea)throw new RangeError("size is too large");var r=n,o=t;void 0===o&&(r=void 0,o=0);var s=new i(e);if("string"==typeof o)for(var u=new i(o,r),l=u.length,c=-1;++ca)throw new RangeError("size is too large");return new i(e)},t.from=function(t,n,r){if("function"==typeof i.from&&(!e.Uint8Array||Uint8Array.from!==i.from))return i.from(t,n,r);if("number"==typeof t)throw new TypeError('"value" argument must not be a number');if("string"==typeof t)return new i(t,n);if("undefined"!=typeof ArrayBuffer&&t instanceof ArrayBuffer){var o=n;if(1===arguments.length)return new i(t);"undefined"==typeof o&&(o=0);var a=r;if("undefined"==typeof a&&(a=t.byteLength-o),o>=t.byteLength)throw new RangeError("'offset' is out of bounds");if(a>t.byteLength-o)throw new RangeError("'length' is out of bounds");return new i(t.slice(o,o+a))}if(i.isBuffer(t)){var s=new i(t.length);return t.copy(s,0,0,t.length),s}if(t){if(Array.isArray(t)||"undefined"!=typeof ArrayBuffer&&t.buffer instanceof ArrayBuffer||"length"in t)return new i(t);if("Buffer"===t.type&&Array.isArray(t.data))return new i(t.data)}throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.")},t.allocUnsafeSlow=function(e){if("function"==typeof i.allocUnsafeSlow)return i.allocUnsafeSlow(e);if("number"!=typeof e)throw new TypeError("size must be a number");if(e>=a)throw new RangeError("size is too large");return new o(e)}}).call(t,function(){return this}())},function(e,t){e.exports=function(e){if(void 0==e)throw TypeError("Can't call method on "+e);return e}},function(e,t,n){var r=n(46),i=n(263),o=n(261),a=n(39),s=n(119),u=n(175),l={},c={},t=e.exports=function(e,t,n,f,h){var p,d,m,g,v=h?function(){return e}:u(e),y=r(n,f,t?2:1),_=0;if("function"!=typeof v)throw TypeError(e+" is not iterable!");if(o(v)){for(p=s(e.length);p>_;_++)if(g=t?y(a(d=e[_])[0],d[1]):y(e[_]),g===l||g===c)return g}else for(m=v.call(e);!(d=m.next()).done;)if(g=i(m,y,d.value,t),g===l||g===c)return g};t.BREAK=l,t.RETURN=c},function(e,t){e.exports=!0},function(e,t,n){var r=n(39),i=n(266),o=n(163),a=n(169)("IE_PROTO"),s=function(){},u="prototype",l=function(){var e,t=n(162)("iframe"),r=o.length,i="<",a=">";for(t.style.display="none",n(259).appendChild(t),t.src="javascript:",e=t.contentWindow.document,e.open(),e.write(i+"script"+a+"document.F=Object"+i+"/script"+a),e.close(),l=e.F;r--;)delete l[u][o[r]];return l()};e.exports=Object.create||function(e,t){var n;return null!==e?(s[u]=r(e),n=new s,s[u]=null,n[a]=e):n=l(),void 0===t?n:i(n,t)}},function(e,t,n){var r=n(171),i=Math.min;e.exports=function(e){return e>0?i(r(e),9007199254740991):0}},function(e,t){var n=0,r=Math.random();e.exports=function(e){return"Symbol(".concat(void 0===e?"":e,")_",(++n+r).toString(36))}},function(e,t){},function(e,t,n){"use strict";function r(e,t){this.columnName=e,this.value=t,this.returning=!1}var i=n(55);r.prototype.toString=function(){return"[object BlobHelper:"+this.columnName+"]"},i.BlobHelper=r,e.exports=i},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=n(27),o=r(i),a=n(3),s=r(a),u=n(734),l=r(u),c=n(283),f=r(c),h=n(56),p=r(h),d=["asc","desc"],m=(0,l.default)(["=","<",">","<=",">=","<>","!=","like","not like","between","not between","ilike","not ilike","exists","not exist","rlike","not rlike","regexp","not regexp","&","|","^","<<",">>","~","~*","!~","!~*","#","&&","@>","<@","||","&<","&>","-|-","@@","!!",["?","\\?"],["?|","\\?|"],["?&","\\?&"]],function(e,t){Array.isArray(t)?e[t[0]]=t[1]:e[t]=t},{}),g=function(){function e(t){(0,s.default)(this,e),this.client=t,this.bindings=[]}return e.prototype.columnize=function(e){for(var t=Array.isArray(e)?e:[e],n="",r=-1;++r0&&(n+=", "),n+=this.wrap(t[r]);return n},e.prototype.parameterize=function(e,t){if("function"==typeof e)return this.parameter(e);e=Array.isArray(e)?e:[e];for(var n="",r=-1;++r0&&(n+=", "),n+=this.parameter(void 0===e[r]?t:e[r]);return n},e.prototype.parameter=function(e){return"function"==typeof e?this.outputQuery(this.compileCallback(e),!0):this.unwrapRaw(e,!0)||"?"},e.prototype.unwrapRaw=function(e,t){var n=void 0;return e instanceof f.default?(n=this.client.queryCompiler(e).toSQL(),n.bindings&&(this.bindings=this.bindings.concat(n.bindings)),this.outputQuery(n,t)):e instanceof p.default?(e.client=this.client,n=e.toSQL(),n.bindings&&(this.bindings=this.bindings.concat(n.bindings)),n.sql):void(t&&this.bindings.push(e))},e.prototype.rawOrFn=function(e,t){return"function"==typeof e?this.outputQuery(this.compileCallback(e,t)):this.unwrapRaw(e)||""},e.prototype.wrap=function(e){var t=this.unwrapRaw(e);if(t)return t;switch("undefined"==typeof e?"undefined":(0,o.default)(e)){case"function":return this.outputQuery(this.compileCallback(e),!0);case"object":return this.parseObject(e);case"number":return e;default:return this.wrapString(e+"")}},e.prototype.wrapAsIdentifier=function(e){return this.client.wrapIdentifier((e||"").trim())},e.prototype.alias=function(e,t){return e+" as "+t},e.prototype.operator=function e(t){var n=this.unwrapRaw(t);if(n)return n;var e=m[(t||"").toLowerCase()];if(!e)throw new TypeError('The operator "'+t+'" is not permitted');return e},e.prototype.direction=function(e){var t=this.unwrapRaw(e);return t?t:d.indexOf((e||"").toLowerCase())!==-1?e:"asc"},e.prototype.compileCallback=function(e,t){var n=this.client,r=n.queryBuilder();e.call(r,r);var i=n.queryCompiler(r);return i.formatter=this,i.toSQL(t||r._method||"select")},e.prototype.outputQuery=function(e,t){var n=e.sql||"";return n&&("select"===e.method||"first"===e.method)&&(t||e.as)&&(n="("+n+")",e.as)?this.alias(n,this.wrap(e.as)):n},e.prototype.parseObject=function(e){var t=[];for(var n in e){var r=e[n];if("function"==typeof r){var i=this.compileCallback(r);i.as=n,t.push(this.outputQuery(i,!0))}else r instanceof f.default?t.push(this.alias("("+this.wrap(r)+")",this.wrapAsIdentifier(n))):t.push(this.alias(this.wrap(r),this.wrapAsIdentifier(n)))}return t.join(", ")},e.prototype.wrapString=function(e){var t=e.toLowerCase().indexOf(" as ");if(t!==-1){var n=e.slice(0,t),r=e.slice(t+4);return this.alias(this.wrap(n),this.wrapAsIdentifier(r))}for(var i=[],o=-1,a=e.split(".");++o1?i.push(this.wrap((e||"").trim())):i.push(this.client.wrapIdentifier((e||"").trim()));return i.join(".")},e}();t.default=g,e.exports=t.default},function(e,t,n){(function(e){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e){return function t(n){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e(n,t,r)}}function o(){function t(t,n,i){if(void 0===t||null===t)return"NULL";switch("undefined"==typeof t?"undefined":(0,g.default)(t)){case"boolean":return t?"true":"false";case"number":return t+"";case"object":if(!(t instanceof Date))return Array.isArray(t)?o(t,n,i):e.isBuffer(t)?f(t,n,i):p(t,n,i);t=r(t,n,i)}return h(t,n,i)}var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=n.escapeDate||c,o=n.escapeArray||s,f=n.escapeBuffer||u,h=n.escapeString||l,p=n.escapeObject||a,d=n.wrap||i;return d?d(t):t}function a(e,t,n){return"function"==typeof e.toSQL?e.toSQL(n):(0,d.default)(e)}function s(e,t,n){for(var r="",i=0;i]/;e.exports=r},function(e,t,n){"use strict";var r,i=n(23),o=n(215),a=/^[ \r\n\t\f]/,s=/<(!--|link|noscript|meta|script|style)[ \r\n\t\f\/>]/,u=n(223),l=u(function(e,t){if(e.namespaceURI!==o.svg||"innerHTML"in e)e.innerHTML=t;else{r=r||document.createElement("div"),r.innerHTML=""+t+"";for(var n=r.firstChild;n.firstChild;)e.appendChild(n.firstChild)}});if(i.canUseDOM){var c=document.createElement("div");c.innerHTML=" ",""===c.innerHTML&&(l=function(e,t){if(e.parentNode&&e.parentNode.replaceChild(e,e),a.test(t)||"<"===t[0]&&s.test(t)){e.innerHTML=String.fromCharCode(65279)+t;var n=e.firstChild;1===n.data.length?e.removeChild(n):n.deleteData(0,1)}else e.innerHTML=t}),c=null}e.exports=l},function(e,t,n){(function(e,r){function i(e,n){var r={seen:[],stylize:a};return arguments.length>=3&&(r.depth=arguments[2]),arguments.length>=4&&(r.colors=arguments[3]),m(n)?r.showHidden=n:n&&t._extend(r,n),w(r.showHidden)&&(r.showHidden=!1),w(r.depth)&&(r.depth=2), +w(r.colors)&&(r.colors=!1),w(r.customInspect)&&(r.customInspect=!0),r.colors&&(r.stylize=o),u(r,e,r.depth)}function o(e,t){var n=i.styles[t];return n?"["+i.colors[n][0]+"m"+e+"["+i.colors[n][1]+"m":e}function a(e,t){return e}function s(e){var t={};return e.forEach(function(e,n){t[e]=!0}),t}function u(e,n,r){if(e.customInspect&&n&&S(n.inspect)&&n.inspect!==t.inspect&&(!n.constructor||n.constructor.prototype!==n)){var i=n.inspect(r,e);return _(i)||(i=u(e,i,r)),i}var o=l(e,n);if(o)return o;var a=Object.keys(n),m=s(a);if(e.showHidden&&(a=Object.getOwnPropertyNames(n)),C(n)&&(a.indexOf("message")>=0||a.indexOf("description")>=0))return c(n);if(0===a.length){if(S(n)){var g=n.name?": "+n.name:"";return e.stylize("[Function"+g+"]","special")}if(x(n))return e.stylize(RegExp.prototype.toString.call(n),"regexp");if(k(n))return e.stylize(Date.prototype.toString.call(n),"date");if(C(n))return c(n)}var v="",y=!1,b=["{","}"];if(d(n)&&(y=!0,b=["[","]"]),S(n)){var w=n.name?": "+n.name:"";v=" [Function"+w+"]"}if(x(n)&&(v=" "+RegExp.prototype.toString.call(n)),k(n)&&(v=" "+Date.prototype.toUTCString.call(n)),C(n)&&(v=" "+c(n)),0===a.length&&(!y||0==n.length))return b[0]+v+b[1];if(r<0)return x(n)?e.stylize(RegExp.prototype.toString.call(n),"regexp"):e.stylize("[Object]","special");e.seen.push(n);var E;return E=y?f(e,n,r,m,a):a.map(function(t){return h(e,n,r,m,t,y)}),e.seen.pop(),p(E,v,b)}function l(e,t){if(w(t))return e.stylize("undefined","undefined");if(_(t)){var n="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(n,"string")}return y(t)?e.stylize(""+t,"number"):m(t)?e.stylize(""+t,"boolean"):g(t)?e.stylize("null","null"):void 0}function c(e){return"["+Error.prototype.toString.call(e)+"]"}function f(e,t,n,r,i){for(var o=[],a=0,s=t.length;a-1&&(s=o?s.split("\n").map(function(e){return" "+e}).join("\n").substr(2):"\n"+s.split("\n").map(function(e){return" "+e}).join("\n"))):s=e.stylize("[Circular]","special")),w(a)){if(o&&i.match(/^\d+$/))return s;a=JSON.stringify(""+i),a.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(a=a.substr(1,a.length-2),a=e.stylize(a,"name")):(a=a.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),a=e.stylize(a,"string"))}return a+": "+s}function p(e,t,n){var r=0,i=e.reduce(function(e,t){return r++,t.indexOf("\n")>=0&&r++,e+t.replace(/\u001b\[\d\d?m/g,"").length+1},0);return i>60?n[0]+(""===t?"":t+"\n ")+" "+e.join(",\n ")+" "+n[1]:n[0]+t+" "+e.join(", ")+" "+n[1]}function d(e){return Array.isArray(e)}function m(e){return"boolean"==typeof e}function g(e){return null===e}function v(e){return null==e}function y(e){return"number"==typeof e}function _(e){return"string"==typeof e}function b(e){return"symbol"==typeof e}function w(e){return void 0===e}function x(e){return E(e)&&"[object RegExp]"===N(e)}function E(e){return"object"==typeof e&&null!==e}function k(e){return E(e)&&"[object Date]"===N(e)}function C(e){return E(e)&&("[object Error]"===N(e)||e instanceof Error)}function S(e){return"function"==typeof e}function T(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"==typeof e||"undefined"==typeof e}function N(e){return Object.prototype.toString.call(e)}function A(e){return e<10?"0"+e.toString(10):e.toString(10)}function R(){var e=new Date,t=[A(e.getHours()),A(e.getMinutes()),A(e.getSeconds())].join(":");return[e.getDate(),P[e.getMonth()],t].join(" ")}function O(e,t){return Object.prototype.hasOwnProperty.call(e,t)}var M=/%[sdj%]/g;t.format=function(e){if(!_(e)){for(var t=[],n=0;n=o)return e;switch(e){case"%s":return String(r[n++]);case"%d":return Number(r[n++]);case"%j":try{return JSON.stringify(r[n++])}catch(e){return"[Circular]"}default:return e}}),s=r[n];ns||e<0?(n=Math.abs(e)%s,e<0?s-n:n):e}function r(e){var t,n,r;for(t=n=0,r=e.length;0<=r?nr;t=0<=r?++n:--n)e[t]=0;return!1}function i(){var e;this.SBOX=[],this.INV_SBOX=[],this.SUB_MIX=function(){var t,n;for(n=[],e=t=0;t<4;e=++t)n.push([]);return n}(),this.INV_SUB_MIX=function(){var t,n;for(n=[],e=t=0;t<4;e=++t)n.push([]);return n}(),this.init(),this.RCON=[0,1,2,4,8,16,32,64,128,27,54]}function o(e){for(var t=e.length/4,n=new Array(t),r=-1;++r>>8^255&n^99,this.SBOX[i]=n,this.INV_SBOX[n]=i,o=e[i],a=e[o],s=e[a],r=257*e[n]^16843008*n,this.SUB_MIX[0][i]=r<<24|r>>>8,this.SUB_MIX[1][i]=r<<16|r>>>16,this.SUB_MIX[2][i]=r<<8|r>>>24,this.SUB_MIX[3][i]=r,r=16843009*s^65537*a^257*o^16843008*i,this.INV_SUB_MIX[0][n]=r<<24|r>>>8,this.INV_SUB_MIX[1][n]=r<<16|r>>>16,this.INV_SUB_MIX[2][n]=r<<8|r>>>24,this.INV_SUB_MIX[3][n]=r,0===i?i=u=1:(i=o^e[e[e[s^o]]],u^=e[e[u]]);return!0};var u=new i;a.blockSize=16,a.prototype.blockSize=a.blockSize,a.keySize=32,a.prototype.keySize=a.keySize,a.ivSize=a.blockSize,a.prototype.ivSize=a.ivSize,a.prototype._doReset=function(){var e,t,n,r,i,o,a,s;for(n=this._key,t=n.length,this._nRounds=t+6,i=4*(this._nRounds+1),this._keySchedule=[],r=a=0;0<=i?ai;r=0<=i?++a:--a)this._keySchedule[r]=r>>24,o=u.SBOX[o>>>24]<<24|u.SBOX[o>>>16&255]<<16|u.SBOX[o>>>8&255]<<8|u.SBOX[255&o],o^=u.RCON[r/t|0]<<24):t>6&&r%t===4?o=u.SBOX[o>>>24]<<24|u.SBOX[o>>>16&255]<<16|u.SBOX[o>>>8&255]<<8|u.SBOX[255&o]:void 0,this._keySchedule[r-t]^o);for(this._invKeySchedule=[],e=s=0;0<=i?si;e=0<=i?++s:--s)r=i-e,o=this._keySchedule[r-(e%4?0:4)],this._invKeySchedule[e]=e<4||r<=4?o:u.INV_SUB_MIX[0][u.SBOX[o>>>24]]^u.INV_SUB_MIX[1][u.SBOX[o>>>16&255]]^u.INV_SUB_MIX[2][u.SBOX[o>>>8&255]]^u.INV_SUB_MIX[3][u.SBOX[255&o]];return!0},a.prototype.encryptBlock=function(t){t=o(new e(t));var n=this._doCryptBlock(t,this._keySchedule,u.SUB_MIX,u.SBOX),r=new e(16);return r.writeUInt32BE(n[0],0),r.writeUInt32BE(n[1],4),r.writeUInt32BE(n[2],8),r.writeUInt32BE(n[3],12),r},a.prototype.decryptBlock=function(t){t=o(new e(t));var n=[t[3],t[1]];t[1]=n[0],t[3]=n[1];var r=this._doCryptBlock(t,this._invKeySchedule,u.INV_SUB_MIX,u.INV_SBOX),i=new e(16);return i.writeUInt32BE(r[0],0),i.writeUInt32BE(r[3],4),i.writeUInt32BE(r[2],8),i.writeUInt32BE(r[1],12),i},a.prototype.scrub=function(){r(this._keySchedule),r(this._invKeySchedule),r(this._key)},a.prototype._doCryptBlock=function(e,t,r,i){var o,a,s,u,l,c,f,h,p,d,m,g;for(s=e[0]^t[0],u=e[1]^t[1],l=e[2]^t[2],c=e[3]^t[3],o=4,a=m=1,g=this._nRounds;1<=g?mg;a=1<=g?++m:--m)f=r[0][s>>>24]^r[1][u>>>16&255]^r[2][l>>>8&255]^r[3][255&c]^t[o++],h=r[0][u>>>24]^r[1][l>>>16&255]^r[2][c>>>8&255]^r[3][255&s]^t[o++],p=r[0][l>>>24]^r[1][c>>>16&255]^r[2][s>>>8&255]^r[3][255&u]^t[o++],d=r[0][c>>>24]^r[1][s>>>16&255]^r[2][u>>>8&255]^r[3][255&l]^t[o++],s=f,u=h,l=p,c=d;return f=(i[s>>>24]<<24|i[u>>>16&255]<<16|i[l>>>8&255]<<8|i[255&c])^t[o++],h=(i[u>>>24]<<24|i[l>>>16&255]<<16|i[c>>>8&255]<<8|i[255&s])^t[o++],p=(i[l>>>24]<<24|i[c>>>16&255]<<16|i[s>>>8&255]<<8|i[255&u])^t[o++],d=(i[c>>>24]<<24|i[s>>>16&255]<<16|i[u>>>8&255]<<8|i[255&l])^t[o++],[n(f),n(h),n(p),n(d)]},t.AES=a}).call(t,n(8).Buffer)},function(e,t,n){(function(t){function r(){i.call(this)}var i=n(368).Transform,o=n(1);e.exports=r,o(r,i),r.prototype.update=function(e,n,r){this.write(e,n);for(var i,o=new t("");i=this.read();)o=t.concat([o,i]);return r&&(o=o.toString(r)),o},r.prototype.final=function(e){this.end();for(var n,r=new t("");n=this.read();)r=t.concat([r,n]);return e&&(r=r.toString(e)),r}}).call(t,n(8).Buffer)},function(e,t){t["aes-128-ecb"]={cipher:"AES",key:128,iv:0,mode:"ECB",type:"block"},t["aes-192-ecb"]={cipher:"AES",key:192,iv:0,mode:"ECB",type:"block"},t["aes-256-ecb"]={cipher:"AES",key:256,iv:0,mode:"ECB",type:"block"},t["aes-128-cbc"]={cipher:"AES",key:128,iv:16,mode:"CBC",type:"block"},t["aes-192-cbc"]={cipher:"AES",key:192,iv:16,mode:"CBC",type:"block"},t["aes-256-cbc"]={cipher:"AES",key:256,iv:16,mode:"CBC",type:"block"},t.aes128=t["aes-128-cbc"],t.aes192=t["aes-192-cbc"],t.aes256=t["aes-256-cbc"],t["aes-128-cfb"]={cipher:"AES",key:128,iv:16,mode:"CFB",type:"stream"},t["aes-192-cfb"]={cipher:"AES",key:192,iv:16,mode:"CFB",type:"stream"},t["aes-256-cfb"]={cipher:"AES",key:256,iv:16,mode:"CFB",type:"stream"},t["aes-128-ofb"]={cipher:"AES",key:128,iv:16,mode:"OFB",type:"stream"},t["aes-192-ofb"]={cipher:"AES",key:192,iv:16,mode:"OFB",type:"stream"},t["aes-256-ofb"]={cipher:"AES",key:256,iv:16,mode:"OFB",type:"stream"},t["aes-128-ctr"]={cipher:"AES",key:128,iv:16,mode:"CTR",type:"stream"},t["aes-192-ctr"]={cipher:"AES",key:192,iv:16,mode:"CTR",type:"stream"},t["aes-256-ctr"]={cipher:"AES",key:256,iv:16,mode:"CTR",type:"stream"}},function(e,t){e.exports=function(e){if("function"!=typeof e)throw TypeError(e+" is not a function!");return e}},function(e,t){e.exports=function(e,t,n,r){if(!(e instanceof t)||void 0!==r&&r in e)throw TypeError(n+": incorrect invocation!");return e}},function(e,t,n){var r=n(88),i=n(22)("toStringTag"),o="Arguments"==r(function(){return arguments}()),a=function(e,t){try{return e[t]}catch(e){}};e.exports=function(e){var t,n,s;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(n=a(t=Object(e),i))?n:o?r(t):"Object"==(s=r(t))&&"function"==typeof t.callee?"Arguments":s}},function(e,t,n){var r=n(48),i=n(25).document,o=r(i)&&r(i.createElement);e.exports=function(e){return o?i.createElement(e):{}}},function(e,t){e.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(e,t,n){var r=n(88);e.exports=Object("z").propertyIsEnumerable(0)?Object:function(e){return"String"==r(e)?e.split(""):Object(e)}},function(e,t,n){"use strict";var r=n(117),i=n(21),o=n(270),a=n(47),s=n(53),u=n(89),l=n(487),c=n(92),f=n(492),h=n(22)("iterator"),p=!([].keys&&"next"in[].keys()),d="@@iterator",m="keys",g="values",v=function(){return this};e.exports=function(e,t,n,y,_,b,w){l(n,t,y);var x,E,k,C=function(e){if(!p&&e in A)return A[e];switch(e){case m:return function(){return new n(this,e)};case g:return function(){return new n(this,e)}}return function(){return new n(this,e)}},S=t+" Iterator",T=_==g,N=!1,A=e.prototype,R=A[h]||A[d]||_&&A[_],O=R||C(_),M=_?T?C("entries"):O:void 0,j="Array"==t?A.entries||R:R;if(j&&(k=f(j.call(new e)),k!==Object.prototype&&(c(k,S,!0),r||s(k,h)||a(k,h,v))),T&&R&&R.name!==g&&(N=!0,O=function(){return R.call(this)}),r&&!w||!p&&!N&&A[h]||a(A,h,O),u[t]=O,u[S]=v,_)if(x={values:T?O:C(g),keys:b?O:C(m),entries:M},w)for(E in x)E in A||o(A,E,x[E]);else i(i.P+i.F*(p||N),t,x);return x}},function(e,t,n){var r=n(120)("meta"),i=n(48),o=n(53),a=n(30).f,s=0,u=Object.isExtensible||function(){return!0},l=!n(52)(function(){return u(Object.preventExtensions({}))}),c=function(e){a(e,r,{value:{i:"O"+ ++s,w:{}}})},f=function(e,t){if(!i(e))return"symbol"==typeof e?e:("string"==typeof e?"S":"P")+e;if(!o(e,r)){if(!u(e))return"F";if(!t)return"E";c(e)}return e[r].i},h=function(e,t){if(!o(e,r)){if(!u(e))return!0;if(!t)return!1;c(e)}return e[r].w},p=function(e){return l&&d.NEED&&u(e)&&!o(e,r)&&c(e),e},d=e.exports={KEY:r,NEED:!1,fastKey:f,getWeak:h,onFreeze:p}},function(e,t){t.f=Object.getOwnPropertySymbols},function(e,t,n){var r=n(47);e.exports=function(e,t,n){for(var i in t)n&&e[i]?e[i]=t[i]:r(e,i,t[i]);return e}},function(e,t,n){var r=n(170)("keys"),i=n(120);e.exports=function(e){return r[e]||(r[e]=i(e))}},function(e,t,n){var r=n(25),i="__core-js_shared__",o=r[i]||(r[i]={});e.exports=function(e){return o[e]||(o[e]={})}},function(e,t){var n=Math.ceil,r=Math.floor;e.exports=function(e){return isNaN(e=+e)?0:(e>0?r:n)(e)}},function(e,t,n){var r=n(48);e.exports=function(e,t){if(!r(e))return e;var n,i;if(t&&"function"==typeof(n=e.toString)&&!r(i=n.call(e)))return i;if("function"==typeof(n=e.valueOf)&&!r(i=n.call(e)))return i;if(!t&&"function"==typeof(n=e.toString)&&!r(i=n.call(e)))return i;throw TypeError("Can't convert object to primitive value")}},function(e,t,n){var r=n(25),i=n(15),o=n(117),a=n(174),s=n(30).f;e.exports=function(e){var t=i.Symbol||(i.Symbol=o?{}:r.Symbol||{});"_"==e.charAt(0)||e in t||s(t,e,{value:a.f(e)})}},function(e,t,n){t.f=n(22)},function(e,t,n){var r=n(161),i=n(22)("iterator"),o=n(89);e.exports=n(15).getIteratorMethod=function(e){if(void 0!=e)return e[i]||e["@@iterator"]||o[r(e)]}},function(e,t){"use strict";function n(e,t){return e===t?0!==e||0!==t||1/e===1/t:e!==e&&t!==t}function r(e,t){if(n(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;var r=Object.keys(e),o=Object.keys(t);if(r.length!==o.length)return!1;for(var a=0;a1||"*"===e.returning[0]?n:(0,f.default)((0,p.default)(n,l.default)):e.rowsAffected;default:return n}}});var D=["ORA-12514","NJS-040","NJS-024","NJS-003","NJS-024"];e.exports=t.default}).call(t,n(8).Buffer)},function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}t.__esModule=!0;var i=n(55),o=r(i),a={renameColumnTrigger:function(e,t,n){var r=o.generateCombinedName("autoinc_trg",e),i=o.generateCombinedName("seq",e);return"DECLARE PK_NAME VARCHAR(200); IS_AUTOINC NUMBER := 0; BEGIN"+(" EXECUTE IMMEDIATE ('ALTER TABLE \""+e+'" RENAME COLUMN "'+t+'" TO "'+n+"\"');")+(' SELECT COUNT(*) INTO IS_AUTOINC from "USER_TRIGGERS" where trigger_name = \''+r+"';")+" IF (IS_AUTOINC > 0) THEN SELECT cols.column_name INTO PK_NAME FROM all_constraints cons, all_cons_columns cols WHERE cons.constraint_type = 'P' AND cons.constraint_name = cols.constraint_name AND cons.owner = cols.owner"+(" AND cols.table_name = '"+e+"';")+(" IF ('"+n+"' = PK_NAME) THEN")+(" EXECUTE IMMEDIATE ('DROP TRIGGER \""+r+"\"');")+(" EXECUTE IMMEDIATE ('create or replace trigger \""+r+'"')+(' BEFORE INSERT on "'+e+'" for each row')+" declare checking number := 1; begin"+(' if (:new."'+n+'" is null) then')+" while checking >= 1 loop"+(' select "'+i+'".nextval into :new."'+n+'" from dual;')+(' select count("'+n+'") into checking from "'+e+'"')+(' where "'+n+'" = :new."'+n+'";')+" end loop; end if; end;'); end if; end if;END;"},createAutoIncrementTrigger:function(e){var t=o.generateCombinedName("autoinc_trg",e),n=o.generateCombinedName("seq",e);return"DECLARE PK_NAME VARCHAR(200); BEGIN"+(" EXECUTE IMMEDIATE ('CREATE SEQUENCE \""+n+"\"');")+" SELECT cols.column_name INTO PK_NAME FROM all_constraints cons, all_cons_columns cols WHERE cons.constraint_type = 'P' AND cons.constraint_name = cols.constraint_name AND cons.owner = cols.owner"+(" AND cols.table_name = '"+e+"';")+(" execute immediate ('create or replace trigger \""+t+'"')+(' BEFORE INSERT on "'+e+'"')+" for each row declare checking number := 1; begin if (:new.\"' || PK_NAME || '\" is null) then while checking >= 1 loop"+(' select "'+n+'".nextval into :new."\' || PK_NAME || \'" from dual;')+(' select count("\' || PK_NAME || \'") into checking from "'+e+'"')+" where \"' || PK_NAME || '\" = :new.\"' || PK_NAME || '\"; end loop; end if; end;'); END;"},renameTableAndAutoIncrementTrigger:function(e,t){var n=o.generateCombinedName("autoinc_trg",e),r=o.generateCombinedName("seq",e),i=o.generateCombinedName("autoinc_trg",t),a=o.generateCombinedName("seq",t);return"DECLARE PK_NAME VARCHAR(200); IS_AUTOINC NUMBER := 0; BEGIN"+(" EXECUTE IMMEDIATE ('RENAME \""+e+'" TO "'+t+"\"');")+(' SELECT COUNT(*) INTO IS_AUTOINC from "USER_TRIGGERS" where trigger_name = \''+n+"';")+" IF (IS_AUTOINC > 0) THEN"+(" EXECUTE IMMEDIATE ('DROP TRIGGER \""+n+"\"');")+(" EXECUTE IMMEDIATE ('RENAME \""+r+'" TO "'+a+"\"');")+" SELECT cols.column_name INTO PK_NAME FROM all_constraints cons, all_cons_columns cols WHERE cons.constraint_type = 'P' AND cons.constraint_name = cols.constraint_name AND cons.owner = cols.owner"+(" AND cols.table_name = '"+t+"';")+(" EXECUTE IMMEDIATE ('create or replace trigger \""+i+'"')+(' BEFORE INSERT on "'+t+'" for each row')+" declare checking number := 1; begin if (:new.\"' || PK_NAME || '\" is null) then while checking >= 1 loop"+(' select "'+a+'".nextval into :new."\' || PK_NAME || \'" from dual;')+(' select count("\' || PK_NAME || \'") into checking from "'+t+'"')+" where \"' || PK_NAME || '\" = :new.\"' || PK_NAME || '\"; end loop; end if; end;'); end if;END;"}};t.default=a,e.exports=t.default},function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var o=n(75),a=i(o),s=n(206),u=i(s),l=n(18),c=i(l),f=n(9),h=i(f);t.default=function(e){e.prototype.toQuery=function(e){var t=this,n=this.toSQL(this._method,e);return(0,h.default)(n)||(n=[n]),(0,c.default)(n,function(n){return t.client._formatQuery(n.sql,n.bindings,e)}).join(";\n")},e.prototype.then=function(){var e=this.client.runner(this).run();return e.then.apply(e,arguments)},e.prototype.options=function(e){return this._options=this._options||[],this._options.push((0,u.default)(e)||{}),this},e.prototype.connection=function(e){return this._connection=e,this},e.prototype.debug=function(e){return this._debug=!arguments.length||e,this},e.prototype.transacting=function(e){return e&&e.client&&(e.client.transacting?this.client=e.client:d.warn("Invalid transaction value: "+e.client)),this},e.prototype.stream=function(e){return this.client.runner(this).stream(e)},e.prototype.pipe=function(e,t){return this.client.runner(this).pipe(e,t)},(0,a.default)(["bind","catch","finally","asCallback","spread","map","reduce","tap","thenReturn","return","yield","ensure","reflect","get","mapSeries","delay"],function(t){e.prototype[t]=function(){var e=this.then();return e[t].apply(e,arguments)}})};var p=n(6),d=r(p);e.exports=t.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e){e&&((0,l.default)(e)&&(e={sql:e}),e.bindings||(e.bindings=this.formatter.bindings),this.sequence.push(e),this.formatter=this.client.formatter())}function o(e){var t=new this.constructor(this.client,this.tableCompiler,this.columnBuilder);e.call(t,(0,s.default)(arguments)),this.sequence.additional=(this.sequence.additional||[]).concat(t.sequence)}t.__esModule=!0;var a=n(142),s=r(a),u=n(41),l=r(u);t.pushQuery=i,t.pushAdditional=o},function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}function o(e){function t(e,n){var r=t.queryBuilder();return e||b.warn("calling knex without a tableName is deprecated. Use knex.queryBuilder() instead."),e?r.table(e,n):r}(0,l.default)(t,{Promise:n(13),queryBuilder:function(){return e.queryBuilder()},raw:function(){return e.raw.apply(e,arguments)},batchInsert:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1e3;return(0,x.default)(this,e,t,n)},transaction:function(t,n){return e.transaction(t,n)},initialize:function(t){return e.initialize(t)},destroy:function(t){return e.destroy(t)}});var r=new c.EventEmitter;for(var i in r)t[i]=r[i];y.default.forEach(function(e){t[e]=function(){var n=t.queryBuilder();return n[e].apply(n,arguments)}}),t.client=e;var a="0.12.6";return(0,s.default)(t,{__knex__:{get:function(){return b.warn("knex.__knex__ is deprecated, you can get the module versionby running require('knex/package').version"),a}},VERSION:{get:function(){return b.warn("knex.VERSION is deprecated, you can get the module versionby running require('knex/package').version"),a}},schema:{get:function(){return e.schemaBuilder()}},migrate:{get:function(){return new h.default(t)}},seed:{get:function(){return new d.default(t)}},fn:{get:function(){return new g.default(e)}}}),e.on("start",function(e){t.emit("start",e)}),e.on("query",function(e){t.emit("query",e)}),e.on("query-error",function(e,n){t.emit("query-error",e,n)}),e.on("query-response",function(e,n,r){t.emit("query-response",e,n,r)}),e.makeKnex=o,t}t.__esModule=!0;var a=n(153),s=i(a),u=n(4),l=i(u);t.default=o;var c=n(26),f=n(286),h=i(f),p=n(286),d=i(p),m=n(579),g=i(m),v=n(581),y=i(v),_=n(6),b=r(_),w=n(585),x=i(w);e.exports=t.default},function(e,t,n){function r(e){this.__wrapped__=e,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=a,this.__views__=[]}var i=n(97),o=n(194),a=4294967295;r.prototype=i(o.prototype),r.prototype.constructor=r,e.exports=r},function(e,t,n){var r=n(59),i=n(24),o=r(i,"Map");e.exports=o},function(e,t,n){function r(e){var t=-1,n=null==e?0:e.length;for(this.clear();++ti?0:i+t),n=n>i?i:n,n<0&&(n+=i),i=t>n?0:n-t>>>0,t>>>=0;for(var o=Array(i);++r1?n[i-1]:void 0,s=i>2?n[2]:void 0;for(a=e.length>3&&"function"==typeof a?(i--,a):void 0,s&&o(n[0],n[1],s)&&(a=i<3?void 0:a,i=1),t=Object(t);++r-1&&e%1==0&&e<=r}var r=9007199254740991;e.exports=n},function(e,t,n){function r(e){return"number"==typeof e||o(e)&&i(e)==a}var i=n(40),o=n(37),a="[object Number]";e.exports=r},function(e,t,n){function r(e){if(!a(e)||i(e)!=s)return!1;var t=o(e);if(null===t)return!0;var n=f.call(t,"constructor")&&t.constructor;return"function"==typeof n&&n instanceof n&&c.call(n)==h}var i=n(40),o=n(134),a=n(37),s="[object Object]",u=Function.prototype,l=Object.prototype,c=u.toString,f=l.hasOwnProperty,h=c.call(Object);e.exports=r},function(e,t){function n(){}e.exports=n},function(e,t,n){"use strict";function r(e,t){return Array.isArray(t)&&(t=t[1]),t?t.nextSibling:e.firstChild}function i(e,t,n){c.insertTreeBefore(e,t,n)}function o(e,t,n){Array.isArray(t)?s(e,t[0],t[1],n):m(e,t,n)}function a(e,t){if(Array.isArray(t)){var n=t[1];t=t[0],u(e,t,n),e.removeChild(n)}e.removeChild(t)}function s(e,t,n,r){for(var i=t;;){var o=i.nextSibling;if(m(e,i,r),i===n)break;i=o}}function u(e,t,n){for(;;){var r=t.nextSibling;if(r===n)break;e.removeChild(r)}}function l(e,t,n){var r=e.parentNode,i=e.nextSibling;i===t?n&&m(r,document.createTextNode(n),i):n?(d(i,n),u(r,i,t)):u(r,e,t)}var c=n(80),f=n(752),h=(n(16),n(34),n(223)),p=n(149),d=n(360),m=h(function(e,t,n){e.insertBefore(t,n)}),g=f.dangerouslyReplaceNodeWithMarkup,v={dangerouslyReplaceNodeWithMarkup:g,replaceDelimitedText:l,processUpdates:function(e,t){for(var n=0;n-1?void 0:a("96",e),!l.plugins[n]){t.extractEvents?void 0:a("97",e),l.plugins[n]=t;var r=t.eventTypes;for(var o in r)i(r[o],t,o)?void 0:a("98",o,e)}}}function i(e,t,n){l.eventNameDispatchConfigs.hasOwnProperty(n)?a("99",n):void 0,l.eventNameDispatchConfigs[n]=e;var r=e.phasedRegistrationNames;if(r){for(var i in r)if(r.hasOwnProperty(i)){var s=r[i];o(s,t,n)}return!0}return!!e.registrationName&&(o(e.registrationName,t,n),!0)}function o(e,t,n){l.registrationNameModules[e]?a("100",e):void 0,l.registrationNameModules[e]=t,l.registrationNameDependencies[e]=t.eventTypes[n].dependencies}var a=n(7),s=(n(2),null),u={},l={plugins:[],eventNameDispatchConfigs:{},registrationNameModules:{},registrationNameDependencies:{},possibleRegistrationNames:null,injectEventPluginOrder:function(e){s?a("101"):void 0,s=Array.prototype.slice.call(e),r()},injectEventPluginsByName:function(e){var t=!1;for(var n in e)if(e.hasOwnProperty(n)){var i=e[n];u.hasOwnProperty(n)&&u[n]===i||(u[n]?a("102",n):void 0,u[n]=i,t=!0)}t&&r()},getPluginModuleForEvent:function(e){var t=e.dispatchConfig;if(t.registrationName)return l.registrationNameModules[t.registrationName]||null;if(void 0!==t.phasedRegistrationNames){var n=t.phasedRegistrationNames;for(var r in n)if(n.hasOwnProperty(r)){var i=l.registrationNameModules[n[r]];if(i)return i}}return null},_resetEventPlugins:function(){s=null;for(var e in u)u.hasOwnProperty(e)&&delete u[e];l.plugins.length=0;var t=l.eventNameDispatchConfigs;for(var n in t)t.hasOwnProperty(n)&&delete t[n];var r=l.registrationNameModules;for(var i in r)r.hasOwnProperty(i)&&delete r[i]}};e.exports=l},function(e,t,n){"use strict";function r(e){return"topMouseUp"===e||"topTouchEnd"===e||"topTouchCancel"===e}function i(e){return"topMouseMove"===e||"topTouchMove"===e}function o(e){return"topMouseDown"===e||"topTouchStart"===e}function a(e,t,n,r){var i=e.type||"unknown-event";e.currentTarget=v.getNodeFromInstance(r),t?m.invokeGuardedCallbackWithCatch(i,n,e):m.invokeGuardedCallback(i,n,e),e.currentTarget=null}function s(e,t){var n=e._dispatchListeners,r=e._dispatchInstances;if(Array.isArray(n))for(var i=0;i0&&r.length<20?n+" (keys: "+r.join(", ")+")":n}function o(e,t){var n=s.get(e);if(!n){return null}return n}var a=n(7),s=(n(44),n(108)),u=(n(34),n(38)),l=(n(2),n(5),{isMounted:function(e){var t=s.get(e);return!!t&&!!t._renderedComponent},enqueueCallback:function(e,t,n){l.validateCallback(t,n);var i=o(e);return i?(i._pendingCallbacks?i._pendingCallbacks.push(t):i._pendingCallbacks=[t],void r(i)):null},enqueueCallbackInternal:function(e,t){e._pendingCallbacks?e._pendingCallbacks.push(t):e._pendingCallbacks=[t],r(e)},enqueueForceUpdate:function(e){var t=o(e,"forceUpdate");t&&(t._pendingForceUpdate=!0,r(t))},enqueueReplaceState:function(e,t,n){var i=o(e,"replaceState");i&&(i._pendingStateQueue=[t],i._pendingReplaceState=!0,void 0!==n&&null!==n&&(l.validateCallback(n,"replaceState"),i._pendingCallbacks?i._pendingCallbacks.push(n):i._pendingCallbacks=[n]),r(i))},enqueueSetState:function(e,t){var n=o(e,"setState");if(n){var i=n._pendingStateQueue||(n._pendingStateQueue=[]);i.push(t),r(n)}},enqueueElementInternal:function(e,t,n){e._pendingElement=t,e._context=n,r(e)},validateCallback:function(e,t){e&&"function"!=typeof e?a("122",t,i(e)):void 0}});e.exports=l},function(e,t){"use strict";var n=function(e){return"undefined"!=typeof MSApp&&MSApp.execUnsafeLocalFunction?function(t,n,r,i){MSApp.execUnsafeLocalFunction(function(){return e(t,n,r,i)})}:e};e.exports=n},function(e,t){"use strict";function n(e){var t,n=e.keyCode;return"charCode"in e?(t=e.charCode,0===t&&13===n&&(t=13)):t=n,t>=32||13===t?t:0}e.exports=n},function(e,t){"use strict";function n(e){var t=this,n=t.nativeEvent;if(n.getModifierState)return n.getModifierState(e);var r=i[e];return!!r&&!!n[r]}function r(e){return n}var i={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};e.exports=r},function(e,t){"use strict";function n(e){var t=e.target||e.srcElement||window;return t.correspondingUseElement&&(t=t.correspondingUseElement),3===t.nodeType?t.parentNode:t}e.exports=n},function(e,t,n){"use strict";/** + * Checks if an event is supported in the current execution environment. + * + * NOTE: This will not work correctly for non-generic events such as `change`, + * `reset`, `load`, `error`, and `select`. + * + * Borrows from Modernizr. + * + * @param {string} eventNameSuffix Event name, e.g. "click". + * @param {?boolean} capture Check if the capture phase is supported. + * @return {boolean} True if the event is supported. + * @internal + * @license Modernizr 3.0.0pre (Custom Build) | MIT + */ +function r(e,t){if(!o.canUseDOM||t&&!("addEventListener"in document))return!1;var n="on"+e,r=n in document;if(!r){var a=document.createElement("div");a.setAttribute(n,"return;"),r="function"==typeof a[n]}return!r&&i&&"wheel"===e&&(r=document.implementation.hasFeature("Events.wheel","3.0")),r}var i,o=n(23);o.canUseDOM&&(i=document.implementation&&document.implementation.hasFeature&&document.implementation.hasFeature("","")!==!0),e.exports=r},function(e,t){"use strict";function n(e,t){var n=null===e||e===!1,r=null===t||t===!1;if(n||r)return n===r;var i=typeof e,o=typeof t;return"string"===i||"number"===i?"string"===o||"number"===o:"object"===o&&e.type===t.type&&e.key===t.key}e.exports=n},function(e,t,n){"use strict";var r=(n(14),n(31)),i=(n(5),r);e.exports=i},function(e,t,n){"use strict";function r(e,t,n){this.props=e,this.context=t,this.refs=a,this.updater=n||o}var i=n(85),o=n(231),a=(n(364),n(95));n(2),n(5);r.prototype.isReactComponent={},r.prototype.setState=function(e,t){"object"!=typeof e&&"function"!=typeof e&&null!=e?i("85"):void 0,this.updater.enqueueSetState(this,e),t&&this.updater.enqueueCallback(this,t,"setState")},r.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this),e&&this.updater.enqueueCallback(this,e,"forceUpdate")};e.exports=r},function(e,t,n){"use strict";function r(e,t){}var i=(n(5),{isMounted:function(e){return!1},enqueueCallback:function(e,t){},enqueueForceUpdate:function(e){r(e,"forceUpdate")},enqueueReplaceState:function(e,t){r(e,"replaceState")},enqueueSetState:function(e,t){r(e,"setState")}});e.exports=i},function(e,t,n){(function(t,r){"use strict";function i(){}function o(e,t,n){this.chunk=e,this.encoding=t,this.callback=n,this.next=null}function a(e,t){k=k||n(62),e=e||{},this.objectMode=!!e.objectMode,t instanceof k&&(this.objectMode=this.objectMode||!!e.writableObjectMode);var r=e.highWaterMark,i=this.objectMode?16:16384;this.highWaterMark=r||0===r?r:i,this.highWaterMark=~~this.highWaterMark,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1;var o=e.decodeStrings===!1;this.decodeStrings=!o,this.defaultEncoding=e.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(e){m(t,e)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.bufferedRequestCount=0,this.corkedRequestsFree=new E(this)}function s(e){return k=k||n(62),M.call(s,this)||this instanceof k?(this._writableState=new a(e,this),this.writable=!0,e&&("function"==typeof e.write&&(this._write=e.write),"function"==typeof e.writev&&(this._writev=e.writev)),void A.call(this)):new s(e)}function u(e,t){var n=new Error("write after end");e.emit("error",n),C(t,n)}function l(e,t,n,r){var i=!0,o=!1;return null===n?o=new TypeError("May not write null values to stream"):"string"==typeof n||void 0===n||t.objectMode||(o=new TypeError("Invalid non-string/buffer chunk")),o&&(e.emit("error",o),C(r,o),i=!1),i}function c(e,t,n){return e.objectMode||e.decodeStrings===!1||"string"!=typeof t||(t=O.from(t,n)),t}function f(e,t,n,r,i,a){n||(r=c(t,r,i),R.isBuffer(r)&&(i="buffer"));var s=t.objectMode?1:r.length;t.length+=s;var u=t.length-1?r:C;s.WritableState=a;var T=n(35);T.inherits=n(1);var N={deprecate:n(371)},A=n(367),R=n(8).Buffer,O=n(114);T.inherits(s,A),a.prototype.getBuffer=function(){for(var e=this.bufferedRequest,t=[];e;)t.push(e),e=e.next;return t},function(){try{Object.defineProperty(a.prototype,"buffer",{get:N.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.")})}catch(e){}}();var M;"function"==typeof Symbol&&Symbol.hasInstance&&"function"==typeof Function.prototype[Symbol.hasInstance]?(M=Function.prototype[Symbol.hasInstance],Object.defineProperty(s,Symbol.hasInstance,{value:function(e){return!!M.call(this,e)||e&&e._writableState instanceof a}})):M=function(e){return e instanceof this},s.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe, not readable"))},s.prototype.write=function(e,t,n){var r=this._writableState,o=!1,a=R.isBuffer(e);return"function"==typeof t&&(n=t,t=null),a?t="buffer":t||(t=r.defaultEncoding),"function"!=typeof n&&(n=i),r.ended?u(this,n):(a||l(this,r,e,n))&&(r.pendingcb++,o=f(this,r,a,e,t,n)),o},s.prototype.cork=function(){var e=this._writableState;e.corked++},s.prototype.uncork=function(){var e=this._writableState;e.corked&&(e.corked--,e.writing||e.corked||e.finished||e.bufferProcessing||!e.bufferedRequest||y(this,e))},s.prototype.setDefaultEncoding=function(e){if("string"==typeof e&&(e=e.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((e+"").toLowerCase())>-1))throw new TypeError("Unknown encoding: "+e);return this._writableState.defaultEncoding=e,this},s.prototype._write=function(e,t,n){n(new Error("_write() is not implemented"))},s.prototype._writev=null,s.prototype.end=function(e,t,n){var r=this._writableState;"function"==typeof e?(n=e,e=null,t=null):"function"==typeof t&&(n=t,t=null),null!==e&&void 0!==e&&this.write(e,t),r.corked&&(r.corked=1,this.uncork()),r.ending||r.finished||x(this,r,n)}}).call(t,n(17),n(234).setImmediate)},function(e,t,n){t=e.exports=n(365),t.Stream=t,t.Readable=t,t.Writable=n(232),t.Duplex=n(62),t.Transform=n(366),t.PassThrough=n(824)},function(e,t,n){function r(e,t){this._id=e,this._clearFn=t}var i=Function.prototype.apply;t.setTimeout=function(){return new r(i.call(setTimeout,window,arguments),clearTimeout)},t.setInterval=function(){return new r(i.call(setInterval,window,arguments),clearInterval)},t.clearTimeout=t.clearInterval=function(e){e&&e.close()},r.prototype.unref=r.prototype.ref=function(){},r.prototype.close=function(){this._clearFn.call(window,this._id)},t.enroll=function(e,t){clearTimeout(e._idleTimeoutId),e._idleTimeout=t},t.unenroll=function(e){clearTimeout(e._idleTimeoutId),e._idleTimeout=-1},t._unrefActive=t.active=function(e){clearTimeout(e._idleTimeoutId);var t=e._idleTimeout;t>=0&&(e._idleTimeoutId=setTimeout(function(){e._onTimeout&&e._onTimeout()},t))},n(830),t.setImmediate=setImmediate,t.clearImmediate=clearImmediate},function(e,t,n){(function(t){"use strict";/*! + * The buffer module from node.js, for the browser. + * + * @author Feross Aboukhadijeh + * @license MIT + */ +function r(e,t){if(e===t)return 0;for(var n=e.length,r=t.length,i=0,o=Math.min(n,r);i=0;s--)if(u[s]!==l[s])return!1;for(s=u.length-1;s>=0;s--)if(a=u[s],!p(e[a],t[a],n,r))return!1;return!0}function g(e,t,n){p(e,t,!0)&&f(e,t,n,"notDeepStrictEqual",g)}function v(e,t){if(!e||!t)return!1;if("[object RegExp]"==Object.prototype.toString.call(t))return t.test(e);try{if(e instanceof t)return!0}catch(e){}return!Error.isPrototypeOf(t)&&t.call({},e)===!0}function y(e){var t;try{e()}catch(e){t=e}return t}function _(e,t,n,r){var i;if("function"!=typeof t)throw new TypeError('"block" argument must be a function');"string"==typeof n&&(r=n,n=null),i=y(t),r=(n&&n.name?" ("+n.name+").":".")+(r?" "+r:"."),e&&!i&&f(i,n,"Missing expected exception"+r);var o="string"==typeof r,a=!e&&b.isError(i),s=!e&&i&&!n;if((a&&o&&v(i,n)||s)&&f(i,n,"Got unwanted exception"+r),e&&i&&n&&!v(i,n)||!e&&i)throw i}var b=n(150),w=Object.prototype.hasOwnProperty,x=Array.prototype.slice,E=function(){return"foo"===function(){}.name}(),k=e.exports=h,C=/\s*function\s+([^\(\s]*)\s*/;k.AssertionError=function(e){this.name="AssertionError",this.actual=e.actual,this.expected=e.expected,this.operator=e.operator,e.message?(this.message=e.message,this.generatedMessage=!1):(this.message=c(this),this.generatedMessage=!0);var t=e.stackStartFunction||f;if(Error.captureStackTrace)Error.captureStackTrace(this,t);else{var n=new Error;if(n.stack){var r=n.stack,i=s(t),o=r.indexOf("\n"+i);if(o>=0){var a=r.indexOf("\n",o+1);r=r.substring(a+1)}this.stack=r}}},b.inherits(k.AssertionError,Error),k.fail=f,k.ok=h,k.equal=function(e,t,n){e!=t&&f(e,t,n,"==",k.equal)},k.notEqual=function(e,t,n){e==t&&f(e,t,n,"!=",k.notEqual)},k.deepEqual=function(e,t,n){p(e,t,!1)||f(e,t,n,"deepEqual",k.deepEqual)},k.deepStrictEqual=function(e,t,n){p(e,t,!0)||f(e,t,n,"deepStrictEqual",k.deepStrictEqual)},k.notDeepEqual=function(e,t,n){p(e,t,!1)&&f(e,t,n,"notDeepEqual",k.notDeepEqual)},k.notDeepStrictEqual=g,k.strictEqual=function(e,t,n){e!==t&&f(e,t,n,"===",k.strictEqual)},k.notStrictEqual=function(e,t,n){e===t&&f(e,t,n,"!==",k.notStrictEqual)},k.throws=function(e,t,n){_(!0,e,t,n)},k.doesNotThrow=function(e,t,n){_(!1,e,t,n)},k.ifError=function(e){if(e)throw e};var S=Object.keys||function(e){var t=[];for(var n in e)w.call(e,n)&&t.push(n);return t}}).call(t,function(){return this}())},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}var i=n(3),o=r(i),a=n(112),s=r(a),u=function(){function e(t){var n=this;(0,o.default)(this,e),this._state=e.PENDING,this._resolve=void 0,this._reject=void 0,this._promise=new t(function(e,t){n._resolve=e,n._reject=t})}return e.prototype.reject=function(t){this._state===e.PENDING&&(this._state=e.REJECTED,this._reject(t))},e.prototype.resolve=function(t){this._state===e.PENDING&&(this._state=e.FULFILLED,this._resolve(t))},(0,s.default)(e,[{key:"state",get:function(){return this._state}},{key:"promise",get:function(){return this._promise}}]),e}();u.PENDING="PENDING",u.FULFILLED="FULFILLED",u.REJECTED="REJECTED",e.exports=u},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}var i=n(244),o=r(i),a=n(3),s=r(a),u=n(112),l=r(u),c=n(238),f=n(378),h=function(){function e(){(0,s.default)(this,e),this._list=new c}return e.prototype.shift=function(){if(0!==this._length){var e=this._list.head;return this._list.remove(e),e.data}},e.prototype.unshift=function(e){var t=c.createNode(e);this._list.insertBeginning(t)},e.prototype.push=function(e){var t=c.createNode(e);this._list.insertEnd(t)},e.prototype.pop=function(){if(0!==this._length){var e=this._list.tail;return this._list.remove(e),e.data}},e.prototype[o.default]=function(){return new f(this._list)},e.prototype.iterator=function(){return new f(this._list)},e.prototype.reverseIterator=function(){return new f(this._list,!0)},(0,l.default)(e,[{key:"head",get:function(){if(0!==this._list.length){var e=this._list.head;return e.data}}},{key:"tail",get:function(){if(0!==this._list.length){var e=this._list.tail;return e.data}}},{key:"length",get:function(){return this._list.length}}]),e}();e.exports=h},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}var i=n(3),o=r(i),a=function(){function e(){(0,o.default)(this,e),this.head=null,this.tail=null,this.length=0}return e.prototype.insertBeginning=function(e){null===this.head?(this.head=e,this.tail=e,e.prev=null,e.next=null,this.length++):this.insertBefore(this.head,e)},e.prototype.insertEnd=function(e){null===this.tail?this.insertBeginning(e):this.insertAfter(this.tail,e)},e.prototype.insertAfter=function(e,t){t.prev=e,t.next=e.next,null===e.next?this.tail=t:e.next.prev=t,e.next=t,this.length++},e.prototype.insertBefore=function(e,t){t.prev=e.prev,t.next=e,null===e.prev?this.head=t:e.prev.next=t,e.prev=t,this.length++},e.prototype.remove=function(e){null===e.prev?this.head=e.next:e.prev.next=e.next,null===e.next?this.tail=e.prev:e.next.prev=e.prev,e.prev=null,e.next=null,this.length--},e.createNode=function(e){return{prev:null,next:null,data:e}},e}();e.exports=a},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}var i=n(3),o=r(i),a=n(11),s=r(a),u=n(10),l=r(u),c=function(e){function t(n){(0,o.default)(this,t);var r=(0,s.default)(this,e.call(this,n));return r.name=r.constructor.name,r.message=n,"function"==typeof Error.captureStackTrace?Error.captureStackTrace(r,r.constructor):r.stack=new Error(n).stack,r}return(0,l.default)(t,e),t}(Error),f=function(e){function t(n){return(0,o.default)(this,t),(0,s.default)(this,e.call(this,n))}return(0,l.default)(t,e),t}(c);e.exports={TimeoutError:f}},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=n(3),o=r(i),a=n(11),s=r(a),u=n(10),l=r(u),c=n(20),f=r(c),h=n(87),p=r(h),d=function(e){function t(){return(0,o.default)(this,t),(0,s.default)(this,e.apply(this,arguments))}return(0,l.default)(t,e),t.prototype.render=function(){return f.default.createElement("ul",null,this.props.content.map(function(e,t){return f.default.createElement("li",{key:t,dangerouslySetInnerHTML:{__html:(0,p.default)(e)}})}))},t}(c.Component);d.propTypes={content:c.PropTypes.arrayOf(c.PropTypes.string).isRequired},t.default=d,e.exports=t.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e){return s.default.highlight("js",e,!0).value}function o(e){return s.default.highlight("sql",e,!0).value}t.__esModule=!0,t.js=i,t.sql=o;var a=n(538),s=r(a),u=n(540),l=r(u),c=n(539),f=r(c);s.default.registerLanguage("sql",l.default),s.default.registerLanguage("js",f.default)},function(e,t,n){e.exports={default:n(470),__esModule:!0}},function(e,t,n){e.exports={default:n(472),__esModule:!0}},function(e,t,n){e.exports={default:n(477),__esModule:!0}},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=n(423),o=r(i);t.default=o.default||function(e){for(var t=1;t0&&o.update(a),o.update(n),a=o.digest(),s=0,r>0)for(;;){if(0===r)break;if(s===a.length)break;c[u++]=a[s],r--,s++}if(i>0&&s!==a.length)for(;;){if(0===i)break;if(s===a.length)break;f[l++]=a[s],i--,s++}if(0===r&&0===i)break}for(s=0;s.04045?Math.pow((t+.055)/1.055,2.4):t/12.92,n=n>.04045?Math.pow((n+.055)/1.055,2.4):n/12.92,r=r>.04045?Math.pow((r+.055)/1.055,2.4):r/12.92;var i=.4124*t+.3576*n+.1805*r,o=.2126*t+.7152*n+.0722*r,a=.0193*t+.1192*n+.9505*r;return[100*i,100*o,100*a]},s.rgb.lab=function(e){var t,n,r,i=s.rgb.xyz(e),o=i[0],a=i[1],u=i[2];return o/=95.047,a/=100,u/=108.883,o=o>.008856?Math.pow(o,1/3):7.787*o+16/116,a=a>.008856?Math.pow(a,1/3):7.787*a+16/116,u=u>.008856?Math.pow(u,1/3):7.787*u+16/116,t=116*a-16,n=500*(o-a),r=200*(a-u),[t,n,r]},s.hsl.rgb=function(e){var t,n,r,i,o,a=e[0]/360,s=e[1]/100,u=e[2]/100;if(0===s)return o=255*u,[o,o,o];n=u<.5?u*(1+s):u+s-u*s,t=2*u-n,i=[0,0,0];for(var l=0;l<3;l++)r=a+1/3*-(l-1),r<0&&r++,r>1&&r--,o=6*r<1?t+6*(n-t)*r:2*r<1?n:3*r<2?t+(n-t)*(2/3-r)*6:t,i[l]=255*o;return i},s.hsl.hsv=function(e){var t,n,r=e[0],i=e[1]/100,o=e[2]/100,a=i,s=Math.max(o,.01);return o*=2,i*=o<=1?o:2-o,a*=s<=1?s:2-s,n=(o+i)/2,t=0===o?2*a/(s+a):2*i/(o+i),[r,100*t,100*n]},s.hsv.rgb=function(e){var t=e[0]/60,n=e[1]/100,r=e[2]/100,i=Math.floor(t)%6,o=t-Math.floor(t),a=255*r*(1-n),s=255*r*(1-n*o),u=255*r*(1-n*(1-o));switch(r*=255,i){case 0:return[r,u,a];case 1:return[s,r,a];case 2:return[a,r,u];case 3:return[a,s,r];case 4:return[u,a,r];case 5:return[r,a,s]}},s.hsv.hsl=function(e){var t,n,r,i=e[0],o=e[1]/100,a=e[2]/100,s=Math.max(a,.01);return r=(2-o)*a,t=(2-o)*s,n=o*s,n/=t<=1?t:2-t,n=n||0,r/=2,[i,100*n,100*r]},s.hwb.rgb=function(e){var t,n,r,i,o=e[0]/360,a=e[1]/100,s=e[2]/100,u=a+s;u>1&&(a/=u,s/=u),t=Math.floor(6*o),n=1-s,r=6*o-t,0!==(1&t)&&(r=1-r),i=a+r*(n-a);var l,c,f;switch(t){default:case 6:case 0:l=n,c=i,f=a;break;case 1:l=i,c=n,f=a;break;case 2:l=a,c=n,f=i;break;case 3:l=a,c=i,f=n;break;case 4:l=i,c=a,f=n;break;case 5:l=n,c=a,f=i}return[255*l,255*c,255*f]},s.cmyk.rgb=function(e){var t,n,r,i=e[0]/100,o=e[1]/100,a=e[2]/100,s=e[3]/100;return t=1-Math.min(1,i*(1-s)+s),n=1-Math.min(1,o*(1-s)+s),r=1-Math.min(1,a*(1-s)+s),[255*t,255*n,255*r]},s.xyz.rgb=function(e){var t,n,r,i=e[0]/100,o=e[1]/100,a=e[2]/100;return t=3.2406*i+o*-1.5372+a*-.4986,n=i*-.9689+1.8758*o+.0415*a,r=.0557*i+o*-.204+1.057*a,t=t>.0031308?1.055*Math.pow(t,1/2.4)-.055:12.92*t,n=n>.0031308?1.055*Math.pow(n,1/2.4)-.055:12.92*n,r=r>.0031308?1.055*Math.pow(r,1/2.4)-.055:12.92*r,t=Math.min(Math.max(0,t),1),n=Math.min(Math.max(0,n),1),r=Math.min(Math.max(0,r),1),[255*t,255*n,255*r]},s.xyz.lab=function(e){var t,n,r,i=e[0],o=e[1],a=e[2];return i/=95.047,o/=100,a/=108.883,i=i>.008856?Math.pow(i,1/3):7.787*i+16/116,o=o>.008856?Math.pow(o,1/3):7.787*o+16/116,a=a>.008856?Math.pow(a,1/3):7.787*a+16/116,t=116*o-16,n=500*(i-o),r=200*(o-a),[t,n,r]},s.lab.xyz=function(e){var t,n,r,i=e[0],o=e[1],a=e[2];n=(i+16)/116,t=o/500+n,r=n-a/200;var s=Math.pow(n,3),u=Math.pow(t,3),l=Math.pow(r,3);return n=s>.008856?s:(n-16/116)/7.787,t=u>.008856?u:(t-16/116)/7.787,r=l>.008856?l:(r-16/116)/7.787,t*=95.047,n*=100,r*=108.883,[t,n,r]},s.lab.lch=function(e){var t,n,r,i=e[0],o=e[1],a=e[2];return t=Math.atan2(a,o),n=360*t/2/Math.PI,n<0&&(n+=360),r=Math.sqrt(o*o+a*a),[i,r,n]},s.lch.lab=function(e){var t,n,r,i=e[0],o=e[1],a=e[2];return r=a/360*2*Math.PI,t=o*Math.cos(r),n=o*Math.sin(r),[i,t,n]},s.rgb.ansi16=function(e){var t=e[0],n=e[1],r=e[2],i=1 in arguments?arguments[1]:s.rgb.hsv(e)[2];if(i=Math.round(i/50),0===i)return 30;var o=30+(Math.round(r/255)<<2|Math.round(n/255)<<1|Math.round(t/255));return 2===i&&(o+=60),o},s.hsv.ansi16=function(e){return s.rgb.ansi16(s.hsv.rgb(e),e[2])},s.rgb.ansi256=function(e){var t=e[0],n=e[1],r=e[2];if(t===n&&n===r)return t<8?16:t>248?231:Math.round((t-8)/247*24)+232;var i=16+36*Math.round(t/255*5)+6*Math.round(n/255*5)+Math.round(r/255*5);return i},s.ansi16.rgb=function(e){var t=e%10;if(0===t||7===t)return e>50&&(t+=3.5),t=t/10.5*255,[t,t,t];var n=.5*(~~(e>50)+1),r=(1&t)*n*255,i=(t>>1&1)*n*255,o=(t>>2&1)*n*255;return[r,i,o]},s.ansi256.rgb=function(e){if(e>=232){var t=10*(e-232)+8;return[t,t,t]}e-=16;var n,r=Math.floor(e/36)/5*255,i=Math.floor((n=e%36)/6)/5*255,o=n%6/5*255;return[r,i,o]},s.rgb.hex=function(e){var t=((255&Math.round(e[0]))<<16)+((255&Math.round(e[1]))<<8)+(255&Math.round(e[2])),n=t.toString(16).toUpperCase();return"000000".substring(n.length)+n},s.hex.rgb=function(e){var t=e.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!t)return[0,0,0];var n=t[0];3===t[0].length&&(n=n.split("").map(function(e){return e+e}).join(""));var r=parseInt(n,16),i=r>>16&255,o=r>>8&255,a=255&r;return[i,o,a]},s.rgb.hcg=function(e){var t,n,r=e[0]/255,i=e[1]/255,o=e[2]/255,a=Math.max(Math.max(r,i),o),s=Math.min(Math.min(r,i),o),u=a-s;return t=u<1?s/(1-u):0,n=u<=0?0:a===r?(i-o)/u%6:a===i?2+(o-r)/u:4+(r-i)/u+4,n/=6,n%=1,[360*n,100*u,100*t]},s.hsl.hcg=function(e){var t=e[1]/100,n=e[2]/100,r=1,i=0;return r=n<.5?2*t*n:2*t*(1-n),r<1&&(i=(n-.5*r)/(1-r)),[e[0],100*r,100*i]},s.hsv.hcg=function(e){var t=e[1]/100,n=e[2]/100,r=t*n,i=0;return r<1&&(i=(n-r)/(1-r)),[e[0],100*r,100*i]},s.hcg.rgb=function(e){var t=e[0]/360,n=e[1]/100,r=e[2]/100;if(0===n)return[255*r,255*r,255*r];var i=[0,0,0],o=t%1*6,a=o%1,s=1-a,u=0;switch(Math.floor(o)){case 0:i[0]=1,i[1]=a,i[2]=0;break;case 1:i[0]=s,i[1]=1,i[2]=0;break;case 2:i[0]=0,i[1]=1,i[2]=a;break;case 3:i[0]=0,i[1]=s,i[2]=1;break;case 4:i[0]=a,i[1]=0,i[2]=1;break;default:i[0]=1,i[1]=0,i[2]=s}return u=(1-n)*r,[255*(n*i[0]+u),255*(n*i[1]+u),255*(n*i[2]+u)]},s.hcg.hsv=function(e){var t=e[1]/100,n=e[2]/100,r=t+n*(1-t),i=0;return r>0&&(i=t/r),[e[0],100*i,100*r]},s.hcg.hsl=function(e){var t=e[1]/100,n=e[2]/100,r=n*(1-t)+.5*t,i=0;return r>0&&r<.5?i=t/(2*r):r>=.5&&r<1&&(i=t/(2*(1-r))),[e[0],100*i,100*r]},s.hcg.hwb=function(e){var t=e[1]/100,n=e[2]/100,r=t+n*(1-t);return[e[0],100*(r-t),100*(1-r)]},s.hwb.hcg=function(e){var t=e[1]/100,n=e[2]/100,r=1-n,i=r-t,o=0;return i<1&&(o=(r-i)/(1-i)),[e[0],100*i,100*o]},s.apple.rgb=function(e){return[e[0]/65535*255,e[1]/65535*255,e[2]/65535*255]},s.rgb.apple=function(e){return[e[0]/255*65535,e[1]/255*65535,e[2]/255*65535]},s.gray.rgb=function(e){return[e[0]/100*255,e[0]/100*255,e[0]/100*255]},s.gray.hsl=s.gray.hsv=function(e){return[0,0,e[0]]},s.gray.hwb=function(e){return[0,100,e[0]]},s.gray.cmyk=function(e){return[0,0,0,e[0]]},s.gray.lab=function(e){return[e[0],0,0]},s.gray.hex=function(e){var t=255&Math.round(e[0]/100*255),n=(t<<16)+(t<<8)+t,r=n.toString(16).toUpperCase();return"000000".substring(r.length)+r},s.rgb.gray=function(e){var t=(e[0]+e[1]+e[2])/3;return[t/255*100]}},function(e,t,n){"use strict";var r=n(30).f,i=n(118),o=n(168),a=n(46),s=n(160),u=n(115),l=n(116),c=n(165),f=n(265),h=n(271),p=n(29),d=n(166).fastKey,m=p?"_s":"size",g=function(e,t){var n,r=d(t);if("F"!==r)return e._i[r];for(n=e._f;n;n=n.n)if(n.k==t)return n};e.exports={getConstructor:function(e,t,n,c){var f=e(function(e,r){s(e,f,t,"_i"),e._i=i(null),e._f=void 0,e._l=void 0,e[m]=0,void 0!=r&&l(r,n,e[c],e)});return o(f.prototype,{clear:function(){for(var e=this,t=e._i,n=e._f;n;n=n.n)n.r=!0,n.p&&(n.p=n.p.n=void 0),delete t[n.i];e._f=e._l=void 0,e[m]=0},delete:function(e){var t=this,n=g(t,e);if(n){var r=n.n,i=n.p;delete t._i[n.i],n.r=!0,i&&(i.n=r),r&&(r.p=i),t._f==n&&(t._f=r),t._l==n&&(t._l=i),t[m]--}return!!n},forEach:function(e){s(this,f,"forEach");for(var t,n=a(e,arguments.length>1?arguments[1]:void 0,3);t=t?t.n:this._f;)for(n(t.v,t.k,this);t&&t.r;)t=t.p},has:function(e){return!!g(this,e)}}),p&&r(f.prototype,"size",{get:function(){return u(this[m])}}),f},def:function(e,t,n){var r,i,o=g(e,t);return o?o.v=n:(e._l=o={i:i=d(t,!0),k:t,v:n,p:r=e._l,n:void 0,r:!1},e._f||(e._f=o),r&&(r.n=o),e[m]++,"F"!==i&&(e._i[i]=o)),e},getEntry:g,setStrong:function(e,t,n){c(e,t,function(e,t){this._t=e,this._k=t,this._l=void 0},function(){for(var e=this,t=e._k,n=e._l;n&&n.r;)n=n.p;return e._t&&(e._l=n=n?n.n:e._t._f)?"keys"==t?f(0,n.k):"values"==t?f(0,n.v):f(0,[n.k,n.v]):(e._t=void 0,f(1))},n?"entries":"values",!n,!0),h(t)}}},function(e,t,n){var r=n(161),i=n(479);e.exports=function(e){return function(){if(r(this)!=e)throw TypeError(e+"#toJSON isn't generic");return i(this)}}},function(e,t,n){"use strict";var r=n(25),i=n(21),o=n(166),a=n(52),s=n(47),u=n(168),l=n(116),c=n(160),f=n(48),h=n(92),p=n(30).f,d=n(481)(0),m=n(29);e.exports=function(e,t,n,g,v,y){var _=r[e],b=_,w=v?"set":"add",x=b&&b.prototype,E={};return m&&"function"==typeof b&&(y||x.forEach&&!a(function(){(new b).entries().next()}))?(b=t(function(t,n){c(t,b,e,"_c"),t._c=new _,void 0!=n&&l(n,v,t[w],t)}),d("add,clear,delete,forEach,get,has,set,keys,values,entries,toJSON".split(","),function(e){var t="add"==e||"set"==e;e in x&&(!y||"clear"!=e)&&s(b.prototype,e,function(n,r){if(c(this,b,e),!t&&y&&!f(n))return"get"==e&&void 0;var i=this._c[e](0===n?0:n,r);return t?this:i})}),"size"in x&&p(b.prototype,"size",{get:function(){return this._c.size}})):(b=g.getConstructor(t,e,v,w),u(b.prototype,n),o.NEED=!0),h(b,e),E[e]=b,i(i.G+i.W+i.F,E),y||g.setStrong(b,e,v),b}},function(e,t,n){e.exports=n(25).document&&document.documentElement},function(e,t,n){e.exports=!n(29)&&!n(52)(function(){return 7!=Object.defineProperty(n(162)("div"),"a",{get:function(){return 7}}).a})},function(e,t,n){var r=n(89),i=n(22)("iterator"),o=Array.prototype;e.exports=function(e){return void 0!==e&&(r.Array===e||o[i]===e)}},function(e,t,n){var r=n(88);e.exports=Array.isArray||function(e){return"Array"==r(e)}},function(e,t,n){var r=n(39);e.exports=function(e,t,n,i){try{return i?t(r(n)[0],n[1]):t(n)}catch(t){var o=e.return;throw void 0!==o&&r(o.call(e)),t}}},function(e,t,n){var r=n(22)("iterator"),i=!1;try{var o=[7][r]();o.return=function(){i=!0},Array.from(o,function(){throw 2})}catch(e){}e.exports=function(e,t){if(!t&&!i)return!1;var n=!1;try{var o=[7],a=o[r]();a.next=function(){return{done:n=!0}},o[r]=function(){return a},e(o)}catch(e){}return n}},function(e,t){e.exports=function(e,t){return{value:t,done:!!e}}},function(e,t,n){var r=n(30),i=n(39),o=n(54);e.exports=n(29)?Object.defineProperties:function(e,t){i(e);for(var n,a=o(t),s=a.length,u=0;s>u;)r.f(e,n=a[u++],t[n]);return e}},function(e,t,n){var r=n(90),i=n(91),o=n(49),a=n(172),s=n(53),u=n(260),l=Object.getOwnPropertyDescriptor;t.f=n(29)?l:function(e,t){if(e=o(e),t=a(t,!0),u)try{return l(e,t)}catch(e){}if(s(e,t))return i(!r.f.call(e,t),e[t])}},function(e,t,n){var r=n(269),i=n(163).concat("length","prototype");t.f=Object.getOwnPropertyNames||function(e){return r(e,i)}},function(e,t,n){var r=n(53),i=n(49),o=n(480)(!1),a=n(169)("IE_PROTO");e.exports=function(e,t){var n,s=i(e),u=0,l=[];for(n in s)n!=a&&r(s,n)&&l.push(n);for(;t.length>u;)r(s,n=t[u++])&&(~o(l,n)||l.push(n));return l}},function(e,t,n){e.exports=n(47)},function(e,t,n){"use strict";var r=n(25),i=n(15),o=n(30),a=n(29),s=n(22)("species");e.exports=function(e){var t="function"==typeof i[e]?i[e]:r[e];a&&t&&!t[s]&&o.f(t,s,{configurable:!0,get:function(){return this}})}},function(e,t,n){var r,i,o,a=n(46),s=n(486),u=n(259),l=n(162),c=n(25),f=c.process,h=c.setImmediate,p=c.clearImmediate,d=c.MessageChannel,m=0,g={},v="onreadystatechange",y=function(){var e=+this;if(g.hasOwnProperty(e)){var t=g[e];delete g[e],t()}},_=function(e){y.call(e.data)};h&&p||(h=function(e){for(var t=[],n=1;arguments.length>n;)t.push(arguments[n++]);return g[++m]=function(){s("function"==typeof e?e:Function(e),t)},r(m),m},p=function(e){delete g[e]},"process"==n(88)(f)?r=function(e){f.nextTick(a(y,e,1))}:d?(i=new d,o=i.port2,i.port1.onmessage=_,r=a(o.postMessage,o,1)):c.addEventListener&&"function"==typeof postMessage&&!c.importScripts?(r=function(e){c.postMessage(e+"","*")},c.addEventListener("message",_,!1)):r=v in l("script")?function(e){u.appendChild(l("script"))[v]=function(){u.removeChild(this),y.call(e)}}:function(e){setTimeout(a(y,e,1),0)}),e.exports={set:h,clear:p}},function(e,t,n){(function(t){function r(e){return function(){var n=[],r={update:function(e,r){return t.isBuffer(e)||(e=new t(e,r)),n.push(e),this},digest:function(r){var i=t.concat(n),o=e(i);return n=null,r?o.toString(r):o}};return r}}var i=n(832),o=r(n(520)),a=r(n(829));e.exports=function(e){return"md5"===e?new o:"rmd160"===e?new a:i(e)}}).call(t,n(8).Buffer)},function(e,t,n){"use strict";function r(e){var t=void 0;t="string"==typeof e?[e]:e.raw;for(var n="",r=arguments.length,i=Array(r>1?r-1:0),o=1;o "+this.formatter.parameter(n)}}),o.prototype.first=o.prototype.select,t.default=o,e.exports=t.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(){g.default.apply(this,arguments),this.modifiers=["defaultTo","checkIn","nullable","comment"]}t.__esModule=!0;var o=n(18),a=r(o),s=n(735),u=r(s),l=n(4),c=r(l),f=n(1),h=r(f),p=n(56),d=r(p),m=n(68),g=r(m),v=n(180),y=r(v);(0,h.default)(i,g.default),(0,c.default)(i.prototype,{_createAutoIncrementTriggerAndSequence:function(){this.pushAdditional(function(){var e=this.tableCompiler.tableNameRaw,t=y.default.createAutoIncrementTrigger(e);this.pushQuery(t)})},increments:function(){return this._createAutoIncrementTriggerAndSequence(),"integer not null primary key"},bigincrements:function(){return this._createAutoIncrementTriggerAndSequence(),"number(20, 0) not null primary key"},floating:function(e){var t=this._num(e,0);return"float"+(t?"("+t+")":"")},double:function(e,t){return"number("+this._num(e,8)+", "+this._num(t,2)+")"},integer:function(e){return e?"number("+this._num(e,11)+")":"integer"},tinyint:"smallint",smallint:"smallint",mediumint:"integer",biginteger:"number(20, 0)",text:"clob",enu:function(e){e=(0,u.default)(e);var t=(e||[]).reduce(function(e,t){return Math.max(e,String(t).length)},1);return this.columnBuilder._modifiers.checkIn=[e],"varchar2("+t+")"},time:"timestamp with time zone",datetime:function(e){return e?"timestamp":"timestamp with time zone"},timestamp:function(e){return e?"timestamp":"timestamp with time zone"},bit:"clob",json:"clob",bool:function(){return this.columnBuilder._modifiers.checkIn=[[0,1]],"number(1, 0)"},varchar:function(e){return"varchar2("+this._num(e,255)+")"},comment:function(e){var t=this.args[0]||this.defaults("columnName");this.pushAdditional(function(){this.pushQuery("comment on column "+this.tableCompiler.tableName()+"."+this.formatter.wrap(t)+" is '"+(e||"")+"'")},e)},checkIn:function(e){return void 0===e?"":(e=e instanceof d.default?e.toQuery():Array.isArray(e)?(0,a.default)(e,function(e){return"'"+e+"'"}).join(", "):"'"+e+"'","check ("+this.formatter.wrap(this.args[0])+" in ("+e+"))")}}),t.default=i,e.exports=t.default},function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}function o(e){_.default.call(this,e),(0,p.default)(e.useNullAsDefault)&&w.warn("sqlite does not support inserting default values. Set the `useNullAsDefault` flag to hide this warning. (see docs http://knexjs.org/#Builder-insert).")}t.__esModule=!0;var a=n(331),s=i(a),u=n(4),l=i(u),c=n(18),f=i(c),h=n(33),p=i(h),d=n(13),m=i(d),g=n(1),v=i(g),y=n(66),_=i(y),b=n(6),w=r(b),x=n(572),E=i(x),k=n(574),C=i(k),S=n(573),T=i(S),N=n(576),A=i(N),R=n(575),O=i(R);(0,v.default)(o,_.default),(0,l.default)(o.prototype,{dialect:"sqlite3",driverName:"sqlite3",_driver:function(){return n(850)},schemaCompiler:function(){return new(Function.prototype.bind.apply(C.default,[null].concat([this],Array.prototype.slice.call(arguments))))},queryCompiler:function(){return new(Function.prototype.bind.apply(E.default,[null].concat([this],Array.prototype.slice.call(arguments))))},columnCompiler:function(){return new(Function.prototype.bind.apply(T.default,[null].concat([this],Array.prototype.slice.call(arguments))))},tableCompiler:function(){return new(Function.prototype.bind.apply(A.default,[null].concat([this],Array.prototype.slice.call(arguments))))},ddl:function(e,t,n){return new O.default(this,e,t,n)},wrapIdentifierImpl:function(e){return"*"!==e?"`"+e.replace(/`/g,"``")+"`":"*"},acquireRawConnection:function(){var e=this;return new m.default(function(t,n){var r=new e.driver.Database(e.connectionSettings.filename,function(e){return e?n(e):void t(r)})})},destroyRawConnection:function(e){return m.default.fromCallback(e.close.bind(e))},_query:function(e,t){var n=t.method,r=void 0;switch(n){case"insert":case"update":case"counter":case"del":r="run";break;default:r="all"}return new m.default(function(n,i){return e&&e[r]?void e[r](t.sql,t.bindings,function(e,r){return e?i(e):(t.response=r,t.context=this,n(t))}):i(new Error("Error calling "+r+" on connection."))})},_stream:function(e,t,n){var r=this;return new m.default(function(i,o){return n.on("error",o),n.on("end",i),r._query(e,t).then(function(e){return e.response}).map(function(e){n.write(e)}).catch(function(e){n.emit("error",e)}).then(function(){n.end()})})},processResponse:function(e,t){var n=e.context,r=e.response;if(e.output)return e.output.call(t,r);switch(e.method){case"select":case"pluck":case"first":return r=w.skim(r),"pluck"===e.method&&(r=(0,f.default)(r,e.pluck)),"first"===e.method?r[0]:r;case"insert":return[n.lastID];case"del":case"update":case"counter":return n.changes;default:return r}},poolDefaults:function(){return(0,s.default)({min:1,max:1},_.default.prototype.poolDefaults.call(this))}}),t.default=o,e.exports=t.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e){y.default.call(this,e),this.name=e.name||"knex_database",this.version=e.version||"1.0",this.displayName=e.displayName||this.name,this.estimatedSize=e.estimatedSize||5242880}t.__esModule=!0;var o=n(206),a=r(o),s=n(143),u=r(s),l=n(18),c=r(l),f=n(4),h=r(f),p=n(1),d=r(p),m=n(578),g=r(m),v=n(281),y=r(v),_=n(13),b=r(_);(0,d.default)(i,y.default),(0,h.default)(i.prototype,{transaction:function(){return new(Function.prototype.bind.apply(g.default,[null].concat([this],Array.prototype.slice.call(arguments))))},dialect:"websql",acquireConnection:function(){var e=this;return new b.default(function(t,n){try{var r=openDatabase(e.name,e.version,e.displayName,e.estimatedSize);r.transaction(function(e){e.__knexUid=(0,u.default)("__knexUid"),t(e)})}catch(e){n(e)}})},releaseConnection:function(){return b.default.resolve()},_query:function(e,t){return new b.default(function(n,r){return e?void e.executeSql(t.sql,t.bindings,function(e,r){return t.response=r,n(t)},function(e,t){r(t)}):r(new Error("No connection provided."))})},_stream:function(e,t,n){var r=this;return new b.default(function(i,o){return n.on("error",o),n.on("end",i),r._query(e,t).then(function(e){return r.processResponse(e)}).map(function(e){n.write(e)}).catch(function(e){n.emit("error",e)}).then(function(){n.end()})})},processResponse:function(e,t){var n=e.response;if(e.output)return e.output.call(t,n);switch(e.method){case"pluck":case"first":case"select":for(var r=[],i=0,o=n.rows.length;i1&&void 0!==arguments[1]?arguments[1]:{},n=t.cancel;return(0,w.default)(e)&&e>0&&(this._timeout=e,n&&(this.client.assertCanCancelQuery(),this._cancelOnTimeout=!0)),this},with:function(e,t){if("string"!=typeof e)throw new Error("with() first argument must be a string");if("function"==typeof t||t instanceof o||t instanceof D.default)return this.withWrapped(e,t);throw new Error("with() second argument must be a function / QueryBuilder or a raw")},withWrapped:function(e,t){return this._statements.push({grouping:"with",type:"withWrapped",alias:e,value:t}),this},columns:function(e){return e?(this._statements.push({grouping:"columns",value:z.normalizeArr.apply(null,arguments)}),this):this},as:function(e){return this._single.as=e,this},withSchema:function(e){return this._single.schema=e,this},table:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this._single.table=e,this._single.only=t.only===!0,this},distinct:function(){return this._statements.push({grouping:"columns",value:z.normalizeArr.apply(null,arguments),distinct:!0}),this},join:function e(t,n){var e=void 0,r=this._single.schema,i=this._joinType();return"function"==typeof n?(e=new Q.default(t,i,r),n.call(e,e)):"raw"===i?e=new Q.default(this.client.raw(t,n),"raw"):(e=new Q.default(t,i,r),arguments.length>1&&e.on.apply(e,(0,f.default)(arguments).slice(1))),this._statements.push(e),this},innerJoin:function(){return this._joinType("inner").join.apply(this,arguments)},leftJoin:function(){return this._joinType("left").join.apply(this,arguments)},leftOuterJoin:function(){return this._joinType("left outer").join.apply(this,arguments)},rightJoin:function(){return this._joinType("right").join.apply(this,arguments)},rightOuterJoin:function(){return this._joinType("right outer").join.apply(this,arguments)},outerJoin:function(){return this._joinType("outer").join.apply(this,arguments)},fullOuterJoin:function(){return this._joinType("full outer").join.apply(this,arguments)},crossJoin:function(){return this._joinType("cross").join.apply(this,arguments)},joinRaw:function(){return this._joinType("raw").join.apply(this,arguments)},where:function(e,t,n){if(e===!1||e===!0)return this.where(1,"=",e?1:0);if("function"==typeof e)return this.whereWrapped(e);if(e instanceof D.default&&1===arguments.length)return this.whereRaw(e);if((0,_.default)(e)&&!(e instanceof D.default))return this._objectWhere(e);if(2===arguments.length&&(n=t,t="=",null===n))return this.whereNull(e);var r=(""+t).toLowerCase().trim();if(3===arguments.length){if("in"===r||"not in"===r)return this._not("not in"===r).whereIn(arguments[0],arguments[2]);if("between"===r||"not between"===r)return this._not("not between"===r).whereBetween(arguments[0],arguments[2])}return null!==n||"is"!==r&&"is not"!==r?(this._statements.push({grouping:"where",type:"whereBasic",column:e,operator:t,value:n,not:this._not(),bool:this._bool()}),this):this._not("is not"===r).whereNull(e)},orWhere:function(){this._bool("or");var e=arguments[0];return!(0,_.default)(e)||(0,E.default)(e)||e instanceof D.default?this.where.apply(this,arguments):this.whereWrapped(function(){for(var t in e)this.andWhere(t,e[t])})},whereNot:function(){return this._not(!0).where.apply(this,arguments)},orWhereNot:function(){return this._bool("or").whereNot.apply(this,arguments)},_objectWhere:function(e){var t=this._bool(),n=this._not()?"Not":"";for(var r in e)this[t+"Where"+n](r,e[r]);return this},whereRaw:function(e,t){var n=e instanceof D.default?e:this.client.raw(e,t);return this._statements.push({grouping:"where",type:"whereRaw",value:n,not:this._not(),bool:this._bool()}),this},orWhereRaw:function(e,t){return this._bool("or").whereRaw(e,t)},whereWrapped:function(e){return this._statements.push({grouping:"where",type:"whereWrapped",value:e,not:this._not(),bool:this._bool()}),this},whereExists:function(e){return this._statements.push({grouping:"where",type:"whereExists",value:e,not:this._not(),bool:this._bool()}),this},orWhereExists:function(e){return this._bool("or").whereExists(e)},whereNotExists:function(e){return this._not(!0).whereExists(e)},orWhereNotExists:function(e){return this._bool("or").whereNotExists(e)},whereIn:function(e,t){return Array.isArray(t)&&(0,C.default)(t)?this.where(this._not()):(this._statements.push({grouping:"where",type:"whereIn",column:e,value:t,not:this._not(),bool:this._bool()}),this)},orWhereIn:function(e,t){return this._bool("or").whereIn(e,t)},whereNotIn:function(e,t){return this._not(!0).whereIn(e,t)},orWhereNotIn:function(e,t){return this._bool("or")._not(!0).whereIn(e,t)},whereNull:function(e){return this._statements.push({grouping:"where",type:"whereNull",column:e,not:this._not(),bool:this._bool()}),this},orWhereNull:function(e){return this._bool("or").whereNull(e)},whereNotNull:function(e){return this._not(!0).whereNull(e)},orWhereNotNull:function(e){return this._bool("or").whereNotNull(e)},whereBetween:function(e,t){return(0,P.default)(Array.isArray(t),"The second argument to whereBetween must be an array."),(0,P.default)(2===t.length,"You must specify 2 values for the whereBetween clause"),this._statements.push({grouping:"where",type:"whereBetween",column:e,value:t,not:this._not(),bool:this._bool()}),this},whereNotBetween:function(e,t){return this._not(!0).whereBetween(e,t)},orWhereBetween:function(e,t){return this._bool("or").whereBetween(e,t)},orWhereNotBetween:function(e,t){return this._bool("or").whereNotBetween(e,t)},groupBy:function(e){return e instanceof D.default?this.groupByRaw.apply(this,arguments):(this._statements.push({grouping:"group",type:"groupByBasic",value:z.normalizeArr.apply(null,arguments)}),this)},groupByRaw:function(e,t){var n=e instanceof D.default?e:this.client.raw(e,t);return this._statements.push({grouping:"group",type:"groupByRaw",value:n}),this},orderBy:function(e,t){return this._statements.push({grouping:"order",type:"orderByBasic",value:e,direction:t}),this},orderByRaw:function(e,t){var n=e instanceof D.default?e:this.client.raw(e,t);return this._statements.push({grouping:"order",type:"orderByRaw",value:n}),this},union:function(e,t){if(1===arguments.length||2===arguments.length&&(0,T.default)(t)){Array.isArray(e)||(e=[e]);for(var n=0,r=e.length;n2&&(n=arguments[2]);else{var i=(0,s.default)(e);this._single.update&&z.warn("Update called multiple times with objects.");for(var o=-1;++o0?("string"==typeof t||a.objectMode||Object.getPrototypeOf(t)===B.prototype||(t=i(t)),r?a.endEmitted?e.emit("error",new Error("stream.unshift() after end event")):c(e,a,t,!0):a.ended?e.emit("error",new Error("stream.push() after EOF")):(a.reading=!1,a.decoder&&!n?(t=a.decoder.write(t),a.objectMode||0!==t.length?c(e,a,t,!1):y(e,a)):c(e,a,t,!1))):r||(a.reading=!1)}return h(a)}function c(e,t,n,r){t.flowing&&0===t.length&&!t.sync?(e.emit("data",n),e.read(0)):(t.length+=t.objectMode?1:n.length,r?t.buffer.unshift(n):t.buffer.push(n),t.needReadable&&g(e)),y(e,t)}function f(e,t){var n;return o(t)||"string"==typeof t||void 0===t||e.objectMode||(n=new TypeError("Invalid non-string/buffer chunk")),n}function h(e){return!e.ended&&(e.needReadable||e.length=V?e=V:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}function d(e,t){return e<=0||0===t.length&&t.ended?0:t.objectMode?1:e!==e?t.flowing&&t.length?t.buffer.head.data.length:t.length:(e>t.highWaterMark&&(t.highWaterMark=p(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0))}function m(e,t){if(!t.ended){if(t.decoder){var n=t.decoder.end();n&&n.length&&(t.buffer.push(n),t.length+=t.objectMode?1:n.length)}t.ended=!0,g(e)}}function g(e){var t=e._readableState;t.needReadable=!1,t.emittedReadable||(U("emitReadable",t.flowing),t.emittedReadable=!0,t.sync?M(v,e):v(e))}function v(e){U("emit readable"),e.emit("readable"),k(e)}function y(e,t){t.readingMore||(t.readingMore=!0,M(_,e,t))}function _(e,t){for(var n=t.length;!t.reading&&!t.flowing&&!t.ended&&t.length=t.length?(n=t.decoder?t.buffer.join(""):1===t.buffer.length?t.buffer.head.data:t.buffer.concat(t.length),t.buffer.clear()):n=S(e,t.buffer,t.decoder),n}function S(e,t,n){var r;return eo.length?o.length:e;if(i+=a===o.length?o:o.slice(0,e),e-=a,0===e){a===o.length?(++r,n.next?t.head=n.next:t.head=t.tail=null):(t.head=n,n.data=o.slice(a));break}++r}return t.length-=r, +i}function N(e,t){var n=B.allocUnsafe(e),r=t.head,i=1;for(r.data.copy(n),e-=r.data.length;r=r.next;){var o=r.data,a=e>o.length?o.length:e;if(o.copy(n,n.length-e,0,a),e-=a,0===e){a===o.length?(++i,r.next?t.head=r.next:t.head=t.tail=null):(t.head=r,r.data=o.slice(a));break}++i}return t.length-=i,n}function A(e){var t=e._readableState;if(t.length>0)throw new Error('"endReadable()" called on non-empty stream');t.endEmitted||(t.ended=!0,M(R,t,e))}function R(e,t){e.endEmitted||0!==e.length||(e.endEmitted=!0,t.readable=!1,t.emit("end"))}function O(e,t){for(var n=0,r=e.length;n=t.highWaterMark||t.ended))return U("read: emitReadable",t.length,t.ended),0===t.length&&t.ended?A(this):g(this),null;if(e=d(e,t),0===e&&t.ended)return 0===t.length&&A(this),null;var r=t.needReadable;U("need readable",r),(0===t.length||t.length-e0?C(e,t):null,null===i?(t.needReadable=!0,e=0):t.length-=e,0===t.length&&(t.ended||(t.needReadable=!0),n!==e&&t.ended&&A(this)),null!==i&&this.emit("data",i),i},u.prototype._read=function(e){this.emit("error",new Error("_read() is not implemented"))},u.prototype.pipe=function(e,t){function n(e,t){U("onunpipe"),e===h&&t&&t.hasUnpiped===!1&&(t.hasUnpiped=!0,o())}function i(){U("onend"),e.end()}function o(){U("cleanup"),e.removeListener("close",l),e.removeListener("finish",c),e.removeListener("drain",g),e.removeListener("error",u),e.removeListener("unpipe",n),h.removeListener("end",i),h.removeListener("end",f),h.removeListener("data",s),v=!0,!p.awaitDrain||e._writableState&&!e._writableState.needDrain||g()}function s(t){U("ondata"),y=!1;var n=e.write(t);!1!==n||y||((1===p.pipesCount&&p.pipes===e||p.pipesCount>1&&O(p.pipes,e)!==-1)&&!v&&(U("false write response, pause",h._readableState.awaitDrain),h._readableState.awaitDrain++,y=!0),h.pause())}function u(t){U("onerror",t),f(),e.removeListener("error",u),0===P(e,"error")&&e.emit("error",t)}function l(){e.removeListener("finish",c),f()}function c(){U("onfinish"),e.removeListener("close",l),f()}function f(){U("unpipe"),h.unpipe(e)}var h=this,p=this._readableState;switch(p.pipesCount){case 0:p.pipes=e;break;case 1:p.pipes=[p.pipes,e];break;default:p.pipes.push(e)}p.pipesCount+=1,U("pipe count=%d opts=%j",p.pipesCount,t);var d=(!t||t.end!==!1)&&e!==r.stdout&&e!==r.stderr,m=d?i:f;p.endEmitted?M(m):h.once("end",m),e.on("unpipe",n);var g=b(h);e.on("drain",g);var v=!1,y=!1;return h.on("data",s),a(e,"error",u),e.once("close",l),e.once("finish",c),e.emit("pipe",h),p.flowing||(U("pipe resume"),h.resume()),e},u.prototype.unpipe=function(e){var t=this._readableState,n={hasUnpiped:!1};if(0===t.pipesCount)return this;if(1===t.pipesCount)return e&&e!==t.pipes?this:(e||(e=t.pipes),t.pipes=null,t.pipesCount=0,t.flowing=!1,e&&e.emit("unpipe",this,n),this);if(!e){var r=t.pipes,i=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var o=0;o-1?r:N;c.WritableState=l;var O=n(35);O.inherits=n(1);var M={deprecate:n(371)},j=n(291),I=n(110).Buffer,P=i.Uint8Array||function(){},q=n(290);O.inherits(c,j),l.prototype.getBuffer=function(){for(var e=this.bufferedRequest,t=[];e;)t.push(e),e=e.next;return t},function(){try{Object.defineProperty(l.prototype,"buffer",{get:M.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch(e){}}();var B;"function"==typeof Symbol&&Symbol.hasInstance&&"function"==typeof Function.prototype[Symbol.hasInstance]?(B=Function.prototype[Symbol.hasInstance],Object.defineProperty(c,Symbol.hasInstance,{value:function(e){return!!B.call(this,e)||e&&e._writableState instanceof l}})):B=function(e){return e instanceof this},c.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe, not readable"))},c.prototype.write=function(e,t,n){var r=this._writableState,i=!1,o=s(e)&&!r.objectMode;return o&&!I.isBuffer(e)&&(e=a(e)),"function"==typeof t&&(n=t,t=null),o?t="buffer":t||(t=r.defaultEncoding),"function"!=typeof n&&(n=u),r.ended?f(this,n):(o||h(this,r,e,n))&&(r.pendingcb++,i=d(this,r,o,e,t,n)),i},c.prototype.cork=function(){var e=this._writableState;e.corked++},c.prototype.uncork=function(){var e=this._writableState;e.corked&&(e.corked--,e.writing||e.corked||e.finished||e.bufferProcessing||!e.bufferedRequest||w(this,e))},c.prototype.setDefaultEncoding=function(e){if("string"==typeof e&&(e=e.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((e+"").toLowerCase())>-1))throw new TypeError("Unknown encoding: "+e);return this._writableState.defaultEncoding=e,this},c.prototype._write=function(e,t,n){n(new Error("_write() is not implemented"))},c.prototype._writev=null,c.prototype.end=function(e,t,n){var r=this._writableState;"function"==typeof e?(n=e,e=null,t=null):"function"==typeof t&&(n=t,t=null),null!==e&&void 0!==e&&this.write(e,t),r.corked&&(r.corked=1,this.uncork()),r.ending||r.finished||S(this,r,n)},Object.defineProperty(c.prototype,"destroyed",{get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(e){this._writableState&&(this._writableState.destroyed=e)}}),c.prototype.destroy=q.destroy,c.prototype._undestroy=q.undestroy,c.prototype._destroy=function(e,t){this.end(),t(e)}}).call(t,n(17),n(234).setImmediate,function(){return this}())},function(e,t,n){"use strict";function r(e,t){var n=this,r=this._readableState&&this._readableState.destroyed,i=this._writableState&&this._writableState.destroyed;return r||i?void(t?t(e):!e||this._writableState&&this._writableState.errorEmitted||a(o,this,e)):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),void this._destroy(e||null,function(e){!t&&e?(a(o,n,e),n._writableState&&(n._writableState.errorEmitted=!0)):t&&t(e)}))}function i(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}function o(e,t){e.emit("error",t)}var a=n(60);e.exports={destroy:r,undestroy:i}},function(e,t,n){e.exports=n(26).EventEmitter},function(e,t,n){"use strict";function r(e){if(!e)return"utf8";for(var t;;)switch(e){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return e;default:if(t)return;e=(""+e).toLowerCase(),t=!0}}function i(e){var t=r(e);if("string"!=typeof t&&(y.isEncoding===_||!_(e)))throw new Error("Unknown encoding: "+e);return t||e}function o(e){this.encoding=i(e);var t;switch(this.encoding){case"utf16le":this.text=h,this.end=p,t=4;break;case"utf8":this.fillLast=l,t=4;break;case"base64":this.text=d,this.end=m,t=3;break;default:return this.write=g,void(this.end=v)}this.lastNeed=0,this.lastTotal=0,this.lastChar=y.allocUnsafe(t)}function a(e){return e<=127?0:e>>5===6?2:e>>4===14?3:e>>3===30?4:-1}function s(e,t,n){var r=t.length-1;if(r=0?(i>0&&(e.lastNeed=i-1),i):--r=0?(i>0&&(e.lastNeed=i-2),i):--r=0?(i>0&&(2===i?i=0:e.lastNeed=i-3),i):0))}function u(e,t,n){if(128!==(192&t[0]))return e.lastNeed=0,"�".repeat(n);if(e.lastNeed>1&&t.length>1){if(128!==(192&t[1]))return e.lastNeed=1,"�".repeat(n+1);if(e.lastNeed>2&&t.length>2&&128!==(192&t[2]))return e.lastNeed=2,"�".repeat(n+2)}}function l(e){var t=this.lastTotal-this.lastNeed,n=u(this,e,t);return void 0!==n?n:this.lastNeed<=e.length?(e.copy(this.lastChar,t,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(e.copy(this.lastChar,t,0,e.length),void(this.lastNeed-=e.length))}function c(e,t){var n=s(this,e,t);if(!this.lastNeed)return e.toString("utf8",t);this.lastTotal=n;var r=e.length-(n-this.lastNeed);return e.copy(this.lastChar,0,r),e.toString("utf8",t,r)}function f(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+"�".repeat(this.lastTotal-this.lastNeed):t}function h(e,t){if((e.length-t)%2===0){var n=e.toString("utf16le",t);if(n){var r=n.charCodeAt(n.length-1);if(r>=55296&&r<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1],n.slice(0,-1)}return n}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=e[e.length-1],e.toString("utf16le",t,e.length-1)}function p(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed){var n=this.lastTotal-this.lastNeed;return t+this.lastChar.toString("utf16le",0,n)}return t}function d(e,t){var n=(e.length-t)%3;return 0===n?e.toString("base64",t):(this.lastNeed=3-n,this.lastTotal=3,1===n?this.lastChar[0]=e[e.length-1]:(this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1]),e.toString("base64",t,e.length-n))}function m(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function g(e){return e.toString(this.encoding)}function v(e){return e&&e.length?this.write(e):""}var y=n(110).Buffer,_=y.isEncoding||function(e){switch(e=""+e,e&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};t.StringDecoder=o,o.prototype.write=function(e){if(0===e.length)return"";var t,n;if(this.lastNeed){if(t=this.fillLast(e),void 0===t)return"";n=this.lastNeed,this.lastNeed=0}else n=0;return n-1}var i=n(193);e.exports=r},function(e,t,n){function r(e,t){var n=a(e),r=!n&&o(e),c=!n&&!r&&s(e),h=!n&&!r&&!c&&l(e),p=n||r||c||h,d=p?i(e.length,String):[],m=d.length;for(var g in e)!t&&!f.call(e,g)||p&&("length"==g||c&&("offset"==g||"parent"==g)||h&&("buffer"==g||"byteLength"==g||"byteOffset"==g)||u(g,m))||d.push(g);return d}var i=n(625),o=n(139),a=n(9),s=n(102),u=n(98),l=n(103),c=Object.prototype,f=c.hasOwnProperty;e.exports=r},function(e,t){function n(e,t){for(var n=-1,r=null==e?0:e.length;++n1&&d.reverse(),T&&kh))return!1;var d=c.get(e);if(d&&c.get(t))return d==t;var m=-1,g=!0,v=n&u?new i:void 0;for(c.set(e,t),c.set(t,e);++m0){if(++t>=r)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}var r=800,i=16,o=Date.now;e.exports=n},function(e,t){function n(e){if(null!=e){try{return i.call(e)}catch(e){}try{return e+""}catch(e){}}return""}var r=Function.prototype,i=r.toString;e.exports=n},function(e,t,n){var r=n(126),i=n(709),o=n(195),a=n(652),s=o(function(e){return e.push(void 0,a),r(i,void 0,e)});e.exports=s},function(e,t,n){e.exports=n(718)},function(e,t,n){function r(e,t,n){var r=null==e?void 0:i(e,t);return void 0===r?n:r}var i=n(130);e.exports=r},function(e,t,n){function r(e,t){return null!=e&&o(e,t,i)}var i=n(606),o=n(321);e.exports=r},function(e,t,n){function r(e,t){return null!=e&&o(e,t,i)}var i=n(607),o=n(321);e.exports=r},function(e,t,n){var r;(function(e,i){(function(){function o(e,t){return e.set(t[0],t[1]),e}function a(e,t){return e.add(t),e}function s(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)}function u(e,t,n,r){for(var i=-1,o=null==e?0:e.length;++i-1}function d(e,t,n){for(var r=-1,i=null==e?0:e.length;++r-1;);return n}function F(e,t){for(var n=e.length;n--&&k(t,e[n],0)>-1;);return n}function D(e,t){for(var n=e.length,r=0;n--;)e[n]===t&&++r;return r}function U(e){return"\\"+nr[e]}function z(e,t){return null==e?ie:e[t]}function W(e){return Kn.test(e)}function Q(e){return $n.test(e)}function H(e){for(var t,n=[];!(t=e.next()).done;)n.push(t.value);return n}function V(e){var t=-1,n=Array(e.size);return e.forEach(function(e,r){n[++t]=[r,e]}),n}function K(e,t){return function(n){return e(t(n))}}function $(e,t){for(var n=-1,r=e.length,i=0,o=[];++n>>1,Ue=[["ary",ke],["bind",ve],["bindKey",ye],["curry",be],["curryRight",we],["flip",Se],["partial",xe],["partialRight",Ee],["rearg",Ce]],ze="[object Arguments]",We="[object Array]",Qe="[object AsyncFunction]",He="[object Boolean]",Ve="[object Date]",Ke="[object DOMException]",$e="[object Error]",Ge="[object Function]",Je="[object GeneratorFunction]",Ye="[object Map]",Xe="[object Number]",Ze="[object Null]",et="[object Object]",tt="[object Promise]",nt="[object Proxy]",rt="[object RegExp]",it="[object Set]",ot="[object String]",at="[object Symbol]",st="[object Undefined]",ut="[object WeakMap]",lt="[object WeakSet]",ct="[object ArrayBuffer]",ft="[object DataView]",ht="[object Float32Array]",pt="[object Float64Array]",dt="[object Int8Array]",mt="[object Int16Array]",gt="[object Int32Array]",vt="[object Uint8Array]",yt="[object Uint8ClampedArray]",_t="[object Uint16Array]",bt="[object Uint32Array]",wt=/\b__p \+= '';/g,xt=/\b(__p \+=) '' \+/g,Et=/(__e\(.*?\)|\b__t\)) \+\n'';/g,kt=/&(?:amp|lt|gt|quot|#39);/g,Ct=/[&<>"']/g,St=RegExp(kt.source),Tt=RegExp(Ct.source),Nt=/<%-([\s\S]+?)%>/g,At=/<%([\s\S]+?)%>/g,Rt=/<%=([\s\S]+?)%>/g,Ot=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Mt=/^\w*$/,jt=/^\./,It=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Pt=/[\\^$.*+?()[\]{}|]/g,qt=RegExp(Pt.source),Bt=/^\s+|\s+$/g,Lt=/^\s+/,Ft=/\s+$/,Dt=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,Ut=/\{\n\/\* \[wrapped with (.+)\] \*/,zt=/,? & /,Wt=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,Qt=/\\(\\)?/g,Ht=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,Vt=/\w*$/,Kt=/^[-+]0x[0-9a-f]+$/i,$t=/^0b[01]+$/i,Gt=/^\[object .+?Constructor\]$/,Jt=/^0o[0-7]+$/i,Yt=/^(?:0|[1-9]\d*)$/,Xt=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,Zt=/($^)/,en=/['\n\r\u2028\u2029\\]/g,tn="\\ud800-\\udfff",nn="\\u0300-\\u036f",rn="\\ufe20-\\ufe2f",on="\\u20d0-\\u20ff",an=nn+rn+on,sn="\\u2700-\\u27bf",un="a-z\\xdf-\\xf6\\xf8-\\xff",ln="\\xac\\xb1\\xd7\\xf7",cn="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",fn="\\u2000-\\u206f",hn=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",pn="A-Z\\xc0-\\xd6\\xd8-\\xde",dn="\\ufe0e\\ufe0f",mn=ln+cn+fn+hn,gn="['’]",vn="["+tn+"]",yn="["+mn+"]",_n="["+an+"]",bn="\\d+",wn="["+sn+"]",xn="["+un+"]",En="[^"+tn+mn+bn+sn+un+pn+"]",kn="\\ud83c[\\udffb-\\udfff]",Cn="(?:"+_n+"|"+kn+")",Sn="[^"+tn+"]",Tn="(?:\\ud83c[\\udde6-\\uddff]){2}",Nn="[\\ud800-\\udbff][\\udc00-\\udfff]",An="["+pn+"]",Rn="\\u200d",On="(?:"+xn+"|"+En+")",Mn="(?:"+An+"|"+En+")",jn="(?:"+gn+"(?:d|ll|m|re|s|t|ve))?",In="(?:"+gn+"(?:D|LL|M|RE|S|T|VE))?",Pn=Cn+"?",qn="["+dn+"]?",Bn="(?:"+Rn+"(?:"+[Sn,Tn,Nn].join("|")+")"+qn+Pn+")*",Ln="\\d*(?:(?:1st|2nd|3rd|(?![123])\\dth)\\b)",Fn="\\d*(?:(?:1ST|2ND|3RD|(?![123])\\dTH)\\b)",Dn=qn+Pn+Bn,Un="(?:"+[wn,Tn,Nn].join("|")+")"+Dn,zn="(?:"+[Sn+_n+"?",_n,Tn,Nn,vn].join("|")+")",Wn=RegExp(gn,"g"),Qn=RegExp(_n,"g"),Hn=RegExp(kn+"(?="+kn+")|"+zn+Dn,"g"),Vn=RegExp([An+"?"+xn+"+"+jn+"(?="+[yn,An,"$"].join("|")+")",Mn+"+"+In+"(?="+[yn,An+On,"$"].join("|")+")",An+"?"+On+"+"+jn,An+"+"+In,Fn,Ln,bn,Un].join("|"),"g"),Kn=RegExp("["+Rn+tn+an+dn+"]"),$n=/[a-z][A-Z]|[A-Z]{2,}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,Gn=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],Jn=-1,Yn={}; +Yn[ht]=Yn[pt]=Yn[dt]=Yn[mt]=Yn[gt]=Yn[vt]=Yn[yt]=Yn[_t]=Yn[bt]=!0,Yn[ze]=Yn[We]=Yn[ct]=Yn[He]=Yn[ft]=Yn[Ve]=Yn[$e]=Yn[Ge]=Yn[Ye]=Yn[Xe]=Yn[et]=Yn[rt]=Yn[it]=Yn[ot]=Yn[ut]=!1;var Xn={};Xn[ze]=Xn[We]=Xn[ct]=Xn[ft]=Xn[He]=Xn[Ve]=Xn[ht]=Xn[pt]=Xn[dt]=Xn[mt]=Xn[gt]=Xn[Ye]=Xn[Xe]=Xn[et]=Xn[rt]=Xn[it]=Xn[ot]=Xn[at]=Xn[vt]=Xn[yt]=Xn[_t]=Xn[bt]=!0,Xn[$e]=Xn[Ge]=Xn[ut]=!1;var Zn={"À":"A","Á":"A","Â":"A","Ã":"A","Ä":"A","Å":"A","à":"a","á":"a","â":"a","ã":"a","ä":"a","å":"a","Ç":"C","ç":"c","Ð":"D","ð":"d","È":"E","É":"E","Ê":"E","Ë":"E","è":"e","é":"e","ê":"e","ë":"e","Ì":"I","Í":"I","Î":"I","Ï":"I","ì":"i","í":"i","î":"i","ï":"i","Ñ":"N","ñ":"n","Ò":"O","Ó":"O","Ô":"O","Õ":"O","Ö":"O","Ø":"O","ò":"o","ó":"o","ô":"o","õ":"o","ö":"o","ø":"o","Ù":"U","Ú":"U","Û":"U","Ü":"U","ù":"u","ú":"u","û":"u","ü":"u","Ý":"Y","ý":"y","ÿ":"y","Æ":"Ae","æ":"ae","Þ":"Th","þ":"th","ß":"ss","Ā":"A","Ă":"A","Ą":"A","ā":"a","ă":"a","ą":"a","Ć":"C","Ĉ":"C","Ċ":"C","Č":"C","ć":"c","ĉ":"c","ċ":"c","č":"c","Ď":"D","Đ":"D","ď":"d","đ":"d","Ē":"E","Ĕ":"E","Ė":"E","Ę":"E","Ě":"E","ē":"e","ĕ":"e","ė":"e","ę":"e","ě":"e","Ĝ":"G","Ğ":"G","Ġ":"G","Ģ":"G","ĝ":"g","ğ":"g","ġ":"g","ģ":"g","Ĥ":"H","Ħ":"H","ĥ":"h","ħ":"h","Ĩ":"I","Ī":"I","Ĭ":"I","Į":"I","İ":"I","ĩ":"i","ī":"i","ĭ":"i","į":"i","ı":"i","Ĵ":"J","ĵ":"j","Ķ":"K","ķ":"k","ĸ":"k","Ĺ":"L","Ļ":"L","Ľ":"L","Ŀ":"L","Ł":"L","ĺ":"l","ļ":"l","ľ":"l","ŀ":"l","ł":"l","Ń":"N","Ņ":"N","Ň":"N","Ŋ":"N","ń":"n","ņ":"n","ň":"n","ŋ":"n","Ō":"O","Ŏ":"O","Ő":"O","ō":"o","ŏ":"o","ő":"o","Ŕ":"R","Ŗ":"R","Ř":"R","ŕ":"r","ŗ":"r","ř":"r","Ś":"S","Ŝ":"S","Ş":"S","Š":"S","ś":"s","ŝ":"s","ş":"s","š":"s","Ţ":"T","Ť":"T","Ŧ":"T","ţ":"t","ť":"t","ŧ":"t","Ũ":"U","Ū":"U","Ŭ":"U","Ů":"U","Ű":"U","Ų":"U","ũ":"u","ū":"u","ŭ":"u","ů":"u","ű":"u","ų":"u","Ŵ":"W","ŵ":"w","Ŷ":"Y","ŷ":"y","Ÿ":"Y","Ź":"Z","Ż":"Z","Ž":"Z","ź":"z","ż":"z","ž":"z","IJ":"IJ","ij":"ij","Œ":"Oe","œ":"oe","ʼn":"'n","ſ":"s"},er={"&":"&","<":"<",">":">",'"':""","'":"'"},tr={"&":"&","<":"<",">":">",""":'"',"'":"'"},nr={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},rr=parseFloat,ir=parseInt,or="object"==typeof e&&e&&e.Object===Object&&e,ar="object"==typeof self&&self&&self.Object===Object&&self,sr=or||ar||Function("return this")(),ur="object"==typeof t&&t&&!t.nodeType&&t,lr=ur&&"object"==typeof i&&i&&!i.nodeType&&i,cr=lr&&lr.exports===ur,fr=cr&&or.process,hr=function(){try{return fr&&fr.binding&&fr.binding("util")}catch(e){}}(),pr=hr&&hr.isArrayBuffer,dr=hr&&hr.isDate,mr=hr&&hr.isMap,gr=hr&&hr.isRegExp,vr=hr&&hr.isSet,yr=hr&&hr.isTypedArray,_r=N("length"),br=A(Zn),wr=A(er),xr=A(tr),Er=function e(t){function n(e){if(lu(e)&&!wh(e)&&!(e instanceof b)){if(e instanceof i)return e;if(bc.call(e,"__wrapped__"))return aa(e)}return new i(e)}function r(){}function i(e,t){this.__wrapped__=e,this.__actions__=[],this.__chain__=!!t,this.__index__=0,this.__values__=ie}function b(e){this.__wrapped__=e,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=Le,this.__views__=[]}function A(){var e=new b(this.__wrapped__);return e.__actions__=Di(this.__actions__),e.__dir__=this.__dir__,e.__filtered__=this.__filtered__,e.__iteratees__=Di(this.__iteratees__),e.__takeCount__=this.__takeCount__,e.__views__=Di(this.__views__),e}function Y(){if(this.__filtered__){var e=new b(this);e.__dir__=-1,e.__filtered__=!0}else e=this.clone(),e.__dir__*=-1;return e}function te(){var e=this.__wrapped__.value(),t=this.__dir__,n=wh(e),r=t<0,i=n?e.length:0,o=Ro(0,i,this.__views__),a=o.start,s=o.end,u=s-a,l=r?s:a-1,c=this.__iteratees__,f=c.length,h=0,p=Jc(u,this.__takeCount__);if(!n||!r&&i==u&&p==u)return wi(e,this.__actions__);var d=[];e:for(;u--&&h-1}function fn(e,t){var n=this.__data__,r=jn(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this}function hn(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t=t?e:t)),e}function Dn(e,t,n,r,i,o){var a,s=t&he,u=t&pe,c=t&de;if(n&&(a=i?n(e,r,i,o):n(e)),a!==ie)return a;if(!uu(e))return e;var f=wh(e);if(f){if(a=jo(e),!s)return Di(e,a)}else{var h=Of(e),p=h==Ge||h==Je;if(Eh(e))return Ni(e,s);if(h==et||h==ze||p&&!i){if(a=u||p?{}:Io(e),!s)return u?Wi(e,qn(a,e)):zi(e,Pn(a,e))}else{if(!Xn[h])return i?e:{};a=Po(e,h,Dn,s)}}o||(o=new wn);var d=o.get(e);if(d)return d;o.set(e,a);var m=c?u?xo:wo:u?Hu:Qu,g=f?ie:m(e);return l(g||e,function(r,i){g&&(i=r,r=e[i]),Mn(a,i,Dn(r,t,n,i,e,o))}),a}function Un(e){var t=Qu(e);return function(n){return zn(n,e,t)}}function zn(e,t,n){var r=n.length;if(null==e)return!r;for(e=fc(e);r--;){var i=n[r],o=t[i],a=e[i];if(a===ie&&!(i in e)||!o(a))return!1}return!0}function Hn(e,t,n){if("function"!=typeof e)throw new dc(ue);return If(function(){e.apply(ie,n)},t)}function Vn(e,t,n,r){var i=-1,o=p,a=!0,s=e.length,u=[],l=t.length;if(!s)return u;n&&(t=m(t,P(n))),r?(o=d,a=!1):t.length>=ae&&(o=B,a=!1,t=new yn(t));e:for(;++ii?0:i+n),r=r===ie||r>i?i:Su(r),r<0&&(r+=i),r=n>r?0:Tu(r);n0&&n(s)?t>1?tr(s,t-1,n,r,i):g(i,s):r||(i[i.length]=s)}return i}function nr(e,t){return e&&wf(e,t,Qu)}function or(e,t){return e&&xf(e,t,Qu)}function ar(e,t){return h(t,function(t){return ou(e[t])})}function ur(e,t){t=Si(t,e);for(var n=0,r=t.length;null!=e&&nt}function _r(e,t){return null!=e&&bc.call(e,t)}function Er(e,t){return null!=e&&t in fc(e)}function Cr(e,t,n){return e>=Jc(t,n)&&e=120&&c.length>=120)?new yn(a&&c):ie}c=e[0];var f=-1,h=s[0];e:for(;++f-1;)s!==e&&Ic.call(s,u,1),Ic.call(e,u,1);return e}function ti(e,t){for(var n=e?t.length:0,r=n-1;n--;){var i=t[n];if(n==r||i!==o){var o=i;Lo(i)?Ic.call(e,i,1):yi(e,i)}}return e}function ni(e,t){return e+Wc(Zc()*(t-e+1))}function ri(e,t,n,r){for(var i=-1,o=Gc(zc((t-e)/(n||1)),0),a=ac(o);o--;)a[r?o:++i]=e,e+=n;return a}function ii(e,t){var n="";if(!e||t<1||t>Pe)return n;do t%2&&(n+=e),t=Wc(t/2),t&&(e+=e);while(t);return n}function oi(e,t){return Pf(Yo(e,t,Il),e+"")}function ai(e){return Nn(rl(e))}function si(e,t){var n=rl(e);return na(n,Fn(t,0,n.length))}function ui(e,t,n,r){if(!uu(e))return e;t=Si(t,e);for(var i=-1,o=t.length,a=o-1,s=e;null!=s&&++ii?0:i+t),n=n>i?i:n,n<0&&(n+=i),i=t>n?0:n-t>>>0,t>>>=0;for(var o=ac(i);++r>>1,a=e[o];null!==a&&!bu(a)&&(n?a<=t:a=ae){var l=t?null:Tf(e);if(l)return G(l);a=!1,i=B,u=new yn}else u=t?[]:s;e:for(;++r=r?e:ci(e,t,n)}function Ni(e,t){if(t)return e.slice();var n=e.length,r=Rc?Rc(n):new e.constructor(n);return e.copy(r),r}function Ai(e){var t=new e.constructor(e.byteLength);return new Ac(t).set(new Ac(e)),t}function Ri(e,t){var n=t?Ai(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.byteLength)}function Oi(e,t,n){var r=t?n(V(e),he):V(e);return v(r,o,new e.constructor)}function Mi(e){var t=new e.constructor(e.source,Vt.exec(e));return t.lastIndex=e.lastIndex,t}function ji(e,t,n){var r=t?n(G(e),he):G(e);return v(r,a,new e.constructor)}function Ii(e){return gf?fc(gf.call(e)):{}}function Pi(e,t){var n=t?Ai(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.length)}function qi(e,t){if(e!==t){var n=e!==ie,r=null===e,i=e===e,o=bu(e),a=t!==ie,s=null===t,u=t===t,l=bu(t);if(!s&&!l&&!o&&e>t||o&&a&&u&&!s&&!l||r&&a&&u||!n&&u||!i)return 1;if(!r&&!o&&!l&&e=s)return u;var l=n[r];return u*("desc"==l?-1:1)}}return e.index-t.index}function Li(e,t,n,r){for(var i=-1,o=e.length,a=n.length,s=-1,u=t.length,l=Gc(o-a,0),c=ac(u+l),f=!r;++s1?n[i-1]:ie,a=i>2?n[2]:ie;for(o=e.length>3&&"function"==typeof o?(i--,o):ie,a&&Fo(n[0],n[1],a)&&(o=i<3?ie:o,i=1),t=fc(t);++r-1?i[o?t[a]:a]:ie}}function eo(e){return bo(function(t){var n=t.length,r=n,o=i.prototype.thru;for(e&&t.reverse();r--;){var a=t[r];if("function"!=typeof a)throw new dc(ue);if(o&&!s&&"wrapper"==Eo(a))var s=new i([],!0)}for(r=s?r:n;++r1&&y.reverse(),f&&us))return!1;var l=o.get(e);if(l&&o.get(t))return l==t;var c=-1,f=!0,h=n&ge?new yn:ie;for(o.set(e,t),o.set(t,e);++c1?"& ":"")+t[r],t=t.join(n>2?", ":" "),e.replace(Dt,"{\n/* [wrapped with "+t+"] */\n")}function Bo(e){return wh(e)||bh(e)||!!(Pc&&e&&e[Pc])}function Lo(e,t){return t=null==t?Pe:t,!!t&&("number"==typeof e||Yt.test(e))&&e>-1&&e%1==0&&e0){if(++t>=Ae)return arguments[0]}else t=0;return e.apply(ie,arguments)}}function na(e,t){var n=-1,r=e.length,i=r-1;for(t=t===ie?r:t;++n=this.__values__.length,t=e?ie:this.__values__[this.__index__++];return{done:e,value:t}}function as(){return this}function ss(e){for(var t,n=this;n instanceof r;){var i=aa(n);i.__index__=0,i.__values__=ie,t?o.__wrapped__=i:t=i;var o=i;n=n.__wrapped__}return o.__wrapped__=e,t}function us(){var e=this.__wrapped__;if(e instanceof b){var t=e;return this.__actions__.length&&(t=new b(this)),t=t.reverse(),t.__actions__.push({func:ns,args:[Ma],thisArg:ie}),new i(t,this.__chain__)}return this.thru(Ma)}function ls(){return wi(this.__wrapped__,this.__actions__)}function cs(e,t,n){var r=wh(e)?f:Kn;return n&&Fo(e,t,n)&&(t=ie),r(e,Co(t,3))}function fs(e,t){var n=wh(e)?h:er;return n(e,Co(t,3))}function hs(e,t){return tr(ys(e,t),1)}function ps(e,t){return tr(ys(e,t),Ie)}function ds(e,t,n){return n=n===ie?1:Su(n),tr(ys(e,t),n)}function ms(e,t){var n=wh(e)?l:_f;return n(e,Co(t,3))}function gs(e,t){var n=wh(e)?c:bf;return n(e,Co(t,3))}function vs(e,t,n,r){e=Js(e)?e:rl(e),n=n&&!r?Su(n):0;var i=e.length;return n<0&&(n=Gc(i+n,0)),_u(e)?n<=i&&e.indexOf(t,n)>-1:!!i&&k(e,t,n)>-1}function ys(e,t){var n=wh(e)?m:Qr;return n(e,Co(t,3))}function _s(e,t,n,r){return null==e?[]:(wh(t)||(t=null==t?[]:[t]),n=r?ie:n,wh(n)||(n=null==n?[]:[n]),Jr(e,t,n))}function bs(e,t,n){var r=wh(e)?v:R,i=arguments.length<3;return r(e,Co(t,4),n,i,_f)}function ws(e,t,n){var r=wh(e)?y:R,i=arguments.length<3;return r(e,Co(t,4),n,i,bf)}function xs(e,t){var n=wh(e)?h:er;return n(e,qs(Co(t,3)))}function Es(e){var t=wh(e)?Nn:ai;return t(e)}function ks(e,t,n){t=(n?Fo(e,t,n):t===ie)?1:Su(t);var r=wh(e)?An:si;return r(e,t)}function Cs(e){var t=wh(e)?Rn:li;return t(e)}function Ss(e){if(null==e)return 0;if(Js(e))return _u(e)?Z(e):e.length;var t=Of(e);return t==Ye||t==it?e.size:Ur(e).length}function Ts(e,t,n){var r=wh(e)?_:fi;return n&&Fo(e,t,n)&&(t=ie),r(e,Co(t,3))}function Ns(e,t){if("function"!=typeof t)throw new dc(ue);return e=Su(e),function(){if(--e<1)return t.apply(this,arguments)}}function As(e,t,n){return t=n?ie:t,t=e&&null==t?e.length:t,ho(e,ke,ie,ie,ie,ie,t)}function Rs(e,t){var n;if("function"!=typeof t)throw new dc(ue);return e=Su(e),function(){return--e>0&&(n=t.apply(this,arguments)),e<=1&&(t=ie),n}}function Os(e,t,n){t=n?ie:t;var r=ho(e,be,ie,ie,ie,ie,ie,t);return r.placeholder=Os.placeholder,r}function Ms(e,t,n){t=n?ie:t;var r=ho(e,we,ie,ie,ie,ie,ie,t);return r.placeholder=Ms.placeholder,r}function js(e,t,n){function r(t){var n=h,r=p;return h=p=ie,y=t,m=e.apply(r,n)}function i(e){return y=e,g=If(s,t),_?r(e):m}function o(e){var n=e-v,r=e-y,i=t-n;return b?Jc(i,d-r):i}function a(e){var n=e-v,r=e-y;return v===ie||n>=t||n<0||b&&r>=d}function s(){var e=lh();return a(e)?u(e):void(g=If(s,o(e)))}function u(e){return g=ie,w&&h?r(e):(h=p=ie,m)}function l(){g!==ie&&Sf(g),y=0,h=v=p=g=ie}function c(){return g===ie?m:u(lh())}function f(){var e=lh(),n=a(e);if(h=arguments,p=this,v=e,n){if(g===ie)return i(v);if(b)return g=If(s,t),r(v)}return g===ie&&(g=If(s,t)),m}var h,p,d,m,g,v,y=0,_=!1,b=!1,w=!0;if("function"!=typeof e)throw new dc(ue);return t=Nu(t)||0,uu(n)&&(_=!!n.leading,b="maxWait"in n,d=b?Gc(Nu(n.maxWait)||0,t):d,w="trailing"in n?!!n.trailing:w),f.cancel=l,f.flush=c,f}function Is(e){return ho(e,Se)}function Ps(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new dc(ue);var n=function(){var r=arguments,i=t?t.apply(this,r):r[0],o=n.cache;if(o.has(i))return o.get(i);var a=e.apply(this,r);return n.cache=o.set(i,a)||o,a};return n.cache=new(Ps.Cache||hn),n}function qs(e){if("function"!=typeof e)throw new dc(ue);return function(){var t=arguments;switch(t.length){case 0:return!e.call(this);case 1:return!e.call(this,t[0]);case 2:return!e.call(this,t[0],t[1]);case 3:return!e.call(this,t[0],t[1],t[2])}return!e.apply(this,t)}}function Bs(e){return Rs(2,e)}function Ls(e,t){if("function"!=typeof e)throw new dc(ue);return t=t===ie?t:Su(t),oi(e,t)}function Fs(e,t){if("function"!=typeof e)throw new dc(ue);return t=null==t?0:Gc(Su(t),0),oi(function(n){var r=n[t],i=Ti(n,0,t);return r&&g(i,r),s(e,this,i)})}function Ds(e,t,n){var r=!0,i=!0;if("function"!=typeof e)throw new dc(ue);return uu(n)&&(r="leading"in n?!!n.leading:r,i="trailing"in n?!!n.trailing:i),js(e,t,{leading:r,maxWait:t,trailing:i})}function Us(e){return As(e,1)}function zs(e,t){return mh(Ci(t),e)}function Ws(){if(!arguments.length)return[];var e=arguments[0];return wh(e)?e:[e]}function Qs(e){return Dn(e,de)}function Hs(e,t){return t="function"==typeof t?t:ie,Dn(e,de,t)}function Vs(e){return Dn(e,he|de)}function Ks(e,t){return t="function"==typeof t?t:ie,Dn(e,he|de,t)}function $s(e,t){return null==t||zn(e,t,Qu(t))}function Gs(e,t){return e===t||e!==e&&t!==t}function Js(e){return null!=e&&su(e.length)&&!ou(e)}function Ys(e){return lu(e)&&Js(e)}function Xs(e){return e===!0||e===!1||lu(e)&&fr(e)==He}function Zs(e){return lu(e)&&1===e.nodeType&&!vu(e)}function eu(e){if(null==e)return!0;if(Js(e)&&(wh(e)||"string"==typeof e||"function"==typeof e.splice||Eh(e)||Nh(e)||bh(e)))return!e.length;var t=Of(e);if(t==Ye||t==it)return!e.size;if(Qo(e))return!Ur(e).length;for(var n in e)if(bc.call(e,n))return!1;return!0}function tu(e,t){return Mr(e,t)}function nu(e,t,n){n="function"==typeof n?n:ie;var r=n?n(e,t):ie;return r===ie?Mr(e,t,ie,n):!!r}function ru(e){if(!lu(e))return!1;var t=fr(e);return t==$e||t==Ke||"string"==typeof e.message&&"string"==typeof e.name&&!vu(e)}function iu(e){return"number"==typeof e&&Vc(e)}function ou(e){if(!uu(e))return!1;var t=fr(e);return t==Ge||t==Je||t==Qe||t==nt}function au(e){return"number"==typeof e&&e==Su(e)}function su(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=Pe}function uu(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}function lu(e){return null!=e&&"object"==typeof e}function cu(e,t){return e===t||Pr(e,t,To(t))}function fu(e,t,n){return n="function"==typeof n?n:ie,Pr(e,t,To(t),n)}function hu(e){return gu(e)&&e!=+e}function pu(e){if(Mf(e))throw new uc(se);return qr(e)}function du(e){return null===e}function mu(e){return null==e}function gu(e){return"number"==typeof e||lu(e)&&fr(e)==Xe}function vu(e){if(!lu(e)||fr(e)!=et)return!1;var t=Oc(e);if(null===t)return!0;var n=bc.call(t,"constructor")&&t.constructor;return"function"==typeof n&&n instanceof n&&_c.call(n)==kc}function yu(e){return au(e)&&e>=-Pe&&e<=Pe}function _u(e){return"string"==typeof e||!wh(e)&&lu(e)&&fr(e)==ot}function bu(e){return"symbol"==typeof e||lu(e)&&fr(e)==at}function wu(e){return e===ie}function xu(e){return lu(e)&&Of(e)==ut}function Eu(e){return lu(e)&&fr(e)==lt}function ku(e){if(!e)return[];if(Js(e))return _u(e)?ee(e):Di(e);if(qc&&e[qc])return H(e[qc]());var t=Of(e),n=t==Ye?V:t==it?G:rl;return n(e)}function Cu(e){if(!e)return 0===e?e:0;if(e=Nu(e),e===Ie||e===-Ie){var t=e<0?-1:1;return t*qe}return e===e?e:0}function Su(e){var t=Cu(e),n=t%1;return t===t?n?t-n:t:0}function Tu(e){return e?Fn(Su(e),0,Le):0}function Nu(e){if("number"==typeof e)return e;if(bu(e))return Be;if(uu(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=uu(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(Bt,"");var n=$t.test(e);return n||Jt.test(e)?ir(e.slice(2),n?2:8):Kt.test(e)?Be:+e}function Au(e){return Ui(e,Hu(e))}function Ru(e){return e?Fn(Su(e),-Pe,Pe):0===e?e:0}function Ou(e){return null==e?"":gi(e)}function Mu(e,t){var n=yf(e);return null==t?n:Pn(n,t)}function ju(e,t){return x(e,Co(t,3),nr)}function Iu(e,t){return x(e,Co(t,3),or)}function Pu(e,t){return null==e?e:wf(e,Co(t,3),Hu)}function qu(e,t){return null==e?e:xf(e,Co(t,3),Hu)}function Bu(e,t){return e&&nr(e,Co(t,3))}function Lu(e,t){return e&&or(e,Co(t,3))}function Fu(e){return null==e?[]:ar(e,Qu(e))}function Du(e){return null==e?[]:ar(e,Hu(e))}function Uu(e,t,n){var r=null==e?ie:ur(e,t);return r===ie?n:r}function zu(e,t){return null!=e&&Mo(e,t,_r)}function Wu(e,t){return null!=e&&Mo(e,t,Er)}function Qu(e){return Js(e)?Tn(e):Ur(e)}function Hu(e){return Js(e)?Tn(e,!0):zr(e)}function Vu(e,t){var n={};return t=Co(t,3),nr(e,function(e,r,i){Bn(n,t(e,r,i),e)}),n}function Ku(e,t){var n={};return t=Co(t,3),nr(e,function(e,r,i){Bn(n,r,t(e,r,i))}),n}function $u(e,t){return Gu(e,qs(Co(t)))}function Gu(e,t){if(null==e)return{};var n=m(xo(e),function(e){return[e]});return t=Co(t),Xr(e,n,function(e,n){return t(e,n[0])})}function Ju(e,t,n){t=Si(t,e);var r=-1,i=t.length;for(i||(i=1,e=ie);++rt){var r=e;e=t,t=r}if(n||e%1||t%1){var i=Zc();return Jc(e+i*(t-e+rr("1e-"+((i+"").length-1))),t)}return ni(e,t)}function ul(e){return ep(Ou(e).toLowerCase())}function ll(e){return e=Ou(e),e&&e.replace(Xt,br).replace(Qn,"")}function cl(e,t,n){e=Ou(e),t=gi(t);var r=e.length;n=n===ie?r:Fn(Su(n),0,r);var i=n;return n-=t.length,n>=0&&e.slice(n,i)==t}function fl(e){return e=Ou(e),e&&Tt.test(e)?e.replace(Ct,wr):e}function hl(e){return e=Ou(e),e&&qt.test(e)?e.replace(Pt,"\\$&"):e}function pl(e,t,n){e=Ou(e),t=Su(t);var r=t?Z(e):0;if(!t||r>=t)return e;var i=(t-r)/2;return oo(Wc(i),n)+e+oo(zc(i),n)}function dl(e,t,n){e=Ou(e),t=Su(t);var r=t?Z(e):0;return t&&r>>0)?(e=Ou(e),e&&("string"==typeof t||null!=t&&!Sh(t))&&(t=gi(t),!t&&W(e))?Ti(ee(e),0,n):e.split(t,n)):[]}function bl(e,t,n){return e=Ou(e),n=null==n?0:Fn(Su(n),0,e.length),t=gi(t),e.slice(n,n+t.length)==t}function wl(e,t,r){var i=n.templateSettings;r&&Fo(e,t,r)&&(t=ie),e=Ou(e),t=jh({},t,i,po);var o,a,s=jh({},t.imports,i.imports,po),u=Qu(s),l=q(s,u),c=0,f=t.interpolate||Zt,h="__p += '",p=hc((t.escape||Zt).source+"|"+f.source+"|"+(f===Rt?Ht:Zt).source+"|"+(t.evaluate||Zt).source+"|$","g"),d="//# sourceURL="+("sourceURL"in t?t.sourceURL:"lodash.templateSources["+ ++Jn+"]")+"\n";e.replace(p,function(t,n,r,i,s,u){return r||(r=i),h+=e.slice(c,u).replace(en,U),n&&(o=!0,h+="' +\n__e("+n+") +\n'"),s&&(a=!0,h+="';\n"+s+";\n__p += '"),r&&(h+="' +\n((__t = ("+r+")) == null ? '' : __t) +\n'"),c=u+t.length,t}),h+="';\n";var m=t.variable;m||(h="with (obj) {\n"+h+"\n}\n"),h=(a?h.replace(wt,""):h).replace(xt,"$1").replace(Et,"$1;"),h="function("+(m||"obj")+") {\n"+(m?"":"obj || (obj = {});\n")+"var __t, __p = ''"+(o?", __e = _.escape":"")+(a?", __j = Array.prototype.join;\nfunction print() { __p += __j.call(arguments, '') }\n":";\n")+h+"return __p\n}";var g=tp(function(){return lc(u,d+"return "+h).apply(ie,l)});if(g.source=h,ru(g))throw g;return g}function xl(e){return Ou(e).toLowerCase()}function El(e){return Ou(e).toUpperCase()}function kl(e,t,n){if(e=Ou(e),e&&(n||t===ie))return e.replace(Bt,"");if(!e||!(t=gi(t)))return e;var r=ee(e),i=ee(t),o=L(r,i),a=F(r,i)+1;return Ti(r,o,a).join("")}function Cl(e,t,n){if(e=Ou(e),e&&(n||t===ie))return e.replace(Ft,"");if(!e||!(t=gi(t)))return e;var r=ee(e),i=F(r,ee(t))+1;return Ti(r,0,i).join("")}function Sl(e,t,n){if(e=Ou(e),e&&(n||t===ie))return e.replace(Lt,"");if(!e||!(t=gi(t)))return e;var r=ee(e),i=L(r,ee(t));return Ti(r,i).join("")}function Tl(e,t){var n=Te,r=Ne;if(uu(t)){var i="separator"in t?t.separator:i;n="length"in t?Su(t.length):n,r="omission"in t?gi(t.omission):r}e=Ou(e);var o=e.length;if(W(e)){var a=ee(e);o=a.length}if(n>=o)return e;var s=n-Z(r);if(s<1)return r;var u=a?Ti(a,0,s).join(""):e.slice(0,s);if(i===ie)return u+r;if(a&&(s+=u.length-s),Sh(i)){if(e.slice(s).search(i)){var l,c=u;for(i.global||(i=hc(i.source,Ou(Vt.exec(i))+"g")),i.lastIndex=0;l=i.exec(c);)var f=l.index;u=u.slice(0,f===ie?s:f)}}else if(e.indexOf(gi(i),s)!=s){var h=u.lastIndexOf(i);h>-1&&(u=u.slice(0,h))}return u+r}function Nl(e){return e=Ou(e),e&&St.test(e)?e.replace(kt,xr):e}function Al(e,t,n){return e=Ou(e),t=n?ie:t,t===ie?Q(e)?re(e):w(e):e.match(t)||[]}function Rl(e){var t=null==e?0:e.length,n=Co();return e=t?m(e,function(e){if("function"!=typeof e[1])throw new dc(ue);return[n(e[0]),e[1]]}):[],oi(function(n){for(var r=-1;++rPe)return[];var n=Le,r=Jc(e,Le);t=Co(t),e-=Le;for(var i=j(r,t);++n1?e[t-1]:ie;return n="function"==typeof n?(e.pop(),n):ie,Ya(e,n)}),eh=bo(function(e){var t=e.length,n=t?e[0]:0,r=this.__wrapped__,o=function(t){return Ln(t,e)};return!(t>1||this.__actions__.length)&&r instanceof b&&Lo(n)?(r=r.slice(n,+n+(t?1:0)),r.__actions__.push({func:ns,args:[o],thisArg:ie}),new i(r,this.__chain__).thru(function(e){return t&&!e.length&&e.push(ie),e})):this.thru(o)}),th=Qi(function(e,t,n){bc.call(e,n)?++e[n]:Bn(e,n,1)}),nh=Zi(ma),rh=Zi(ga),ih=Qi(function(e,t,n){bc.call(e,n)?e[n].push(t):Bn(e,n,[t])}),oh=oi(function(e,t,n){var r=-1,i="function"==typeof t,o=Js(e)?ac(e.length):[];return _f(e,function(e){o[++r]=i?s(t,e,n):Nr(e,t,n)}),o}),ah=Qi(function(e,t,n){Bn(e,n,t)}),sh=Qi(function(e,t,n){e[n?0:1].push(t)},function(){return[[],[]]}),uh=oi(function(e,t){if(null==e)return[];var n=t.length;return n>1&&Fo(e,t[0],t[1])?t=[]:n>2&&Fo(t[0],t[1],t[2])&&(t=[t[0]]),Jr(e,tr(t,1),[])}),lh=Dc||function(){return sr.Date.now()},ch=oi(function(e,t,n){var r=ve;if(n.length){var i=$(n,ko(ch));r|=xe}return ho(e,r,t,n,i)}),fh=oi(function(e,t,n){var r=ve|ye;if(n.length){var i=$(n,ko(fh));r|=xe}return ho(t,r,e,n,i)}),hh=oi(function(e,t){return Hn(e,1,t)}),ph=oi(function(e,t,n){return Hn(e,Nu(t)||0,n)});Ps.Cache=hn;var dh=Cf(function(e,t){t=1==t.length&&wh(t[0])?m(t[0],P(Co())):m(tr(t,1),P(Co()));var n=t.length;return oi(function(r){for(var i=-1,o=Jc(r.length,n);++i=t}),bh=Ar(function(){return arguments}())?Ar:function(e){return lu(e)&&bc.call(e,"callee")&&!jc.call(e,"callee")},wh=ac.isArray,xh=pr?P(pr):Rr,Eh=Hc||Hl,kh=dr?P(dr):Or,Ch=mr?P(mr):Ir,Sh=gr?P(gr):Br,Th=vr?P(vr):Lr,Nh=yr?P(yr):Fr,Ah=uo(Wr),Rh=uo(function(e,t){return e<=t}),Oh=Hi(function(e,t){if(Qo(t)||Js(t))return void Ui(t,Qu(t),e);for(var n in t)bc.call(t,n)&&Mn(e,n,t[n])}),Mh=Hi(function(e,t){Ui(t,Hu(t),e)}),jh=Hi(function(e,t,n,r){Ui(t,Hu(t),e,r)}),Ih=Hi(function(e,t,n,r){Ui(t,Qu(t),e,r)}),Ph=bo(Ln),qh=oi(function(e){return e.push(ie,po),s(jh,ie,e)}),Bh=oi(function(e){return e.push(ie,mo),s(zh,ie,e)}),Lh=no(function(e,t,n){e[t]=n},Ml(Il)),Fh=no(function(e,t,n){bc.call(e,t)?e[t].push(n):e[t]=[n]},Co),Dh=oi(Nr),Uh=Hi(function(e,t,n){Kr(e,t,n)}),zh=Hi(function(e,t,n,r){Kr(e,t,n,r)}),Wh=bo(function(e,t){var n={};if(null==e)return n;var r=!1;t=m(t,function(t){return t=Si(t,e),r||(r=t.length>1),t}),Ui(e,xo(e),n),r&&(n=Dn(n,he|pe|de,go));for(var i=t.length;i--;)yi(n,t[i]);return n}),Qh=bo(function(e,t){return null==e?{}:Yr(e,t)}),Hh=fo(Qu),Vh=fo(Hu),Kh=Ji(function(e,t,n){return t=t.toLowerCase(),e+(n?ul(t):t)}),$h=Ji(function(e,t,n){return e+(n?"-":"")+t.toLowerCase()}),Gh=Ji(function(e,t,n){return e+(n?" ":"")+t.toLowerCase()}),Jh=Gi("toLowerCase"),Yh=Ji(function(e,t,n){return e+(n?"_":"")+t.toLowerCase()}),Xh=Ji(function(e,t,n){return e+(n?" ":"")+ep(t)}),Zh=Ji(function(e,t,n){return e+(n?" ":"")+t.toUpperCase()}),ep=Gi("toUpperCase"),tp=oi(function(e,t){try{return s(e,ie,t)}catch(e){return ru(e)?e:new uc(e)}}),np=bo(function(e,t){return l(t,function(t){t=ra(t),Bn(e,t,ch(e[t],e))}),e}),rp=eo(),ip=eo(!0),op=oi(function(e,t){return function(n){return Nr(n,e,t)}}),ap=oi(function(e,t){return function(n){return Nr(e,n,t)}}),sp=io(m),up=io(f),lp=io(_),cp=so(),fp=so(!0),hp=ro(function(e,t){return e+t},0),pp=co("ceil"),dp=ro(function(e,t){return e/t},1),mp=co("floor"),gp=ro(function(e,t){return e*t},1),vp=co("round"),yp=ro(function(e,t){return e-t},0);return n.after=Ns,n.ary=As,n.assign=Oh,n.assignIn=Mh,n.assignInWith=jh,n.assignWith=Ih,n.at=Ph,n.before=Rs,n.bind=ch,n.bindAll=np,n.bindKey=fh,n.castArray=Ws,n.chain=es,n.chunk=sa,n.compact=ua,n.concat=la,n.cond=Rl,n.conforms=Ol,n.constant=Ml,n.countBy=th,n.create=Mu,n.curry=Os,n.curryRight=Ms,n.debounce=js,n.defaults=qh,n.defaultsDeep=Bh,n.defer=hh,n.delay=ph,n.difference=Bf,n.differenceBy=Lf,n.differenceWith=Ff,n.drop=ca,n.dropRight=fa,n.dropRightWhile=ha,n.dropWhile=pa,n.fill=da,n.filter=fs,n.flatMap=hs,n.flatMapDeep=ps,n.flatMapDepth=ds,n.flatten=va,n.flattenDeep=ya,n.flattenDepth=_a,n.flip=Is,n.flow=rp,n.flowRight=ip,n.fromPairs=ba,n.functions=Fu,n.functionsIn=Du,n.groupBy=ih,n.initial=Ea,n.intersection=Df,n.intersectionBy=Uf,n.intersectionWith=zf,n.invert=Lh,n.invertBy=Fh,n.invokeMap=oh,n.iteratee=Pl,n.keyBy=ah,n.keys=Qu,n.keysIn=Hu,n.map=ys,n.mapKeys=Vu,n.mapValues=Ku,n.matches=ql,n.matchesProperty=Bl,n.memoize=Ps,n.merge=Uh,n.mergeWith=zh,n.method=op,n.methodOf=ap,n.mixin=Ll,n.negate=qs,n.nthArg=Ul,n.omit=Wh,n.omitBy=$u,n.once=Bs,n.orderBy=_s,n.over=sp,n.overArgs=dh,n.overEvery=up,n.overSome=lp,n.partial=mh,n.partialRight=gh,n.partition=sh,n.pick=Qh,n.pickBy=Gu,n.property=zl,n.propertyOf=Wl,n.pull=Wf,n.pullAll=Na,n.pullAllBy=Aa,n.pullAllWith=Ra,n.pullAt=Qf,n.range=cp,n.rangeRight=fp,n.rearg=vh,n.reject=xs,n.remove=Oa,n.rest=Ls,n.reverse=Ma,n.sampleSize=ks,n.set=Yu,n.setWith=Xu,n.shuffle=Cs,n.slice=ja,n.sortBy=uh,n.sortedUniq=Da,n.sortedUniqBy=Ua,n.split=_l,n.spread=Fs,n.tail=za,n.take=Wa,n.takeRight=Qa,n.takeRightWhile=Ha,n.takeWhile=Va,n.tap=ts,n.throttle=Ds,n.thru=ns,n.toArray=ku,n.toPairs=Hh,n.toPairsIn=Vh,n.toPath=Jl,n.toPlainObject=Au,n.transform=Zu,n.unary=Us,n.union=Hf,n.unionBy=Vf,n.unionWith=Kf,n.uniq=Ka,n.uniqBy=$a,n.uniqWith=Ga,n.unset=el,n.unzip=Ja,n.unzipWith=Ya,n.update=tl,n.updateWith=nl,n.values=rl,n.valuesIn=il,n.without=$f,n.words=Al,n.wrap=zs,n.xor=Gf,n.xorBy=Jf,n.xorWith=Yf,n.zip=Xf,n.zipObject=Xa,n.zipObjectDeep=Za,n.zipWith=Zf,n.entries=Hh,n.entriesIn=Vh,n.extend=Mh,n.extendWith=jh,Ll(n,n),n.add=hp,n.attempt=tp,n.camelCase=Kh,n.capitalize=ul,n.ceil=pp,n.clamp=ol,n.clone=Qs,n.cloneDeep=Vs,n.cloneDeepWith=Ks,n.cloneWith=Hs,n.conformsTo=$s,n.deburr=ll,n.defaultTo=jl,n.divide=dp,n.endsWith=cl,n.eq=Gs,n.escape=fl,n.escapeRegExp=hl,n.every=cs,n.find=nh,n.findIndex=ma,n.findKey=ju,n.findLast=rh,n.findLastIndex=ga,n.findLastKey=Iu,n.floor=mp,n.forEach=ms,n.forEachRight=gs,n.forIn=Pu,n.forInRight=qu,n.forOwn=Bu,n.forOwnRight=Lu,n.get=Uu,n.gt=yh,n.gte=_h,n.has=zu,n.hasIn=Wu,n.head=wa,n.identity=Il,n.includes=vs,n.indexOf=xa,n.inRange=al,n.invoke=Dh,n.isArguments=bh,n.isArray=wh,n.isArrayBuffer=xh,n.isArrayLike=Js,n.isArrayLikeObject=Ys,n.isBoolean=Xs,n.isBuffer=Eh,n.isDate=kh,n.isElement=Zs,n.isEmpty=eu,n.isEqual=tu,n.isEqualWith=nu,n.isError=ru,n.isFinite=iu,n.isFunction=ou,n.isInteger=au,n.isLength=su,n.isMap=Ch,n.isMatch=cu,n.isMatchWith=fu,n.isNaN=hu,n.isNative=pu,n.isNil=mu,n.isNull=du,n.isNumber=gu,n.isObject=uu,n.isObjectLike=lu,n.isPlainObject=vu,n.isRegExp=Sh,n.isSafeInteger=yu,n.isSet=Th,n.isString=_u,n.isSymbol=bu,n.isTypedArray=Nh,n.isUndefined=wu,n.isWeakMap=xu,n.isWeakSet=Eu,n.join=ka,n.kebabCase=$h,n.last=Ca,n.lastIndexOf=Sa,n.lowerCase=Gh,n.lowerFirst=Jh,n.lt=Ah,n.lte=Rh,n.max=Xl,n.maxBy=Zl,n.mean=ec,n.meanBy=tc,n.min=nc,n.minBy=rc,n.stubArray=Ql,n.stubFalse=Hl,n.stubObject=Vl,n.stubString=Kl,n.stubTrue=$l,n.multiply=gp,n.nth=Ta,n.noConflict=Fl,n.noop=Dl,n.now=lh,n.pad=pl,n.padEnd=dl,n.padStart=ml,n.parseInt=gl,n.random=sl,n.reduce=bs,n.reduceRight=ws,n.repeat=vl,n.replace=yl,n.result=Ju,n.round=vp,n.runInContext=e,n.sample=Es,n.size=Ss,n.snakeCase=Yh,n.some=Ts,n.sortedIndex=Ia,n.sortedIndexBy=Pa,n.sortedIndexOf=qa,n.sortedLastIndex=Ba,n.sortedLastIndexBy=La,n.sortedLastIndexOf=Fa,n.startCase=Xh,n.startsWith=bl,n.subtract=yp,n.sum=ic,n.sumBy=oc,n.template=wl,n.times=Gl,n.toFinite=Cu,n.toInteger=Su,n.toLength=Tu,n.toLower=xl,n.toNumber=Nu,n.toSafeInteger=Ru,n.toString=Ou,n.toUpper=El,n.trim=kl,n.trimEnd=Cl,n.trimStart=Sl,n.truncate=Tl,n.unescape=Nl,n.uniqueId=Yl,n.upperCase=Zh,n.upperFirst=ep,n.each=ms,n.eachRight=gs,n.first=wa,Ll(n,function(){var e={};return nr(n,function(t,r){bc.call(n.prototype,r)||(e[r]=t)}),e}(),{chain:!1}),n.VERSION=oe,l(["bind","bindKey","curry","curryRight","partial","partialRight"],function(e){n[e].placeholder=n}),l(["drop","take"],function(e,t){b.prototype[e]=function(n){n=n===ie?1:Gc(Su(n),0);var r=this.__filtered__&&!t?new b(this):this.clone();return r.__filtered__?r.__takeCount__=Jc(n,r.__takeCount__):r.__views__.push({size:Jc(n,Le),type:e+(r.__dir__<0?"Right":"")}),r},b.prototype[e+"Right"]=function(t){return this.reverse()[e](t).reverse()}}),l(["filter","map","takeWhile"],function(e,t){var n=t+1,r=n==Oe||n==je;b.prototype[e]=function(e){var t=this.clone();return t.__iteratees__.push({iteratee:Co(e,3),type:n}),t.__filtered__=t.__filtered__||r,t}}),l(["head","last"],function(e,t){var n="take"+(t?"Right":"");b.prototype[e]=function(){return this[n](1).value()[0]}}),l(["initial","tail"],function(e,t){var n="drop"+(t?"":"Right");b.prototype[e]=function(){return this.__filtered__?new b(this):this[n](1)}}),b.prototype.compact=function(){return this.filter(Il)},b.prototype.find=function(e){return this.filter(e).head()},b.prototype.findLast=function(e){return this.reverse().find(e)},b.prototype.invokeMap=oi(function(e,t){return"function"==typeof e?new b(this):this.map(function(n){return Nr(n,e,t)})}),b.prototype.reject=function(e){return this.filter(qs(Co(e)))},b.prototype.slice=function(e,t){e=Su(e);var n=this;return n.__filtered__&&(e>0||t<0)?new b(n):(e<0?n=n.takeRight(-e):e&&(n=n.drop(e)),t!==ie&&(t=Su(t),n=t<0?n.dropRight(-t):n.take(t-e)),n)},b.prototype.takeRightWhile=function(e){return this.reverse().takeWhile(e).reverse()},b.prototype.toArray=function(){return this.take(Le)},nr(b.prototype,function(e,t){var r=/^(?:filter|find|map|reject)|While$/.test(t),o=/^(?:head|last)$/.test(t),a=n[o?"take"+("last"==t?"Right":""):t],s=o||/^find/.test(t);a&&(n.prototype[t]=function(){var t=this.__wrapped__,u=o?[1]:arguments,l=t instanceof b,c=u[0],f=l||wh(t),h=function(e){var t=a.apply(n,g([e],u));return o&&p?t[0]:t};f&&r&&"function"==typeof c&&1!=c.length&&(l=f=!1);var p=this.__chain__,d=!!this.__actions__.length,m=s&&!p,v=l&&!d;if(!s&&f){t=v?t:new b(this);var y=e.apply(t,u);return y.__actions__.push({func:ns,args:[h],thisArg:ie}),new i(y,p)}return m&&v?e.apply(this,u):(y=this.thru(h),m?o?y.value()[0]:y.value():y)})}),l(["pop","push","shift","sort","splice","unshift"],function(e){var t=mc[e],r=/^(?:push|sort|unshift)$/.test(e)?"tap":"thru",i=/^(?:pop|shift)$/.test(e);n.prototype[e]=function(){var e=arguments;if(i&&!this.__chain__){var n=this.value();return t.apply(wh(n)?n:[],e)}return this[r](function(n){return t.apply(wh(n)?n:[],e)})}}),nr(b.prototype,function(e,t){var r=n[t];if(r){var i=r.name+"",o=lf[i]||(lf[i]=[]);o.push({name:t,func:r})}}),lf[to(ie,ye).name]=[{name:"wrapper",func:ie}],b.prototype.clone=A,b.prototype.reverse=Y,b.prototype.value=te,n.prototype.at=eh,n.prototype.chain=rs,n.prototype.commit=is,n.prototype.next=os,n.prototype.plant=ss,n.prototype.reverse=us,n.prototype.toJSON=n.prototype.valueOf=n.prototype.value=ls,n.prototype.first=n.prototype.head,qc&&(n.prototype[qc]=as),n},kr=Er();sr._=kr,r=function(){return kr}.call(t,n,t,i),!(r!==ie&&(i.exports=r))}).call(this)}).call(t,function(){return this}(),n(86)(e))},function(e,t){function n(e){if("function"!=typeof e)throw new TypeError(r);return function(){var t=arguments;switch(t.length){case 0:return!e.call(this);case 1:return!e.call(this,t[0]);case 2:return!e.call(this,t[0],t[1]);case 3:return!e.call(this,t[0],t[1],t[2])}return!e.apply(this,t)}}var r="Expected a function";e.exports=n},function(e,t){function n(){return[]}e.exports=n},function(e,t,n){ +function r(e){return null==e?"":i(e)}var i=n(626);e.exports=r},function(e,t,n){(function(t){(function(){function t(e){this.tokens=[],this.tokens.links={},this.options=e||c.defaults,this.rules=f.normal,this.options.gfm&&(this.options.tables?this.rules=f.tables:this.rules=f.gfm)}function n(e,t){if(this.options=t||c.defaults,this.links=e,this.rules=h.normal,this.renderer=this.options.renderer||new r,this.renderer.options=this.options,!this.links)throw new Error("Tokens array requires a `links` property.");this.options.gfm?this.options.breaks?this.rules=h.breaks:this.rules=h.gfm:this.options.pedantic&&(this.rules=h.pedantic)}function r(e){this.options=e||{}}function i(e){this.tokens=[],this.token=null,this.options=e||c.defaults,this.options.renderer=this.options.renderer||new r,this.renderer=this.options.renderer,this.renderer.options=this.options}function o(e,t){return e.replace(t?/&/g:/&(?!#?\w+;)/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}function a(e){return e.replace(/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/g,function(e,t){return t=t.toLowerCase(),"colon"===t?":":"#"===t.charAt(0)?"x"===t.charAt(1)?String.fromCharCode(parseInt(t.substring(2),16)):String.fromCharCode(+t.substring(1)):""})}function s(e,t){return e=e.source,t=t||"",function n(r,i){return r?(i=i.source||i,i=i.replace(/(^|[^\[])\^/g,"$1"),e=e.replace(r,i),n):new RegExp(e,t)}}function u(){}function l(e){for(var t,n,r=1;rAn error occured:

"+o(e.message+"",!0)+"
";throw e}}var f={newline:/^\n+/,code:/^( {4}[^\n]+\n*)+/,fences:u,hr:/^( *[-*_]){3,} *(?:\n+|$)/,heading:/^ *(#{1,6}) *([^\n]+?) *#* *(?:\n+|$)/,nptable:u,lheading:/^([^\n]+)\n *(=|-){2,} *(?:\n+|$)/,blockquote:/^( *>[^\n]+(\n(?!def)[^\n]+)*\n*)+/,list:/^( *)(bull) [\s\S]+?(?:hr|def|\n{2,}(?! )(?!\1bull )\n*|\s*$)/,html:/^ *(?:comment *(?:\n|\s*$)|closed *(?:\n{2,}|\s*$)|closing *(?:\n{2,}|\s*$))/,def:/^ *\[([^\]]+)\]: *]+)>?(?: +["(]([^\n]+)[")])? *(?:\n+|$)/,table:u,paragraph:/^((?:[^\n]+\n?(?!hr|heading|lheading|blockquote|tag|def))+)\n*/,text:/^[^\n]+/};f.bullet=/(?:[*+-]|\d+\.)/,f.item=/^( *)(bull) [^\n]*(?:\n(?!\1bull )[^\n]*)*/,f.item=s(f.item,"gm")(/bull/g,f.bullet)(),f.list=s(f.list)(/bull/g,f.bullet)("hr","\\n+(?=\\1?(?:[-*_] *){3,}(?:\\n+|$))")("def","\\n+(?="+f.def.source+")")(),f.blockquote=s(f.blockquote)("def",f.def)(),f._tag="(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:/|[^\\w\\s@]*@)\\b",f.html=s(f.html)("comment",//)("closed",/<(tag)[\s\S]+?<\/\1>/)("closing",/])*?>/)(/tag/g,f._tag)(),f.paragraph=s(f.paragraph)("hr",f.hr)("heading",f.heading)("lheading",f.lheading)("blockquote",f.blockquote)("tag","<"+f._tag)("def",f.def)(),f.normal=l({},f),f.gfm=l({},f.normal,{fences:/^ *(`{3,}|~{3,})[ \.]*(\S+)? *\n([\s\S]*?)\s*\1 *(?:\n+|$)/,paragraph:/^/,heading:/^ *(#{1,6}) +([^\n]+?) *#* *(?:\n+|$)/}),f.gfm.paragraph=s(f.paragraph)("(?!","(?!"+f.gfm.fences.source.replace("\\1","\\2")+"|"+f.list.source.replace("\\1","\\3")+"|")(),f.tables=l({},f.gfm,{nptable:/^ *(\S.*\|.*)\n *([-:]+ *\|[-| :]*)\n((?:.*\|.*(?:\n|$))*)\n*/,table:/^ *\|(.+)\n *\|( *[-:]+[-| :]*)\n((?: *\|.*(?:\n|$))*)\n*/}),t.rules=f,t.lex=function(e,n){var r=new t(n);return r.lex(e)},t.prototype.lex=function(e){return e=e.replace(/\r\n|\r/g,"\n").replace(/\t/g," ").replace(/\u00a0/g," ").replace(/\u2424/g,"\n"),this.token(e,!0)},t.prototype.token=function(e,t,n){for(var r,i,o,a,s,u,l,c,h,e=e.replace(/^ +$/gm,"");e;)if((o=this.rules.newline.exec(e))&&(e=e.substring(o[0].length),o[0].length>1&&this.tokens.push({type:"space"})),o=this.rules.code.exec(e))e=e.substring(o[0].length),o=o[0].replace(/^ {4}/gm,""),this.tokens.push({type:"code",text:this.options.pedantic?o:o.replace(/\n+$/,"")});else if(o=this.rules.fences.exec(e))e=e.substring(o[0].length),this.tokens.push({type:"code",lang:o[2],text:o[3]||""});else if(o=this.rules.heading.exec(e))e=e.substring(o[0].length),this.tokens.push({type:"heading",depth:o[1].length,text:o[2]});else if(t&&(o=this.rules.nptable.exec(e))){for(e=e.substring(o[0].length),u={type:"table",header:o[1].replace(/^ *| *\| *$/g,"").split(/ *\| */),align:o[2].replace(/^ *|\| *$/g,"").split(/ *\| */),cells:o[3].replace(/\n$/,"").split("\n")},c=0;c ?/gm,""),this.token(o,t,!0),this.tokens.push({type:"blockquote_end"});else if(o=this.rules.list.exec(e)){for(e=e.substring(o[0].length),a=o[2],this.tokens.push({type:"list_start",ordered:a.length>1}),o=o[0].match(this.rules.item),r=!1,h=o.length,c=0;c1&&s.length>1||(e=o.slice(c+1).join("\n")+e,c=h-1)),i=r||/\n\n(?!\s*$)/.test(u),c!==h-1&&(r="\n"===u.charAt(u.length-1),i||(i=r)),this.tokens.push({type:i?"loose_item_start":"list_item_start"}),this.token(u,!1,n),this.tokens.push({type:"list_item_end"});this.tokens.push({type:"list_end"})}else if(o=this.rules.html.exec(e))e=e.substring(o[0].length),this.tokens.push({type:this.options.sanitize?"paragraph":"html",pre:!this.options.sanitizer&&("pre"===o[1]||"script"===o[1]||"style"===o[1]),text:o[0]});else if(!n&&t&&(o=this.rules.def.exec(e)))e=e.substring(o[0].length),this.tokens.links[o[1].toLowerCase()]={href:o[2],title:o[3]};else if(t&&(o=this.rules.table.exec(e))){for(e=e.substring(o[0].length),u={type:"table",header:o[1].replace(/^ *| *\| *$/g,"").split(/ *\| */),align:o[2].replace(/^ *|\| *$/g,"").split(/ *\| */),cells:o[3].replace(/(?: *\| *)?\n$/,"").split("\n")},c=0;c])/,autolink:/^<([^ >]+(@|:\/)[^ >]+)>/,url:u,tag:/^|^<\/?\w+(?:"[^"]*"|'[^']*'|[^'">])*?>/,link:/^!?\[(inside)\]\(href\)/,reflink:/^!?\[(inside)\]\s*\[([^\]]*)\]/,nolink:/^!?\[((?:\[[^\]]*\]|[^\[\]])*)\]/,strong:/^__([\s\S]+?)__(?!_)|^\*\*([\s\S]+?)\*\*(?!\*)/,em:/^\b_((?:[^_]|__)+?)_\b|^\*((?:\*\*|[\s\S])+?)\*(?!\*)/,code:/^(`+)\s*([\s\S]*?[^`])\s*\1(?!`)/,br:/^ {2,}\n(?!\s*$)/,del:u,text:/^[\s\S]+?(?=[\\?(?:\s+['"]([\s\S]*?)['"])?\s*/,h.link=s(h.link)("inside",h._inside)("href",h._href)(),h.reflink=s(h.reflink)("inside",h._inside)(),h.normal=l({},h),h.pedantic=l({},h.normal,{strong:/^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,em:/^_(?=\S)([\s\S]*?\S)_(?!_)|^\*(?=\S)([\s\S]*?\S)\*(?!\*)/}),h.gfm=l({},h.normal,{escape:s(h.escape)("])","~|])")(),url:/^(https?:\/\/[^\s<]+[^<.,:;"')\]\s])/,del:/^~~(?=\S)([\s\S]*?\S)~~/,text:s(h.text)("]|","~]|")("|","|https?://|")()}),h.breaks=l({},h.gfm,{br:s(h.br)("{2,}","*")(),text:s(h.gfm.text)("{2,}","*")()}),n.rules=h,n.output=function(e,t,r){var i=new n(t,r);return i.output(e)},n.prototype.output=function(e){for(var t,n,r,i,a="";e;)if(i=this.rules.escape.exec(e))e=e.substring(i[0].length),a+=i[1];else if(i=this.rules.autolink.exec(e))e=e.substring(i[0].length),"@"===i[2]?(n=":"===i[1].charAt(6)?this.mangle(i[1].substring(7)):this.mangle(i[1]),r=this.mangle("mailto:")+n):(n=o(i[1]),r=n),a+=this.renderer.link(r,null,n);else if(this.inLink||!(i=this.rules.url.exec(e))){if(i=this.rules.tag.exec(e))!this.inLink&&/^/i.test(i[0])&&(this.inLink=!1),e=e.substring(i[0].length),a+=this.options.sanitize?this.options.sanitizer?this.options.sanitizer(i[0]):o(i[0]):i[0];else if(i=this.rules.link.exec(e))e=e.substring(i[0].length),this.inLink=!0,a+=this.outputLink(i,{href:i[2],title:i[3]}),this.inLink=!1;else if((i=this.rules.reflink.exec(e))||(i=this.rules.nolink.exec(e))){if(e=e.substring(i[0].length),t=(i[2]||i[1]).replace(/\s+/g," "),t=this.links[t.toLowerCase()],!t||!t.href){a+=i[0].charAt(0),e=i[0].substring(1)+e;continue}this.inLink=!0,a+=this.outputLink(i,t),this.inLink=!1}else if(i=this.rules.strong.exec(e))e=e.substring(i[0].length),a+=this.renderer.strong(this.output(i[2]||i[1]));else if(i=this.rules.em.exec(e))e=e.substring(i[0].length),a+=this.renderer.em(this.output(i[2]||i[1]));else if(i=this.rules.code.exec(e))e=e.substring(i[0].length),a+=this.renderer.codespan(o(i[2],!0));else if(i=this.rules.br.exec(e))e=e.substring(i[0].length),a+=this.renderer.br();else if(i=this.rules.del.exec(e))e=e.substring(i[0].length),a+=this.renderer.del(this.output(i[1]));else if(i=this.rules.text.exec(e))e=e.substring(i[0].length),a+=this.renderer.text(o(this.smartypants(i[0])));else if(e)throw new Error("Infinite loop on byte: "+e.charCodeAt(0))}else e=e.substring(i[0].length),n=o(i[1]),r=n,a+=this.renderer.link(r,null,n);return a},n.prototype.outputLink=function(e,t){var n=o(t.href),r=t.title?o(t.title):null;return"!"!==e[0].charAt(0)?this.renderer.link(n,r,this.output(e[1])):this.renderer.image(n,r,o(e[1]))},n.prototype.smartypants=function(e){return this.options.smartypants?e.replace(/---/g,"—").replace(/--/g,"–").replace(/(^|[-\u2014\/(\[{"\s])'/g,"$1‘").replace(/'/g,"’").replace(/(^|[-\u2014\/(\[{\u2018\s])"/g,"$1“").replace(/"/g,"”").replace(/\.{3}/g,"…"):e},n.prototype.mangle=function(e){if(!this.options.mangle)return e;for(var t,n="",r=e.length,i=0;i.5&&(t="x"+t.toString(16)),n+="&#"+t+";";return n},r.prototype.code=function(e,t,n){if(this.options.highlight){var r=this.options.highlight(e,t);null!=r&&r!==e&&(n=!0,e=r)}return t?'
'+(n?e:o(e,!0))+"\n
\n":"
"+(n?e:o(e,!0))+"\n
"},r.prototype.blockquote=function(e){return"
\n"+e+"
\n"},r.prototype.html=function(e){return e},r.prototype.heading=function(e,t,n){return"'+e+"\n"},r.prototype.hr=function(){return this.options.xhtml?"
\n":"
\n"},r.prototype.list=function(e,t){var n=t?"ol":"ul";return"<"+n+">\n"+e+"\n"},r.prototype.listitem=function(e){return"
  • "+e+"
  • \n"},r.prototype.paragraph=function(e){return"

    "+e+"

    \n"},r.prototype.table=function(e,t){return"\n\n"+e+"\n\n"+t+"\n
    \n"},r.prototype.tablerow=function(e){return"\n"+e+"\n"},r.prototype.tablecell=function(e,t){var n=t.header?"th":"td",r=t.align?"<"+n+' style="text-align:'+t.align+'">':"<"+n+">";return r+e+"\n"},r.prototype.strong=function(e){return""+e+""},r.prototype.em=function(e){return""+e+""},r.prototype.codespan=function(e){return""+e+""},r.prototype.br=function(){return this.options.xhtml?"
    ":"
    "},r.prototype.del=function(e){return""+e+""},r.prototype.link=function(e,t,n){if(this.options.sanitize){try{var r=decodeURIComponent(a(e)).replace(/[^\w:]/g,"").toLowerCase()}catch(e){return""}if(0===r.indexOf("javascript:")||0===r.indexOf("vbscript:"))return""}var i='
    "},r.prototype.image=function(e,t,n){var r=''+n+'":">"},r.prototype.text=function(e){return e},i.parse=function(e,t,n){var r=new i(t,n);return r.parse(e)},i.prototype.parse=function(e){this.inline=new n(e.links,this.options,this.renderer),this.tokens=e.reverse();for(var t="";this.next();)t+=this.tok();return t},i.prototype.next=function(){return this.token=this.tokens.pop()},i.prototype.peek=function(){return this.tokens[this.tokens.length-1]||0},i.prototype.parseText=function(){for(var e=this.token.text;"text"===this.peek().type;)e+="\n"+this.next().text;return this.inline.output(e)},i.prototype.tok=function(){switch(this.token.type){case"space":return"";case"hr":return this.renderer.hr();case"heading":return this.renderer.heading(this.inline.output(this.token.text),this.token.depth,this.token.text);case"code":return this.renderer.code(this.token.text,this.token.lang,this.token.escaped);case"table":var e,t,n,r,i,o="",a="";for(n="",e=0;e.":"function"==typeof t?" Instead of passing a class like Foo, pass React.createElement(Foo) or .":null!=t&&void 0!==t.props?" This may be caused by unintentionally loading two independent copies of React.":"");var a,s=g.createElement(L,{child:t});if(e){var u=x.get(e);a=u._processChildContext(u._context)}else a=T;var c=h(n);if(c){var f=c._currentElement,d=f.props.child;if(R(d,t)){var m=c._renderedComponent.getPublicInstance(),v=r&&function(){r.call(m)};return F._updateRootComponent(c,s,a,n,v),m}F.unmountComponentAtNode(n)}var y=i(n),_=y&&!!o(y),b=l(n),w=_&&!c&&!b,E=F._renderNewRootComponent(s,n,w,a)._renderedComponent.getPublicInstance();return r&&r.call(E),E},render:function(e,t,n){return F._renderSubtreeIntoContainer(null,e,t,n)},unmountComponentAtNode:function(e){c(e)?void 0:p("40");var t=h(e);if(!t){l(e),1===e.nodeType&&e.hasAttribute(M);return!1}return delete q[t._instance.rootID],S.batchedUpdates(u,t,e,!1),!0},_mountImageIntoNode:function(e,t,n,o,a){if(c(t)?void 0:p("41"),o){var s=i(t);if(E.canReuseMarkup(e,s))return void y.precacheNode(n,s);var u=s.getAttribute(E.CHECKSUM_ATTR_NAME);s.removeAttribute(E.CHECKSUM_ATTR_NAME);var l=s.outerHTML;s.setAttribute(E.CHECKSUM_ATTR_NAME,u);var f=e,h=r(f,l),m=" (client) "+f.substring(h-20,h+20)+"\n (server) "+l.substring(h-20,h+20);t.nodeType===I?p("42",m):void 0}if(t.nodeType===I?p("43"):void 0,a.useCreateElement){for(;t.lastChild;)t.removeChild(t.lastChild);d.insertTreeBefore(t,e,null)}else A(t,e),y.precacheNode(n,t.firstChild)}};e.exports=F},function(e,t,n){"use strict";var r=n(7),i=n(83),o=(n(2),{HOST:0,COMPOSITE:1,EMPTY:2,getType:function(e){return null===e||e===!1?o.EMPTY:i.isValidElement(e)?"function"==typeof e.type?o.COMPOSITE:o.HOST:void r("26",e)}});e.exports=o},function(e,t){"use strict";var n={currentScrollLeft:0,currentScrollTop:0,refreshScrollValues:function(e){n.currentScrollLeft=e.x,n.currentScrollTop=e.y}};e.exports=n},function(e,t,n){"use strict";function r(e,t){return null==t?i("30"):void 0,null==e?t:Array.isArray(e)?Array.isArray(t)?(e.push.apply(e,t),e):(e.push(t),e):Array.isArray(t)?[e].concat(t):[e,t]}var i=n(7);n(2);e.exports=r},function(e,t){"use strict";function n(e,t,n){Array.isArray(e)?e.forEach(t,n):e&&t.call(n,e)}e.exports=n},function(e,t,n){"use strict";function r(e){for(var t;(t=e._renderedNodeType)===i.COMPOSITE;)e=e._renderedComponent;return t===i.HOST?e._renderedComponent:t===i.EMPTY?null:void 0}var i=n(352);e.exports=r},function(e,t,n){"use strict";function r(){return!o&&i.canUseDOM&&(o="textContent"in document.documentElement?"textContent":"innerText"),o}var i=n(23),o=null;e.exports=r},function(e,t,n){"use strict";function r(e){if(e){var t=e.getName();if(t)return" Check the render method of `"+t+"`."}return""}function i(e){return"function"==typeof e&&"undefined"!=typeof e.prototype&&"function"==typeof e.prototype.mountComponent&&"function"==typeof e.prototype.receiveComponent}function o(e,t){var n;if(null===e||e===!1)n=l.create(o);else if("object"==typeof e){var s=e,u=s.type;if("function"!=typeof u&&"string"!=typeof u){var h="";h+=r(s._owner),a("130",null==u?u:typeof u,h)}"string"==typeof s.type?n=c.createInternalComponent(s):i(s.type)?(n=new s.type(s),n.getHostNode||(n.getHostNode=n.getNativeNode)):n=new f(s)}else"string"==typeof e||"number"==typeof e?n=c.createInstanceForText(e):a("131",typeof e);return n._mountIndex=0,n._mountImage=null,n}var a=n(7),s=n(14),u=n(759),l=n(347),c=n(349),f=(n(820),n(2),n(5),function(e){this.construct(e)});s(f.prototype,u,{_instantiateReactComponent:o}),e.exports=o},function(e,t){"use strict";function n(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return"input"===t?!!r[e.type]:"textarea"===t}var r={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};e.exports=n},function(e,t,n){"use strict";var r=n(23),i=n(148),o=n(149),a=function(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&3===n.nodeType)return void(n.nodeValue=t)}e.textContent=t};r.canUseDOM&&("textContent"in document.documentElement||(a=function(e,t){return 3===e.nodeType?void(e.nodeValue=t):void o(e,i(t))})),e.exports=a},function(e,t,n){"use strict";function r(e,t){return e&&"object"==typeof e&&null!=e.key?l.escape(e.key):t.toString(36)}function i(e,t,n,o){var h=typeof e;if("undefined"!==h&&"boolean"!==h||(e=null),null===e||"string"===h||"number"===h||"object"===h&&e.$$typeof===s)return n(o,e,""===t?c+r(e,0):t),1;var p,d,m=0,g=""===t?c:t+f;if(Array.isArray(e))for(var v=0;v0)if(t.ended&&!i){var a=new Error("stream.push() after EOF");e.emit("error",a)}else if(t.endEmitted&&i){var u=new Error("stream.unshift() after end event");e.emit("error",u)}else{var l;!t.decoder||i||r||(n=t.decoder.write(n),l=!t.objectMode&&0===n.length),i||(t.reading=!1),l||(t.flowing&&0===t.length&&!t.sync?(e.emit("data",n),e.read(0)):(t.length+=t.objectMode?1:n.length,i?t.buffer.unshift(n):t.buffer.push(n),t.needReadable&&h(e))),d(e,t)}else i||(t.reading=!1);return s(t)}function s(e){return!e.ended&&(e.needReadable||e.length=U?e=U:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}function l(e,t){return e<=0||0===t.length&&t.ended?0:t.objectMode?1:e!==e?t.flowing&&t.length?t.buffer.head.data.length:t.length:(e>t.highWaterMark&&(t.highWaterMark=u(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0))}function c(e,t){var n=null;return j.isBuffer(t)||"string"==typeof t||null===t||void 0===t||e.objectMode||(n=new TypeError("Invalid non-string/buffer chunk")),n}function f(e,t){if(!t.ended){if(t.decoder){var n=t.decoder.end();n&&n.length&&(t.buffer.push(n),t.length+=t.objectMode?1:n.length)}t.ended=!0,h(e)}}function h(e){var t=e._readableState;t.needReadable=!1,t.emittedReadable||(B("emitReadable",t.flowing),t.emittedReadable=!0,t.sync?A(p,e):p(e))}function p(e){B("emit readable"),e.emit("readable"),b(e)}function d(e,t){t.readingMore||(t.readingMore=!0,A(m,e,t))}function m(e,t){for(var n=t.length;!t.reading&&!t.flowing&&!t.ended&&t.length=t.length?(n=t.decoder?t.buffer.join(""):1===t.buffer.length?t.buffer.head.data:t.buffer.concat(t.length),t.buffer.clear()):n=x(e,t.buffer,t.decoder),n}function x(e,t,n){var r;return eo.length?o.length:e;if(i+=a===o.length?o:o.slice(0,e),e-=a,0===e){a===o.length?(++r,n.next?t.head=n.next:t.head=t.tail=null):(t.head=n,n.data=o.slice(a));break}++r}return t.length-=r,i}function k(e,t){var n=I.allocUnsafe(e),r=t.head,i=1;for(r.data.copy(n),e-=r.data.length;r=r.next;){var o=r.data,a=e>o.length?o.length:e;if(o.copy(n,n.length-e,0,a),e-=a,0===e){a===o.length?(++i,r.next?t.head=r.next:t.head=t.tail=null):(t.head=r,r.data=o.slice(a));break}++i}return t.length-=i,n}function C(e){var t=e._readableState;if(t.length>0)throw new Error('"endReadable()" called on non-empty stream');t.endEmitted||(t.ended=!0,A(S,t,e))}function S(e,t){e.endEmitted||0!==e.length||(e.endEmitted=!0,t.readable=!1,t.emit("end"))}function T(e,t){for(var n=0,r=e.length;n=t.highWaterMark||t.ended))return B("read: emitReadable",t.length,t.ended),0===t.length&&t.ended?C(this):h(this),null;if(e=l(e,t),0===e&&t.ended)return 0===t.length&&C(this),null;var r=t.needReadable;B("need readable",r),(0===t.length||t.length-e0?w(e,t):null,null===i?(t.needReadable=!0,e=0):t.length-=e,0===t.length&&(t.ended||(t.needReadable=!0),n!==e&&t.ended&&C(this)),null!==i&&this.emit("data",i),i},o.prototype._read=function(e){this.emit("error",new Error("_read() is not implemented"))},o.prototype.pipe=function(e,n){function i(e){B("onunpipe"),e===h&&a()}function o(){B("onend"),e.end()}function a(){B("cleanup"),e.removeListener("close",l),e.removeListener("finish",c),e.removeListener("drain",v),e.removeListener("error",u),e.removeListener("unpipe",i),h.removeListener("end",o),h.removeListener("end",a),h.removeListener("data",s),y=!0,!p.awaitDrain||e._writableState&&!e._writableState.needDrain||v()}function s(t){B("ondata"),_=!1;var n=e.write(t);!1!==n||_||((1===p.pipesCount&&p.pipes===e||p.pipesCount>1&&T(p.pipes,e)!==-1)&&!y&&(B("false write response, pause",h._readableState.awaitDrain),h._readableState.awaitDrain++,_=!0),h.pause())}function u(t){B("onerror",t),f(),e.removeListener("error",u),0===O(e,"error")&&e.emit("error",t)}function l(){e.removeListener("finish",c),f()}function c(){B("onfinish"),e.removeListener("close",l),f()}function f(){B("unpipe"),h.unpipe(e)}var h=this,p=this._readableState;switch(p.pipesCount){case 0:p.pipes=e;break;case 1:p.pipes=[p.pipes,e];break;default:p.pipes.push(e)}p.pipesCount+=1,B("pipe count=%d opts=%j",p.pipesCount,n);var d=(!n||n.end!==!1)&&e!==t.stdout&&e!==t.stderr,m=d?o:a;p.endEmitted?A(m):h.once("end",m),e.on("unpipe",i);var v=g(h);e.on("drain",v);var y=!1,_=!1;return h.on("data",s),r(e,"error",u),e.once("close",l),e.once("finish",c),e.emit("pipe",h),p.flowing||(B("pipe resume"),h.resume()),e},o.prototype.unpipe=function(e){var t=this._readableState;if(0===t.pipesCount)return this;if(1===t.pipesCount)return e&&e!==t.pipes?this:(e||(e=t.pipes),t.pipes=null,t.pipesCount=0,t.flowing=!1,e&&e.emit("unpipe",this),this);if(!e){var n=t.pipes,r=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var i=0;i>5===6?2:e>>4===14?3:e>>3===30?4:-1}function s(e,t,n){var r=t.length-1;if(r=0?(i>0&&(e.lastNeed=i-1),i):--r=0?(i>0&&(e.lastNeed=i-2),i):--r=0?(i>0&&(2===i?i=0:e.lastNeed=i-3),i):0))}function u(e,t,n){if(128!==(192&t[0]))return e.lastNeed=0,"�".repeat(n);if(e.lastNeed>1&&t.length>1){if(128!==(192&t[1]))return e.lastNeed=1,"�".repeat(n+1);if(e.lastNeed>2&&t.length>2&&128!==(192&t[2]))return e.lastNeed=2,"�".repeat(n+2)}}function l(e){var t=this.lastTotal-this.lastNeed,n=u(this,e,t);return void 0!==n?n:this.lastNeed<=e.length?(e.copy(this.lastChar,t,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(e.copy(this.lastChar,t,0,e.length),void(this.lastNeed-=e.length))}function c(e,t){var n=s(this,e,t);if(!this.lastNeed)return e.toString("utf8",t);this.lastTotal=n;var r=e.length-(n-this.lastNeed);return e.copy(this.lastChar,0,r),e.toString("utf8",t,r)}function f(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+"�".repeat(this.lastTotal-this.lastNeed):t}function h(e,t){if((e.length-t)%2===0){var n=e.toString("utf16le",t);if(n){var r=n.charCodeAt(n.length-1);if(r>=55296&&r<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1],n.slice(0,-1)}return n}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=e[e.length-1],e.toString("utf16le",t,e.length-1)}function p(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed){var n=this.lastTotal-this.lastNeed;return t+this.lastChar.toString("utf16le",0,n)}return t}function d(e,t){var n=(e.length-t)%3;return 0===n?e.toString("base64",t):(this.lastNeed=3-n,this.lastTotal=3,1===n?this.lastChar[0]=e[e.length-1]:(this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1]),e.toString("base64",t,e.length-n))}function m(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function g(e){return e.toString(this.encoding)}function v(e){return e&&e.length?this.write(e):""}var y=n(8).Buffer,_=n(114),b=y.isEncoding||function(e){switch(e=""+e,e&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};t.StringDecoder=o,o.prototype.write=function(e){if(0===e.length)return"";var t,n;if(this.lastNeed){if(t=this.fillLast(e),void 0===t)return"";n=this.lastNeed,this.lastNeed=0}else n=0;return n",'"',"`"," ","\r","\n","\t"],d=["{","}","|","\\","^","`"].concat(p),m=["'"].concat(d),g=["%","/","?",";","#"].concat(m),v=["/","?","#"],y=255,_=/^[+a-z0-9A-Z_-]{0,63}$/,b=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,w={javascript:!0,"javascript:":!0},x={javascript:!0,"javascript:":!0},E={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},k=n(744);r.prototype.parse=function(e,t,n){if(!l.isString(e))throw new TypeError("Parameter 'url' must be a string, not "+typeof e);var r=e.indexOf("?"),i=r!==-1&&r127?"x":I[q];if(!P.match(_)){var L=M.slice(0,T),F=M.slice(T+1),D=I.match(b);D&&(L.push(D[1]),F.unshift(D[2])),F.length&&(s="/"+F.join(".")+s),this.hostname=L.join(".");break}}}this.hostname.length>y?this.hostname="":this.hostname=this.hostname.toLowerCase(),O||(this.hostname=u.toASCII(this.hostname));var U=this.port?":"+this.port:"",z=this.hostname||"";this.host=z+U,this.href+=this.host,O&&(this.hostname=this.hostname.substr(1,this.hostname.length-2),"/"!==s[0]&&(s="/"+s))}if(!w[d])for(var T=0,j=m.length;T0)&&n.host.split("@");C&&(n.auth=C.shift(),n.host=n.hostname=C.shift())}return n.search=e.search,n.query=e.query,l.isNull(n.pathname)&&l.isNull(n.search)||(n.path=(n.pathname?n.pathname:"")+(n.search?n.search:"")),n.href=n.format(),n}if(!w.length)return n.pathname=null,n.search?n.path="/"+n.search:n.path=null,n.href=n.format(),n;for(var S=w.slice(-1)[0],T=(n.host||e.host||w.length>1)&&("."===S||".."===S)||""===S,N=0,A=w.length;A>=0;A--)S=w[A],"."===S?w.splice(A,1):".."===S?(w.splice(A,1),N++):N&&(w.splice(A,1),N--);if(!_&&!b)for(;N--;N)w.unshift("..");!_||""===w[0]||w[0]&&"/"===w[0].charAt(0)||w.unshift(""),T&&"/"!==w.join("/").substr(-1)&&w.push("");var R=""===w[0]||w[0]&&"/"===w[0].charAt(0);if(k){n.hostname=n.host=R?"":w.length?w.shift():"";var C=!!(n.host&&n.host.indexOf("@")>0)&&n.host.split("@");C&&(n.auth=C.shift(),n.host=n.hostname=C.shift())}return _=_||n.host&&w.length,_&&!R&&w.unshift(""),w.length?n.pathname=w.join("/"):(n.pathname=null,n.path=null),l.isNull(n.pathname)&&l.isNull(n.search)||(n.path=(n.pathname?n.pathname:"")+(n.search?n.search:"")),n.auth=e.auth||n.auth,n.slashes=n.slashes||e.slashes,n.href=n.format(),n},r.prototype.parseHost=function(){var e=this.host,t=f.exec(e);t&&(t=t[0],":"!==t&&(this.port=t.substr(1)),e=e.substr(0,e.length-t.length)),e&&(this.hostname=e)}},function(e,t){(function(t){function n(e,t){function n(){if(!i){if(r("throwDeprecation"))throw new Error(t);r("traceDeprecation")?console.trace(t):console.warn(t),i=!0}return e.apply(this,arguments)}if(r("noDeprecation"))return e;var i=!1;return n}function r(e){try{if(!t.localStorage)return!1}catch(e){return!1}var n=t.localStorage[e];return null!=n&&"true"===String(n).toLowerCase()}e.exports=n}).call(t,function(){return this}())},function(e,t,n){var r=n(840),i=n(841),o=i;o.v1=r,o.v4=i,e.exports=o},function(e,t){function n(e,t){var n=t||0,i=r;return i[e[n++]]+i[e[n++]]+i[e[n++]]+i[e[n++]]+"-"+i[e[n++]]+i[e[n++]]+"-"+i[e[n++]]+i[e[n++]]+"-"+i[e[n++]]+i[e[n++]]+"-"+i[e[n++]]+i[e[n++]]+i[e[n++]]+i[e[n++]]+i[e[n++]]+i[e[n++]]}for(var r=[],i=0;i<256;++i)r[i]=(i+256).toString(16).substr(1);e.exports=n},function(e,t){(function(t){var n,r=t.crypto||t.msCrypto;if(r&&r.getRandomValues){var i=new Uint8Array(16);n=function(){return r.getRandomValues(i),i}}if(!n){var o=new Array(16);n=function(){for(var e,t=0;t<16;t++)0===(3&t)&&(e=4294967296*Math.random()),o[t]=e>>>((3&t)<<3)&255;return o}}e.exports=n}).call(t,function(){return this}())},function(e,t){},function(e,t,n){"use strict";var r=n(380),i=n(237),o=n(385),a=n(377);e.exports={Pool:r,Deque:i,PriorityQueue:o,DefaultEvictor:a,createPool:function(e,t){return new r(a,i,o,e,t)}}},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}var i=n(3),o=r(i),a=function(){function e(){(0,o.default)(this,e)}return e.prototype.evict=function(e,t,n){var r=Date.now()-t.lastIdleTime;return e.softIdleTimeoutMillisr;r++)this._createResource();if(this._config.testOnBorrow===!0)for(var i=e-this._testOnBorrowResources.size,o=Math.min(this._availableObjects.length,i),a=0;o>a;a++)this._testOnBorrow();if(this._config.testOnBorrow===!1)for(var s=Math.min(this._availableObjects.length,e),u=0;s>u;u++)this._dispatchResource()}},t.prototype._dispatchPooledResourceToNextWaitingClient=function(e){var t=this._waitingClientsQueue.dequeue();if(void 0===t)return this._addPooledResourceToAvailableObjects(e),!1;var n=new k(e,this._Promise);return this._resourceLoans.set(e.obj,n),e.allocate(),t.resolve(e.obj),!0},t.prototype._trackOperation=function(e,t){var n=this;return t.add(e),e.then(function(r){return t.delete(e),n._Promise.resolve(r)},function(r){return t.delete(e),n._Promise.reject(r)})},t.prototype._createResource=function(){var e=this,t=this._factory.create(),n=this._Promise.resolve(t);this._trackOperation(n,this._factoryCreateOperations).then(function(t){return e._handleNewResource(t),null}).catch(function(t){e.emit(T,t),e._dispense()})},t.prototype._handleNewResource=function(e){var t=new C(e);this._allObjects.add(t),this._dispatchPooledResourceToNextWaitingClient(t)},t.prototype._ensureMinimum=function(){if(this._draining!==!0)for(var e=this._config.min-this._count,t=0;t0){this._evictionIterator.reset();break}var i=r.value,o=this._evictor.evict(t,i,this._availableObjects.length);n++,o===!0&&(this._evictionIterator.remove(),this._destroy(i))}},t.prototype._scheduleEvictorRun=function(){var e=this;this._config.evictionRunIntervalMillis>0&&(this._scheduledEviction=setTimeout(function(){e._evict(),e._scheduleEvictorRun()},this._config.evictionRunIntervalMillis))},t.prototype._descheduleEvictorRun=function(){clearTimeout(this._scheduledEviction),this._scheduledEviction=null},t.prototype.start=function(){this._draining!==!0&&this._started!==!0&&(this._started=!0,this._scheduleEvictorRun(),this._ensureMinimum())},t.prototype.acquire=function(e){if(this._started===!1&&this._config.autostart===!1&&this.start(),this._draining)return this._Promise.reject(new Error("pool is draining and cannot accept work"));if(void 0!==this._config.maxWaitingClients&&this._waitingClientsQueue.length>=this._config.maxWaitingClients)return this._Promise.reject(new Error("max waitingClients count exceeded"));var t=new E(this._config.acquireTimeoutMillis,this._Promise);return this._waitingClientsQueue.enqueue(t,e),this._dispense(),t.promise},t.prototype.isBorrowedResource=function(e){return void 0!==this._resourceLoans.get(e)},t.prototype.release=function(e){var t=this._resourceLoans.get(e);if(void 0===t)return this._Promise.reject(new Error("Resource not currently part of this pool"));this._resourceLoans.delete(e),t.resolve();var n=t.pooledResource;return n.deallocate(),this._addPooledResourceToAvailableObjects(n),this._dispense(),this._Promise.resolve()},t.prototype.destroy=function(e){var t=this._resourceLoans.get(e);if(void 0===t)return this._Promise.reject(new Error("Resource not currently part of this pool"));this._resourceLoans.delete(e),t.resolve();var n=t.pooledResource;return n.deallocate(),this._destroy(n),this._dispense(),this._Promise.resolve()},t.prototype._addPooledResourceToAvailableObjects=function(e){e.idle(),this._config.fifo===!0?this._availableObjects.push(e):this._availableObjects.unshift(e)},t.prototype.drain=function(){var e=this;return this._draining=!0,this.__allResourceRequestsSettled().then(function(){return e.__allResourcesReturned()}).then(function(){e._descheduleEvictorRun()})},t.prototype.__allResourceRequestsSettled=function(){return this._waitingClientsQueue.length>0?S(this._waitingClientsQueue.tail.promise):this._Promise.resolve()},t.prototype.__allResourcesReturned=function(){var e=(0,s.default)(this._resourceLoans.values()).map(function(e){return e.promise}).map(S);return this._Promise.all(e)},t.prototype.clear=function(){var e=this,t=(0,s.default)(this._factoryCreateOperations).map(S);return this._Promise.all(t).then(function(){for(var t=e._availableObjects,n=Array.isArray(t),r=0,t=n?t:(0,o.default)(t);;){var i;if(n){if(r>=t.length)break;i=t[r++]}else{if(r=t.next(),r.done)break;i=r.value}var a=i;e._destroy(a)}var u=(0,s.default)(e._factoryDestroyOperations).map(S);return e._Promise.all(u)})},(0,m.default)(t,[{key:"_potentiallyAllocableResourceCount",get:function(){return this._availableObjects.length+this._testOnBorrowResources.size+this._testOnReturnResources.size+this._factoryCreateOperations.size}},{key:"_count",get:function(){return this._allObjects.size+this._factoryCreateOperations.size}},{key:"spareResourceCapacity",get:function(){return this._config.max-(this._allObjects.size+this._factoryCreateOperations.size)}},{key:"size",get:function(){return this._count}},{key:"available",get:function(){return this._availableObjects.length}},{key:"borrowed",get:function(){return this._resourceLoans.size}},{key:"pending",get:function(){return this._waitingClientsQueue.length}},{key:"max",get:function(){return this._config.max}},{key:"min",get:function(){return this._config.min}}]),t}(b);e.exports=A},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}var i=n(154),o=r(i),a=n(3),s=r(a),u=function e(){(0,s.default)(this,e),this.fifo=!0,this.priorityRange=1,this.testOnBorrow=!1,this.testOnReturn=!1,this.autostart=!0,this.evictionRunIntervalMillis=0,this.numTestsPerEvictionRun=3,this.softIdleTimeoutMillis=-1,this.idleTimeoutMillis=3e4,this.acquireTimeoutMillis=null,this.maxWaitingClients=null,this.min=null,this.max=null,this.Promise=o.default};e.exports=u},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}var i=n(3),o=r(i),a=n(381),s=function e(t){(0,o.default)(this,e);var n=new a;t=t||{},this.fifo="boolean"==typeof t.fifo?t.fifo:n.fifo,this.priorityRange=t.priorityRange||n.priorityRange,this.testOnBorrow="boolean"==typeof t.testOnBorrow?t.testOnBorrow:n.testOnBorrow,this.testOnReturn="boolean"==typeof t.testOnReturn?t.testOnReturn:n.testOnReturn,this.autostart="boolean"==typeof t.autostart?t.autostart:n.autostart,t.acquireTimeoutMillis&&(this.acquireTimeoutMillis=parseInt(t.acquireTimeoutMillis,10)),t.maxWaitingClients&&(this.maxWaitingClients=parseInt(t.maxWaitingClients,10)),this.max=parseInt(t.max,10),this.min=parseInt(t.min,10),this.max=Math.max(isNaN(this.max)?1:this.max,1),this.min=Math.min(isNaN(this.min)?0:this.min,this.max),this.evictionRunIntervalMillis=t.evictionRunIntervalMillis||n.evictionRunIntervalMillis,this.numTestsPerEvictionRun=t.numTestsPerEvictionRun||n.numTestsPerEvictionRun,this.softIdleTimeoutMillis=t.softIdleTimeoutMillis||n.softIdleTimeoutMillis,this.idleTimeoutMillis=t.idleTimeoutMillis||n.idleTimeoutMillis,this.Promise=null!=t.Promise?t.Promise:n.Promise};e.exports=s},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}var i=n(3),o=r(i),a=n(384),s=function(){function e(t){(0,o.default)(this,e),this.creationTime=Date.now(),this.lastReturnTime=null,this.lastBorrowTime=null,this.lastIdleTime=null,this.obj=t,this.state=a.IDLE}return e.prototype.allocate=function(){this.lastBorrowTime=Date.now(),this.state=a.ALLOCATED},e.prototype.deallocate=function(){this.lastReturnTime=Date.now(),this.state=a.IDLE},e.prototype.invalidate=function(){this.state=a.INVALID},e.prototype.test=function(){this.state=a.VALIDATION},e.prototype.idle=function(){this.lastIdleTime=Date.now(),this.state=a.IDLE},e.prototype.returning=function(){this.state=a.RETURNING},e}();e.exports=s},function(e,t){"use strict";var n={ALLOCATED:"ALLOCATED",IDLE:"IDLE",INVALID:"INVALID",RETURNING:"RETURNING",VALIDATION:"VALIDATION"};e.exports=n},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}var i=n(3),o=r(i),a=n(112),s=r(a),u=n(386),l=function(){function e(t){(0,o.default)(this,e),this._size=Math.max(0|+t,1),this._slots=[];for(var n=0;n=this._size)&&(t=this._size-1),this._slots[t].push(e)},e.prototype.dequeue=function(){for(var e=0,t=this._slots.length;e0)return this._slots[e].head}},{key:"tail",get:function(){for(var e=this._slots.length-1;e>=0;e--)if(this._slots[e].length>0)return this._slots[e].tail}}]),e}();e.exports=l},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}var i=n(3),o=r(i),a=n(11),s=r(a),u=n(10),l=r(u),c=n(238),f=n(237),h=function(e){function t(){return(0,o.default)(this,t),(0,s.default)(this,e.apply(this,arguments))}return(0,l.default)(t,e),t.prototype.push=function(e){var t=c.createNode(e);e.promise.catch(this._createTimeoutRejectionHandler(t)),this._list.insertEnd(t)},t.prototype._createTimeoutRejectionHandler=function(e){var t=this;return function(n){"TimeoutError"===n.name&&t._list.remove(e)}},t}(f);e.exports=h},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}var i=n(154),o=r(i),a=n(3),s=r(a),u=n(11),l=r(u),c=n(10),f=r(c),h=n(236),p=function(e){function t(n,r){(0,s.default)(this,t);var i=(0,l.default)(this,e.call(this,o.default));return i._creationTimestamp=Date.now(),i.pooledResource=n,i}return(0,f.default)(t,e),t.prototype.reject=function(){},t}(h);e.exports=p},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e,t){return function(){return e.apply(t,arguments)}}var o=n(154),a=r(o),s=n(3),u=r(s),l=n(11),c=r(l),f=n(10),h=r(f),p=n(236),d=n(239),m=function(e){function t(n,r){(0,u.default)(this,t);var i=(0,c.default)(this,e.call(this,a.default));return i._creationTimestamp=Date.now(),i._timeout=null,void 0!==n&&i.setTimeout(n),i}return(0,h.default)(t,e),t.prototype.setTimeout=function(e){function t(t){return e.apply(this,arguments)}return t.toString=function(){return e.toString()},t}(function(e){if(this._state===t.PENDING){var n=parseInt(e,10);if(isNaN(n)||n<=0)throw new Error("delay must be a positive int");var r=Date.now()-this._creationTimestamp;this._timeout&&this.removeTimeout(),this._timeout=setTimeout(i(this._fireTimeout,this),Math.max(n-r,0))}}),t.prototype.removeTimeout=function(){clearTimeout(this._timeout),this._timeout=null},t.prototype._fireTimeout=function(){this.reject(new d.TimeoutError("ResourceRequest timed out"))},t.prototype.reject=function(t){this.removeTimeout(),e.prototype.reject.call(this,t)},t.prototype.resolve=function(t){this.removeTimeout(),e.prototype.resolve.call(this,t)},t}(p);e.exports=m},function(e,t){"use strict";e.exports=function(e){if("function"!=typeof e.create)throw new TypeError("factory.create must be a function");if("function"!=typeof e.destroy)throw new TypeError("factory.destroy must be a function");if("undefined"!=typeof e.validate&&"function"!=typeof e.validate)throw new TypeError("factory.validate must be a function")}},function(e,t){"use strict";function n(){}t.reflector=function(e){return e.then(n,n)}},function(e,t,n){(function(e){"use strict";function t(e){return e&&e.__esModule?e:{default:e}}function r(){var e=new p.default,t={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],gray:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};t.color.grey=t.color.gray;for(var n=(0,f.default)(t),r=Array.isArray(n),i=0,n=r?n:(0,l.default)(n);;){var a;if(r){if(i>=n.length)break;a=n[i++]}else{if(i=n.next(),i.done)break;a=i.value}for(var u=a,c=t[u],h=(0,f.default)(c),y=Array.isArray(h),_=0,h=y?h:(0,l.default)(h);;){var b;if(y){if(_>=h.length)break;b=h[_++]}else{if(_=h.next(),_.done)break;b=_.value}var w=b,x=c[w];t[w]={open:"["+x[0]+"m",close:"["+x[1]+"m"},c[w]=t[w],e.set(x[0],x[1])}(0,s.default)(t,u,{value:c,enumerable:!1}),Object.defineProperty(t,"codes",{value:e,enumerable:!1})}var E=function(e,t,n){return[e,t,n]};t.color.close="",t.bgColor.close="",t.color.ansi={},t.color.ansi256={},t.color.ansi16m={rgb:v(E,0)},t.bgColor.ansi={},t.bgColor.ansi256={},t.bgColor.ansi16m={rgb:v(E,10)};for(var k=(0,f.default)(d),C=Array.isArray(k),S=0,k=C?k:(0,l.default)(k);;){var T;if(C){if(S>=k.length)break;T=k[S++]}else{if(S=k.next(),S.done)break;T=S.value}var N=T;if("object"===(0,o.default)(d[N])){var A=d[N];"ansi16"in A&&(t.color.ansi[N]=m(A.ansi16,0),t.bgColor.ansi[N]=m(A.ansi16,10)),"ansi256"in A&&(t.color.ansi256[N]=g(A.ansi256,0),t.bgColor.ansi256[N]=g(A.ansi256,10)),"rgb"in A&&(t.color.ansi16m[N]=v(A.rgb,0),t.bgColor.ansi16m[N]=v(A.rgb,10))}}return t}var i=n(27),o=t(i),a=n(242),s=t(a),u=n(63),l=t(u),c=n(51),f=t(c),h=n(152),p=t(h),d=n(460),m=function(e,t){return function(){var n=e.apply(d,arguments);return"["+(n+t)+"m"}},g=function(e,t){return function(){var n=e.apply(d,arguments);return"["+(38+t)+";5;"+n+"m"}},v=function(e,t){return function(){var n=e.apply(d,arguments);return"["+(38+t)+";2;"+n[0]+";"+n[1]+";"+n[2]+"m"}};Object.defineProperty(e,"exports",{enumerable:!0,get:r})}).call(t,n(86)(e))},function(e,t,n){(function(t){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e,t){t=t||{};var n=E?E.level:0;e.level=void 0===t.level?n:t.level,e.enabled="enabled"in t?t.enabled:e.level>0}function o(e){if(!this||!(this instanceof o)||this.template){var t={};return i(t,e),t.template=function(){var e=[].slice.call(arguments);return u.apply(null,[t.template].concat(e))},(0,g.default)(t,o.prototype),(0,g.default)(t.template,t),t.template.constructor=o,t.template}i(this,e)}function a(e,t,n){var r=function e(){return s.apply(e,arguments)};r._styles=e,r._empty=t;var i=this;return Object.defineProperty(r,"level",{enumerable:!0,get:function(){return i.level},set:function(e){i.level=e}}),Object.defineProperty(r,"enabled",{enumerable:!0,get:function(){return i.enabled},set:function(e){i.enabled=e}}),r.hasGrey=this.hasGrey||"gray"===n||"grey"===n,r.__proto__=K,r}function s(){var e=arguments,t=e.length,n=String(arguments[0]);if(0===t)return"";if(t>1)for(var r=1;r=o.length)break;u=o[s++]}else{if(s=o.next(),s.done)break;u=s.value}var l=u;n=l.open+n.replace(l.closeRe,l.open)+l.close,n=n.replace(/\r?\n/g,l.close+"$&"+l.open)}return x.dim.open=i,n}function u(e,t){if(!Array.isArray(t))return[].slice.call(arguments,1).join(" ");for(var n=[].slice.call(arguments,2),r=[t.raw[0]],i=1;i=R.length)return"break";j=R[M++]}else{if(M=R.next(),M.done)return"break";j=M.value}var e=j;x[e].closeRe=new RegExp(w(x[e].close),"g"),N[e]={get:function(){var t=x[e];return a.call(this,this._styles?this._styles.concat(t):[t],this._empty,e)}}},R=(0,c.default)(x),O=Array.isArray(R),M=0,R=O?R:(0,h.default)(R);;){var j,I=A();if("break"===I)break}N.visible={get:function(){return a.call(this,this._styles||[],!0,"visible")}},x.color.closeRe=new RegExp(w(x.color.close),"g");var P=function(){if(B){if(L>=q.length)return"break";F=q[L++]}else{if(L=q.next(),L.done)return"break";F=L.value}var e=F;return T.has(e)?"continue":void(N[e]={get:function(){var t=this.level;return function(){var n=x.color[S[t]][e].apply(null,arguments),r={open:n,close:x.color.close,closeRe:x.color.closeRe};return a.call(this,this._styles?this._styles.concat(r):[r],this._empty,e)}}})};e:for(var q=(0,c.default)(x.color.ansi),B=Array.isArray(q),L=0,q=B?q:(0,h.default)(q);;){var F,D=P();switch(D){case"break":break e;case"continue":continue}}x.bgColor.closeRe=new RegExp(w(x.bgColor.close),"g");var U=function(){if(W){if(Q>=z.length)return"break";H=z[Q++]}else{if(Q=z.next(),Q.done)return"break";H=Q.value}var e=H;if(T.has(e))return"continue";var t="bg"+e[0].toUpperCase()+e.slice(1);N[t]={get:function(){var t=this.level;return function(){var n=x.bgColor[S[t]][e].apply(null,arguments),r={open:n,close:x.bgColor.close,closeRe:x.bgColor.closeRe};return a.call(this,this._styles?this._styles.concat(r):[r],this._empty,e)}}}};e:for(var z=(0,c.default)(x.bgColor.ansi),W=Array.isArray(z),Q=0,z=W?z:(0,h.default)(z);;){var H,V=U();switch(V){case"break":break e;case"continue":continue}}var K=(0,d.default)(function(){},N);(0,d.default)(o.prototype,N),e.exports=o(),e.exports.supportsColor=E,e.exports.default=e.exports}).call(t,n(17))},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e){return"u"===e[0]&&5===e.length||"x"===e[0]&&3===e.length?String.fromCharCode(parseInt(e.slice(1),16)):y.get(e)||e}function o(e,t){for(var n=[],r=t.trim().split(/\s*,\s*/g),o=void 0,a=r,s=Array.isArray(a),u=0,a=s?a:(0,f.default)(a);;){var l;if(s){if(u>=a.length)break;l=a[u++]}else{if(u=a.next(),u.done)break;l=u.value}var c=l;if(isNaN(c)){if(!(o=c.match(g)))throw new Error("Invalid Chalk template style argument: "+c+" (in style '"+e+"')");n.push(o[2].replace(v,function(e,t,n){return t?i(t):n}))}else n.push(Number(c))}return n}function a(e){m.lastIndex=0;for(var t=[],n=void 0;null!==(n=m.exec(e));){var r=n[1];if(n[2]){var i=o(r,n[2]);t.push([r].concat(i))}else t.push([r])}return t}function s(e,t){for(var n={},r=t,i=Array.isArray(r),o=0,r=i?r:(0,f.default)(r);;){var a;if(i){if(o>=r.length)break;a=r[o++]}else{if(o=r.next(),o.done)break;a=o.value}for(var s=a,u=s.styles,c=Array.isArray(u),h=0,u=c?u:(0,f.default)(u);;){var p;if(c){if(h>=u.length)break;p=u[h++]}else{if(h=u.next(),h.done)break;p=h.value}var d=p;n[d[0]]=s.inverse?null:d.slice(1)}}for(var m=e,g=(0,l.default)(n),v=Array.isArray(g),y=0,g=v?g:(0,f.default)(g);;){var _;if(v){if(y>=g.length)break;_=g[y++]}else{if(y=g.next(),y.done)break;_=y.value}var b=_;if(Array.isArray(n[b])){if(!(b in m))throw new Error("Unknown Chalk style: "+b);m=n[b].length>0?m[b].apply(m,n[b]):m[b]}}return m}var u=n(51),l=r(u),c=n(63),f=r(c),h=n(152),p=r(h),d=/(?:\\(u[a-f\d]{4}|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi,m=/(?:^|\.)(\w+)(?:\(([^)]*)\))?/g,g=/^(['"])((?:\\.|(?!\1)[^\\])*)\1$/,v=/\\(u[a-f\d]{4}|x[a-f\d]{2}|.)|([^\\])/gi,y=new p.default([["n","\n"],["r","\r"],["t","\t"],["b","\b"],["f","\f"],["v","\v"],["0","\0"],["\\","\\"],["e",""],["a",""]]);e.exports=function(e,t){var n=[],r=[],o=[];if(t.replace(d,function(t,u,l,c,f,h){if(u)o.push(i(u));else if(c){var p=o.join("");o=[],r.push(0===n.length?p:s(e,n)(p)),n.push({inverse:l,styles:a(c)})}else if(f){if(0===n.length)throw new Error("Found extraneous } in Chalk template literal");r.push(s(e,n)(o.join(""))),o=[],n.pop()}else o.push(h)}),r.push(o.join("")),n.length>0){var u="Chalk template literal is missing "+n.length+" closing bracket"+(1===n.length?"":"s")+" (`}`)";throw new Error(u)}return r.join("")}},function(e,t){"use strict";e.exports="0.14.2"},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e,t){for(var n=t.split("."),r=n[0],i=n[1],o=[],a=0;a0&&(a=a.concat(i)),f.default.createElement("div",{id:e+"-"+n},f.default.createElement("b",null,n),r&&" — ",r&&f.default.createElement("code",null,r),a)},t}(c.Component);d.contextTypes={section:c.PropTypes.string.isRequired},d.propTypes={example:c.PropTypes.string,children:c.PropTypes.array,description:c.PropTypes.string,method:c.PropTypes.string.isRequired},t.default=d,e.exports=t.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=n(3),o=r(i),a=n(11),s=r(a),u=n(10),l=r(u),c=n(20),f=r(c),h=n(274),p=r(h),d=n(241),m=function(e){function t(){var n,r,i;(0,o.default)(this,t);for(var a=arguments.length,u=Array(a),l=0;l {\n qb.select('*').from('books').where('author', 'Test')\n }).select('*').from('with_alias')\n "}]},{type:"method",method:"withSchema",example:".withSchema([schemaName])",description:"Specifies the schema to be used as prefix of table name.",children:[{type:"runnable",content:"\n knex.withSchema('public').select('*').from('users')\n "}]},{type:"heading",size:"md",content:"Where Clauses",href:"Builder-wheres"},{type:"text",content:["Several methods exist to assist in dynamic where clauses. In many places functions may be used in place of values, constructing subqueries. In most places existing knex queries may be used to compose sub-queries, etc. Take a look at a few of the examples for each method for instruction on use:","**Important:** Supplying knex with an `undefined` value to any of the `where` functions will cause knex to throw an error during sql compilation. This is both for yours and our sake. Knex cannot know what to do with undefined values in a where clause, and generally it would be a programmatic error to supply one to begin with. The error will throw a message containing the type of query and the compiled query-string. Example:"]},{type:"runnable",content:"\n knex('accounts')\n .where('login', undefined)\n .select()\n .toSQL()\n "},{type:"method",method:"where",example:".where(~mixed~)",children:[]},{type:"text",content:"Object Syntax:"},{type:"runnable",content:"\n knex('users').where({\n first_name: 'Test',\n last_name: 'User'\n }).select('id')\n "},{type:"text",content:"Key, Value:"},{type:"runnable",content:"\n knex('users').where('id', 1)\n "},{type:"text",content:"Grouped Chain:"},{type:"runnable",content:"\n knex('users').where(function() {\n this.where('id', 1).orWhere('id', '>', 10)\n }).orWhere({name: 'Tester'})\n "},{type:"text",content:"Operator:"},{type:"runnable",content:"\n knex('users').where('columnName', 'like', '%rowlikeme%')\n "},{type:"text",content:"The above query demonstrates the common use case of returning all users for which a specific pattern appears within a designated column."},{type:"runnable",content:"\n knex('users').where('votes', '>', 100)\n "},{type:"runnable",content:"\n var subquery = knex('users').where('votes', '>', 100).andWhere('status', 'active').orWhere('name', 'John').select('id');\n\n knex('accounts').where('id', 'in', subquery)\n "},{type:"text",content:".orWhere with an object automatically wraps the statement and creates an `or (and - and - and)` clause"},{type:"runnable",content:"\n knex('users').where('id', 1).orWhere({votes: 100, user: 'knex'})\n "},{type:"method",method:"whereNot",example:".whereNot(~mixed~)",children:[]},{type:"text",content:"Object Syntax:"},{type:"runnable",content:"\n knex('users').whereNot({\n first_name: 'Test',\n last_name: 'User'\n }).select('id')\n "},{type:"text",content:"Key, Value:"},{type:"runnable",content:"\n knex('users').whereNot('id', 1)\n "},{type:"text",content:"Grouped Chain:"},{type:"runnable",content:"\n knex('users').whereNot(function() {\n this.where('id', 1).orWhereNot('id', '>', 10)\n }).orWhereNot({name: 'Tester'})\n "},{type:"text",content:"Operator:"},{type:"runnable",content:"\n knex('users').whereNot('votes', '>', 100)\n "},{type:"text",content:'CAVEAT: WhereNot is not suitable for "in" and "between" type subqueries. You should use "not in" and "not between" instead.'},{type:"runnable",content:"\n var subquery = knex('users')\n .whereNot('votes', '>', 100)\n .andWhere('status', 'active')\n .orWhere('name', 'John')\n .select('id');\n\n knex('accounts').where('id', 'not in', subquery)\n "},{type:"method",method:"whereIn",example:".whereIn(column, array|callback|builder) / .orWhereIn",description:"Shorthand for .where('id', 'in', obj), the .whereIn and .orWhereIn methods add a \"where in\" clause to the query.",children:[{type:"runnable",content:"\n knex.select('name').from('users')\n .whereIn('id', [1, 2, 3])\n .orWhereIn('id', [4, 5, 6])\n "},{type:"runnable",content:"\n knex.select('name').from('users')\n .whereIn('account_id', function() {\n this.select('id').from('accounts');\n })\n "},{type:"runnable",content:"\n var subquery = knex.select('id').from('accounts');\n\n knex.select('name').from('users')\n .whereIn('account_id', subquery)\n "}]},{type:"method",method:"whereNotIn",example:".whereNotIn(column, array|callback|builder) / .orWhereNotIn",children:[{type:"runnable",content:"\n knex('users').whereNotIn('id', [1, 2, 3])\n "},{type:"runnable",content:"\n knex('users').where('name', 'like', '%Test%').orWhereNotIn('id', [1, 2, 3])\n "}]},{type:"method",method:"whereNull",example:".whereNull(column) / .orWhereNull",children:[{type:"runnable",content:"\n knex('users').whereNull('updated_at')\n "}]},{type:"method",method:"whereNotNull",example:".whereNotNull(column) / .orWhereNotNull",children:[{type:"runnable",content:"\n knex('users').whereNotNull('created_at')\n "}]},{type:"method",method:"whereExists",example:".whereExists(builder | callback) / .orWhereExists",children:[{type:"runnable",content:"\n knex('users').whereExists(function() {\n this.select('*').from('accounts').whereRaw('users.account_id = accounts.id');\n })\n "},{type:"runnable",content:"\n knex('users').whereExists(knex.select('*').from('accounts').whereRaw('users.account_id = accounts.id'))\n "}]},{type:"method",method:"whereNotExists",example:".whereNotExists(builder | callback) / .orWhereNotExists",children:[{type:"runnable",content:"\n knex('users').whereNotExists(function() {\n this.select('*').from('accounts').whereRaw('users.account_id = accounts.id');\n })\n "},{type:"runnable",content:"\n knex('users').whereNotExists(knex.select('*').from('accounts').whereRaw('users.account_id = accounts.id'))\n "}]},{type:"method",method:"whereBetween",example:".whereBetween(column, range) / .orWhereBetween",children:[{type:"runnable",content:"\n knex('users').whereBetween('votes', [1, 100])\n "}]},{type:"method",method:"whereNotBetween",example:".whereNotBetween(column, range) / .orWhereNotBetween",children:[{type:"runnable",content:"\n knex('users').whereNotBetween('votes', [1, 100])\n "}]},{type:"method",method:"whereRaw",example:".whereRaw(query, [bindings])",description:"Convenience helper for .where(knex.raw(query)).",children:[{type:"runnable",content:"\n knex('users').whereRaw('id = ?', [1])\n "}]},{type:"heading",size:"md",content:"Join Methods"},{type:"text",content:"Several methods are provided which assist in building joins."},{type:"method",method:"join",example:".join(table, first, [operator], second)",description:"The join builder can be used to specify joins between tables, with the first argument being the joining table, the next three arguments being the first join column, the join operator and the second join column, respectively.",children:[{type:"runnable",content:"\n knex('users')\n .join('contacts', 'users.id', '=', 'contacts.user_id')\n .select('users.id', 'contacts.phone')\n "},{type:"runnable",content:"\n knex('users')\n .join('contacts', 'users.id', 'contacts.user_id')\n .select('users.id', 'contacts.phone')\n "}]},{type:"text",content:"For grouped joins, specify a function as the second argument for the join query, and use `on` with `orOn` or `andOn` to create joins that are grouped with parentheses."},{type:"runnable",content:"\n knex.select('*').from('users').join('accounts', function() {\n this.on('accounts.id', '=', 'users.account_id').orOn('accounts.owner_id', '=', 'users.id')\n })\n "},{type:"text",content:"For nested join statements, specify a function as first argument of `on`, `orOn` or `andOn`"},{type:"runnable",content:"\n knex.select('*').from('users').join('accounts', function() {\n this.on(function() {\n this.on('accounts.id', '=', 'users.account_id')\n this.orOn('accounts.owner_id', '=', 'users.id')\n })\n })\n "},{type:"text",content:"It is also possible to use an object to represent the join syntax."},{type:"runnable",content:"\n knex.select('*').from('users').join('accounts', {'accounts.id': 'users.account_id'})\n "},{type:"text",content:"If you need to use a literal value (string, number, or boolean) in a join instead of a column, use `knex.raw`."},{type:"runnable",content:"\n knex.select('*').from('users').join('accounts', 'accounts.type', knex.raw('?', ['admin']))\n "},{type:"method",method:"innerJoin",example:".innerJoin(table, ~mixed~)",description:"",children:[{type:"runnable",content:"\n knex.from('users').innerJoin('accounts', 'users.id', 'accounts.user_id')\n "},{type:"runnable",content:"\n knex.table('users').innerJoin('accounts', 'users.id', '=', 'accounts.user_id')\n "},{type:"runnable",content:"\n knex('users').innerJoin('accounts', function() {\n this.on('accounts.id', '=', 'users.account_id').orOn('accounts.owner_id', '=', 'users.id')\n })\n "}]},{type:"method",method:"leftJoin",example:".leftJoin(table, ~mixed~)",description:"",children:[{type:"runnable",content:"\n knex.select('*').from('users').leftJoin('accounts', 'users.id', 'accounts.user_id')\n "},{type:"runnable",content:"\n knex.select('*').from('users').leftJoin('accounts', function() {\n this.on('accounts.id', '=', 'users.account_id').orOn('accounts.owner_id', '=', 'users.id')\n })\n "}]},{type:"method",method:"leftOuterJoin",example:".leftOuterJoin(table, ~mixed~)",description:"",children:[{type:"runnable",content:"\n knex.select('*').from('users').leftOuterJoin('accounts', 'users.id', 'accounts.user_id')\n "},{type:"runnable",content:"\n knex.select('*').from('users').leftOuterJoin('accounts', function() {\n this.on('accounts.id', '=', 'users.account_id').orOn('accounts.owner_id', '=', 'users.id')\n })\n "}]},{type:"method",method:"rightJoin",example:".rightJoin(table, ~mixed~)",description:"",children:[{type:"runnable",content:"\n knex.select('*').from('users').rightJoin('accounts', 'users.id', 'accounts.user_id')\n "},{type:"runnable",content:"\n knex.select('*').from('users').rightJoin('accounts', function() {\n this.on('accounts.id', '=', 'users.account_id').orOn('accounts.owner_id', '=', 'users.id')\n })\n "}]},{type:"method",method:"rightOuterJoin",example:".rightOuterJoin(table, ~mixed~)",description:"",children:[{type:"runnable",content:"\n knex.select('*').from('users').rightOuterJoin('accounts', 'users.id', 'accounts.user_id')\n "},{type:"runnable",content:"\n knex.select('*').from('users').rightOuterJoin('accounts', function() {\n this.on('accounts.id', '=', 'users.account_id').orOn('accounts.owner_id', '=', 'users.id')\n })\n "}]},{type:"method",method:"outerJoin",example:".outerJoin(table, ~mixed~)",description:"",children:[{type:"runnable",content:"\n knex.select('*').from('users').outerJoin('accounts', 'users.id', 'accounts.user_id')\n "},{type:"runnable",content:"\n knex.select('*').from('users').outerJoin('accounts', function() {\n this.on('accounts.id', '=', 'users.account_id').orOn('accounts.owner_id', '=', 'users.id')\n })\n "}]},{type:"method",method:"fullOuterJoin",example:".fullOuterJoin(table, ~mixed~)",description:"",children:[{type:"runnable",content:"\n knex.select('*').from('users').fullOuterJoin('accounts', 'users.id', 'accounts.user_id')\n "},{type:"runnable",content:"\n knex.select('*').from('users').fullOuterJoin('accounts', function() {\n this.on('accounts.id', '=', 'users.account_id').orOn('accounts.owner_id', '=', 'users.id')\n })\n "}]},{type:"method",method:"crossJoin",example:".crossJoin(table, ~mixed~)",description:"Cross join conditions are only supported in MySQL and SQLite3. For join conditions rather use innerJoin.",children:[{type:"runnable",content:"\n knex.select('*').from('users').crossJoin('accounts')\n "},{type:"runnable",content:"\n knex.select('*').from('users').crossJoin('accounts', 'users.id', 'accounts.user_id')\n "},{type:"runnable",content:"\n knex.select('*').from('users').crossJoin('accounts', function() {\n this.on('accounts.id', '=', 'users.account_id').orOn('accounts.owner_id', '=', 'users.id')\n })\n "}]},{type:"method",method:"joinRaw",example:".joinRaw(sql, [bindings])",description:"",children:[{type:"runnable",content:"\n knex.select('*').from('accounts').joinRaw('natural full join table1').where('id', 1)\n "},{type:"runnable",content:"\n knex.select('*').from('accounts').join(knex.raw('natural full join table1')).where('id', 1)\n "}]},{type:"heading",size:"md",content:"OnClauses",href:"Builder-on"},{type:"method",method:"onIn",example:".onIn(column, values)",description:"Adds a onIn clause to the query.",children:[{type:"runnable",content:"\n knex.select('*').from('users').join('contacts', function() {\n this.on('users.id', '=', 'contacts.id').onIn('contacts.id', [7, 15, 23, 41])\n })\n "}]},{type:"method",method:"onNotIn",example:".onNotIn(column, values)",description:"Adds a onNotIn clause to the query.",children:[{type:"runnable",content:"\n knex.select('*').from('users').join('contacts', function() {\n this.on('users.id', '=', 'contacts.id').onNotIn('contacts.id', [7, 15, 23, 41])\n })\n "}]},{type:"method",method:"onNull",example:".onNull(column)",description:"Adds a onNull clause to the query.",children:[{type:"runnable",content:"\n knex.select('*').from('users').join('contacts', function() {\n this.on('users.id', '=', 'contacts.id').onNull('contacts.email')\n })\n "}]},{type:"method",method:"onNotNull",example:".onNotNull(column)",description:"Adds a onNotNull clause to the query.",children:[{type:"runnable",content:"\n knex.select('*').from('users').join('contacts', function() {\n this.on('users.id', '=', 'contacts.id').onNotNull('contacts.email')\n })\n "}]},{type:"method",method:"onExists",example:".onExists(builder | callback)",description:"Adds a onExists clause to the query.",children:[{type:"runnable",content:"\n knex.select('*').from('users').join('contacts', function() {\n this.on('users.id', '=', 'contacts.id').onExists(function() {\n this.select('*').from('accounts').whereRaw('users.account_id = accounts.id');\n })\n })\n "}]},{type:"method",method:"onNotExists",example:".onNotExists(builder | callback)",description:"Adds a onNotExists clause to the query.",children:[{type:"runnable",content:"\n knex.select('*').from('users').join('contacts', function() {\n this.on('users.id', '=', 'contacts.id').onNotExists(function() {\n this.select('*').from('accounts').whereRaw('users.account_id = accounts.id');\n })\n })\n "}]},{type:"method",method:"onBetween",example:".onBetween(column, range)",description:"Adds a onBetween clause to the query.",children:[{type:"runnable",content:"\n knex.select('*').from('users').join('contacts', function() {\n this.on('users.id', '=', 'contacts.id').onBetween('contacts.id', [5, 30])\n })\n "}]},{type:"method",method:"onNotBetween",example:".onNotBetween(column, range)",description:"Adds a onNotBetween clause to the query.",children:[{type:"runnable",content:"\n knex.select('*').from('users').join('contacts', function() {\n this.on('users.id', '=', 'contacts.id').onNotBetween('contacts.id', [5, 30])\n })\n "}]},{type:"heading",size:"md",content:"ClearClauses",href:"Builder-clear"},{type:"method",method:"clearSelect",example:".clearSelect()",description:"Clears all select clauses from the query, excluding subqueries.",children:[{type:"runnable",content:"\n knex.select('email', 'name').from('users').clearSelect()\n "}]},{type:"method",method:"clearWhere",example:".clearWhere()",description:"Clears all where clauses from the query, excluding subqueries.",children:[{type:"runnable",content:"\n knex.select('email', 'name').from('users').where('id', 1).clearWhere()\n "}]},{type:"method",method:"distinct",example:".distinct()",description:"Sets a distinct clause on the query.",children:[{type:"runnable",content:"\n // select distinct 'first_name' from customers\n knex('customers')\n .distinct('first_name', 'last_name')\n .select()\n "}]},{type:"method",method:"groupBy",example:".groupBy(*names)",description:"Adds a group by clause to the query.",children:[{type:"runnable",content:"\n knex('users').groupBy('count')\n "}]},{type:"method",method:"groupByRaw",example:".groupByRaw(sql)",description:"Adds a raw group by clause to the query.",children:[{type:"runnable",content:"\n knex.select('year', knex.raw('SUM(profit)')).from('sales').groupByRaw('year WITH ROLLUP')\n "}]},{type:"method",method:"orderBy",example:".orderBy(column, [direction])",description:"Adds an order by clause to the query.",children:[{type:"runnable",content:"\n knex('users').orderBy('name', 'desc')\n "}]},{type:"method",method:"orderByRaw",example:".orderByRaw(sql)",description:"Adds an order by raw clause to the query.",children:[{type:"runnable",content:"\n knex.select('*').from('table').orderByRaw('col DESC NULLS LAST')\n "}]},{type:"heading",size:"md",content:"Having Clauses",href:"Builder-havings"},{type:"method",method:"having",example:".having(column, operator, value)",description:"Adds a having clause to the query.",children:[{type:"runnable",content:"\n knex('users')\n .groupBy('count')\n .orderBy('name', 'desc')\n .having('count', '>', 100)\n "}]},{type:"method",method:"havingIn",example:".havingIn(column, values)",description:"Adds a havingIn clause to the query.",children:[{type:"runnable",content:"\n knex.select('*').from('users').havingIn('id', [5, 3, 10, 17])\n "}]},{type:"method",method:"havingNotIn",example:".havingNotIn(column, values)",description:"Adds a havingNotIn clause to the query.",children:[{type:"runnable",content:"\n knex.select('*').from('users').havingNotIn('id', [5, 3, 10, 17])\n "}]},{type:"method",method:"havingNull",example:".havingNull(column)",description:"Adds a havingNull clause to the query.",children:[{type:"runnable",content:"\n knex.select('*').from('users').havingNull('email')\n "}]},{type:"method",method:"havingNotNull",example:".havingNotNull(column)",description:"Adds a havingNotNull clause to the query.",children:[{type:"runnable",content:"\n knex.select('*').from('users').havingNotNull('email')\n "}]},{type:"method",method:"havingExists",example:".havingExists(builder | callback)",description:"Adds a havingExists clause to the query.",children:[{type:"runnable",content:"\n knex.select('*').from('users').havingExists(function() {\n this.select('*').from('accounts').whereRaw('users.account_id = accounts.id');\n })\n "}]},{type:"method",method:"havingNotExists",example:".havingNotExists(builder | callback)",description:"Adds a havingNotExists clause to the query.",children:[{type:"runnable",content:"\n knex.select('*').from('users').havingNotExists(function() {\n this.select('*').from('accounts').whereRaw('users.account_id = accounts.id');\n })\n "}]},{type:"method",method:"havingBetween",example:".havingBetween(column, range)",description:"Adds a havingBetween clause to the query.",children:[{type:"runnable",content:"\n knex.select('*').from('users').havingBetween('id', [5, 10])\n "}]},{type:"method",method:"havingNotBetween",example:".havingNotBetween(column, range)",description:"Adds a havingNotBetween clause to the query.",children:[{type:"runnable",content:"\n knex.select('*').from('users').havingNotBetween('id', [5, 10])\n "}]},{type:"method",method:"havingRaw",example:".havingRaw(column, operator, value)",description:"Adds a havingRaw clause to the query.",children:[{type:"runnable",content:"\n knex('users')\n .groupBy('count')\n .orderBy('name', 'desc')\n .havingRaw('count > ?', [100])\n "}]},{type:"method",method:"offset",example:".offset(value)",description:"Adds an offset clause to the query.",children:[{type:"runnable",content:"\n knex.select('*').from('users').offset(10)\n "}]},{type:"method",method:"limit",example:".limit(value)",description:"Adds a limit clause to the query.",children:[{type:"runnable",content:"\n knex.select('*').from('users').limit(10).offset(30)\n "}]},{type:"method",method:"union",example:".union([*queries], [wrap])",description:"Creates a union query, taking an array or a list of callbacks to build the union statement, with optional boolean wrap. The queries will be individually wrapped in parentheses with a true wrap parameter.",children:[{type:"runnable",content:"\n knex.select('*').from('users').whereNull('last_name').union(function() {\n this.select('*').from('users').whereNull('first_name');\n })\n "}]},{type:"method",method:"unionAll",example:".unionAll(query)",description:"Creates a union all query, with the same method signature as the union method.",children:[{type:"runnable",content:"\n knex.select('*').from('users').whereNull('last_name').unionAll(function() {\n this.select('*').from('users').whereNull('first_name');\n })\n "}]},{type:"method",method:"insert",example:".insert(data, [returning])",description:"Creates an insert query, taking either a hash of properties to be inserted into the row, or an array of inserts, to be executed as a single insert command. Resolves the promise / fulfills the callback with an array containing the first insert id of the inserted model, or an array containing all inserted ids for postgresql.",children:[{type:"runnable",content:'\n // Returns [1] in "mysql", "sqlite", "oracle"; [] in "postgresql" unless the \'returning\' parameter is set.\n knex(\'books\').insert({title: \'Slaughterhouse Five\'})\n '},{type:"runnable",content:"\n // Normalizes for empty keys on multi-row insert:\n knex('coords').insert([{x: 20}, {y: 30}, {x: 10, y: 20}])\n "},{type:"runnable",content:"\n // Returns [2] in \"mysql\", \"sqlite\"; [2, 3] in \"postgresql\"\n knex.insert([{title: 'Great Gatsby'}, {title: 'Fahrenheit 451'}], 'id').into('books')\n "}]},{type:"text",content:"If one prefers that undefined keys are replaced with `NULL` instead of `DEFAULT` one may give `useNullAsDefault` configuration parameter in knex config."},{type:"code",language:"js",content:"\n var knex = require('knex')({\n client: 'mysql',\n connection: {\n host : '127.0.0.1',\n user : 'your_database_user',\n password : 'your_database_password',\n database : 'myapp_test'\n },\n useNullAsDefault: true\n });\n\n knex('coords').insert([{x: 20}, {y: 30}, {x: 10, y: 20}])\n // insert into `coords` (`x`, `y`) values (20, NULL), (NULL, 30), (10, 20)\"\n "},{type:"method",method:"returning",example:".returning(column) / .returning([column1, column2, ...])",description:"Utilized by PostgreSQL, MSSQL, and Oracle databases, the returning method specifies which column should be returned by the insert and update methods. Passed column parameter may be a string or an array of strings. When passed in a string, makes the SQL result be reported as an array of values from the specified column. When passed in an array of strings, makes the SQL result be reported as an array of objects, each containing a single property for each of the specified columns.",children:[{type:"runnable",content:"\n // Returns [1]\n knex('books')\n .returning('id')\n .insert({title: 'Slaughterhouse Five'})\n "},{type:"runnable",content:"\n // Returns [2] in \"mysql\", \"sqlite\"; [2, 3] in \"postgresql\"\n knex('books')\n .returning('id')\n .insert([{title: 'Great Gatsby'}, {title: 'Fahrenheit 451'}])\n "},{type:"runnable",content:"\n // Returns [ { id: 1, title: 'Slaughterhouse Five' } ]\n knex('books')\n .returning(['id','title'])\n .insert({title: 'Slaughterhouse Five'})\n "}]},{type:"method",method:"update",example:".update(data, [returning]) / .update(key, value, [returning])",description:"Creates an update query, taking a hash of properties or a key/value pair to be updated based on the other query constraints. Resolves the promise / fulfills the callback with the number of affected rows for the query. If a key to be updated has value undefined it is ignored.",children:[{type:"runnable",content:"\n knex('books')\n .where('published_date', '<', 2000)\n .update({\n status: 'archived',\n thisKeyIsSkipped: undefined\n })\n "},{type:"runnable",content:"\n // Returns [1] in \"mysql\", \"sqlite\", \"oracle\"; [] in \"postgresql\" unless the 'returning' parameter is set.\n knex('books').update('title', 'Slaughterhouse Five')\n "}]},{type:"method",method:"del / delete",example:".del()",description:"Aliased to del as delete is a reserved word in JavaScript, this method deletes one or more rows, based on other conditions specified in the query. Resolves the promise / fulfills the callback with the number of affected rows for the query.",children:[{type:"runnable",content:"\n knex('accounts')\n .where('activated', false)\n .del()\n "}]},{type:"method",method:"transacting",example:".transacting(transactionObj)",description:"Used by knex.transaction, the transacting method may be chained to any query and passed the object you wish to join the query as part of the transaction for.",children:[{type:"code",language:"js",content:"\n var Promise = require('bluebird');\n knex.transaction(function(trx) {\n knex('books').transacting(trx).insert({name: 'Old Books'})\n .then(function(resp) {\n var id = resp[0];\n return someExternalMethod(id, trx);\n })\n .then(trx.commit)\n .catch(trx.rollback);\n })\n .then(function(resp) {\n console.log('Transaction complete.');\n })\n .catch(function(err) {\n console.error(err);\n });\n "}]},{type:"method",method:"forUpdate",example:".transacting(t).forUpdate()",description:"Dynamically added after a transaction is specified, the forUpdate adds a FOR UPDATE in PostgreSQL and MySQL during a select statement.",children:[{type:"runnable",content:"\n knex('tableName')\n .transacting(trx)\n .forUpdate()\n .select('*')\n "}]},{type:"method",method:"forShare",example:".transacting(t).forShare()",description:"Dynamically added after a transaction is specified, the forShare adds a FOR SHARE in PostgreSQL and a LOCK IN SHARE MODE for MySQL during a select statement.",children:[{type:"runnable",content:"\n knex('tableName')\n .transacting(trx)\n .forShare()\n .select('*')\n "}]},{type:"method",method:"count",example:".count(column|raw)",description:"Performs a count on the specified column. Also accepts raw expressions. Note that in Postgres, count returns a bigint type which will be a String and not a Number (more info).",children:[{type:"runnable",content:"\n knex('users').count('active')\n "},{type:"runnable",content:"\n knex('users').count('active as a')\n "},{type:"runnable",content:"\n knex('users').count(knex.raw('??', ['active']))\n "}]},{type:"text",content:"Use **countDistinct** to add a distinct expression inside the aggregate function."},{type:"runnable",content:"\n knex('users').countDistinct('active')\n "},{type:"method",method:"min",example:".min(column|raw)",description:"Gets the minimum value for the specified column. Also accepts raw expressions.",children:[{type:"runnable",content:"\n knex('users').min('age')\n "},{type:"runnable",content:"\n knex('users').min('age as a')\n "},{type:"runnable",content:"\n knex('users').min(knex.raw('??', ['age']))\n "}]},{type:"method",method:"max",example:".max(column|raw)",description:"Gets the maximum value for the specified column. Also accepts raw expressions.",children:[{type:"runnable",content:"\n knex('users').max('age')\n "},{type:"runnable",content:"\n knex('users').max('age as a')\n "},{type:"runnable",content:"\n knex('users').max(knex.raw('??', ['age']))\n "}]},{type:"method",method:"sum",example:".sum(column|raw)",description:"Retrieve the sum of the values of a given column. Also accepts raw expressions.",children:[{type:"runnable",content:"\n knex('users').sum('products')\n "},{type:"runnable",content:"\n knex('users').sum('products as p')\n "},{type:"runnable",content:"\n knex('users').sum(knex.raw('??', ['products']))\n "}]},{type:"text",content:"Use **sumDistinct** to add a distinct expression inside the aggregate function."},{type:"runnable",content:"\n knex('users').sumDistinct('products')\n "},{type:"method",method:"avg",example:".avg(column|raw)",description:"Retrieve the average of the values of a given column. Also accepts raw expressions.",children:[{type:"runnable", +content:"\n knex('users').avg('age')\n "},{type:"runnable",content:"\n knex('users').avg('age as a')\n "},{type:"runnable",content:"\n knex('users').avg(knex.raw('??', ['age']))\n "}]},{type:"text",content:"Use **avgDistinct** to add a distinct expression inside the aggregate function."},{type:"runnable",content:"\n knex('users').avgDistinct('age')\n "},{type:"method",method:"increment",example:".increment(column, amount)",description:"Increments a column value by the specified amount.",children:[{type:"runnable",content:"\n knex('accounts')\n .where('userid', '=', 1)\n .increment('balance', 10)\n "}]},{type:"method",method:"decrement",example:".decrement(column, amount)",description:"Decrements a column value by the specified amount.",children:[{type:"runnable",content:"\n knex('accounts').where('userid', '=', 1).decrement('balance', 5)\n "}]},{type:"method",method:"truncate",example:".truncate()",description:"Truncates the current table.",children:[{type:"runnable",content:"\n knex('accounts').truncate()\n "}]},{type:"method",method:"pluck",example:".pluck(id)",description:"This will pluck the specified column from each row in your results, yielding a promise which resolves to the array of values selected.",children:[{type:"code",language:"js",content:"knex.table('users').pluck('id').then(function(ids) { console.log(ids); });"}]},{type:"method",method:"first",example:".first([columns])",description:"Similar to select, but only retrieves & resolves with the first record from the query.",children:[{type:"code",language:"js",content:"knex.table('users').first('id', 'name').then(function(row) { console.log(row); });"}]},{type:"method",method:"clone",example:".clone()",description:"Clones the current query chain, useful for re-using partial query snippets in other queries without mutating the original.",children:[]},{type:"method",method:"modify",example:".modify(fn, *arguments)",description:"Allows encapsulating and re-using query snippets and common behaviors as functions. The callback function should receive the query builder as its first argument, followed by the rest of the (optional) parameters passed to modify.",children:[{type:"code",language:"js",content:"\n var withUserName = function(queryBuilder, foreignKey) {\n queryBuilder.leftJoin('users', foreignKey, 'users.id').select('users.user_name');\n };\n knex.table('articles').select('title', 'body').modify(withUserName, 'articles_user.id').then(function(article) {\n console.log(article.user_name);\n });\n "}]},{type:"method",method:"columnInfo",example:".columnInfo([columnName])",description:"Returns an object with the column info about the current table, or an individual column if one is passed, returning an object with the following keys:* **defaultValue**: the default value for the column* **type**: the column type* **maxLength**: the max length set for the column* **nullable**: whether the column may be null",children:[{type:"code",language:"js",content:"knex('users').columnInfo().then(function(info) { // ... });"}]},{type:"method",method:"debug",example:".debug([enabled])",description:"Overrides the global debug setting for the current query chain. If enabled is omitted, query debugging will be turned on.",children:[]},{type:"method",method:"connection",description:" _ **(incomplete)** - This feature was incorrectly documented as functional._
    If implemented, the method would set the db connection to use for the query without using the connection pool.",children:[]},{type:"method",method:"options",example:".options()",description:"Allows for mixing in additional options as defined by database client specific libraries:",children:[{type:"code",language:"js",content:"\n knex('accounts as a1')\n .leftJoin('accounts as a2', function() {\n this.on('a1.email', '<>', 'a2.email');\n })\n .select(['a1.email', 'a2.email'])\n .where(knex.raw('a1.id = 1'))\n .options({ nestTables: true, rowMode: 'array' })\n .limit(2)\n .then(...\n "}]}],e.exports=t.default},function(e,t){"use strict";t.__esModule=!0,t.default=[{type:"heading",size:"lg",content:"F.A.Q.",href:"faq"},{type:"text",content:["**How do I help contribute?** \nGlad you ask! Pull requests, or feature requests, though not always implemented, are a great way to help make Knex even better than it is now. If you're looking for something specific to help out with, there's a number of unit tests that aren't implemented yet, the library could never have too many of those. If you want to submit a fix or feature, take a look at the [Contributing](https://github.com/tgriesser/knex/blob/master/CONTRIBUTING.md) readme in the Github and go ahead and open a ticket.","**How do I debug?** \nKnex is beginning to make use of the [debug](https://github.com/visionmedia/debug) module internally, so you can set the `DEBUG` environment variable to `knex:*` to see all debugging, or select individual namespaces `DEBUG=knex:query,knex:tx` to constrain a bit.","If you pass `{debug: true}` as one of the options in your initialize settings, you can see all of the query calls being made. Sometimes you need to dive a bit further into the various calls and see what all is going on behind the scenes. I'd recommend [node-inspector](https://github.com/dannycoates/node-inspector), which allows you to debug code with `debugger` statements like you would in the browser.","At the start of your application code will catch any errors not otherwise caught in the normal promise chain handlers, which is very helpful in debugging.","**How do I run the test suite?** \nThe test suite looks for an environment variable called `KNEX_TEST` for the path to the database configuration. If you run the following command:"]},{type:"code",content:"\n $ export KNEX_TEST='/path/to/your/knex_config.js'\n $ npm test\n "},{type:"text",content:["replacing with the path to your config file, and the config file is valid, the test suite should run properly.","**My tests are failing because slow DB connection and short test timeouts! How to extend test timeouts?** \nSometimes, e.g. when running CI on travis, test suite's default timeout of 5 seconds might be too short. In such cases an alternative test timeout value in milliseconds can be specified using the `KNEX_TEST_TIMEOUT` environment variable."]},{type:"code",content:"\n $ export KNEX_TEST_TIMEOUT=30000\n $ npm test\n "},{type:"text",content:"**Can I use Knex outside of Node.js** \nYes. While the WebSQL spec is deprecated, there is still an adapter that provides support. You will need to use a build tool like browserify or webpack for a browser build."}],e.exports=t.default},function(e,t){"use strict";t.__esModule=!0,t.default=[{type:"heading",size:"lg",content:"Installation",href:"Installation"},{type:"text",content:'Knex can be used as an SQL query builder in both Node.JS and the browser, limited to WebSQL\'s constraints (like the inability to drop tables or read schemas). Composing SQL queries in the browser for execution on the server is highly discouraged, as this can be the cause of serious security vulnerabilities. The browser builds outside of WebSQL are primarily for learning purposes - for example, you can pop open the console and build queries on this page using the
    knex object.'},{type:"heading",size:"md",content:"Node.js",href:"Installation-node"},{type:"text",content:"The primary target environment for Knex is Node.js, you will need to install the `knex` library, and then install the appropriate database library: [`pg`](https://github.com/brianc/node-postgres) for PostgreSQL, [`mysql`](https://github.com/felixge/node-mysql) for MySQL or MariaDB, [`sqlite3`](https://github.com/mapbox/node-sqlite3) for SQLite3, or [`mssql`](https://github.com/patriksimek/node-mssql) for MSSQL."},{type:"code",content:"\n $ npm install knex --save\n\n # Then add one of the following (adding a --save) flag:\n $ npm install pg\n $ npm install sqlite3\n $ npm install mysql\n $ npm install mysql2\n $ npm install mariasql\n $ npm install strong-oracle\n $ npm install oracle\n $ npm install mssql\n "},{type:"heading",size:"md",content:"Browser",href:"Installation-browser"},{type:"text",content:"Knex can be built using a JavaScript build tool such as [browserify](http://browserify.org/) or [webpack](https://github.com/webpack/webpack). In fact, this documentation uses a webpack build which [includes knex](https://github.com/knex/documentation/blob/a4de1b2eb50d6699f126be8d134f3d1acc4fc69d/components/Container.jsx#L3). View source on this page to see the browser build in-action (the global `knex` variable)."},{type:"heading",size:"md",content:"Initializing the Library",href:"Installation-client"},{type:"text",content:"The `knex` module is itself a function which takes a configuration object for Knex, accepting a few parameters. The `client` parameter is required and determines which client adapter will be used with the library."},{type:"code",language:"js",content:"\n var knex = require('knex')({\n client: 'mysql',\n connection: {\n host : '127.0.0.1',\n user : 'your_database_user',\n password : 'your_database_password',\n database : 'myapp_test'\n }\n });\n "},{type:"text",content:"The connection options are passed directly to the appropriate database client to create the connection, and may be either an object, or a connection string:"},{type:"info",content:'Note: Knex\'s PostgreSQL client allows you to set the initial search path for each connection automatically using an additional option "searchPath" as shown below.'},{type:"code",language:"js",content:"\n var pg = require('knex')({\n client: 'pg',\n connection: process.env.PG_CONNECTION_STRING,\n searchPath: ['knex', 'public'],\n });\n "},{type:"info",content:"Note: When you use the SQLite3 adapter, there is a filename required, not a network connection. For example:"},{type:"code",language:"js",content:"\n var knex = require('knex')({\n client: 'sqlite3',\n connection: {\n filename: \"./mydb.sqlite\"\n }\n });\n "},{type:"info",content:"Note: The database version can be added in knex configuration, when you use the PostgreSQL adapter to connect a non-standard database."},{type:"code",language:"js",content:"\n var knex = require('knex')({\n client: 'pg',\n version: '7.2',\n connection: {\n host : '127.0.0.1',\n user : 'your_database_user',\n password : 'your_database_password',\n database : 'myapp_test'\n }\n });\n "},{type:"text",content:"You can also connect via an unix domain socket, which will ignore host and port."},{type:"code",language:"js",content:"\n var knex = require('knex')({\n client: 'mysql',\n connection: {\n socketPath : '/path/to/socket.sock',\n user : 'your_database_user',\n password : 'your_database_password',\n database : 'myapp_test'\n }\n });\n "},{type:"info",content:"Initializing the library should normally only ever happen once in your application, as it creates a connection pool for the current database, you should use the instance returned from the initialize call throughout your library."},{type:"text",content:"Specify the client for the particular flavour of SQL you are interested in."},{type:"code",language:"js",content:"\n var pg = require('knex')({client: 'pg'});\n knex('table').insert({a: 'b'}).returning('*').toString();\n // \"insert into \"table\" (\"a\") values ('b')\"\n\n pg('table').insert({a: 'b'}).returning('*').toString();\n // \"insert into \"table\" (\"a\") values ('b') returning *\"\n "},{type:"heading",size:"md",content:"Debugging",href:"Installation-debug"},{type:"text",content:"Passing a `debug: true` flag on your initialization object will turn on [debugging](#Builder-debug) for all queries."},{type:"heading",size:"md",content:"Pooling",href:"Installation-pooling"},{type:"text",content:["The client created by the configuration initializes a connection pool, using the [generic-pool](https://github.com/coopernurse/node-pool) library. This connection pool has a default setting of a `min: 2, max: 10` for the MySQL and PG libraries, and a single connection for sqlite3 (due to issues with utilizing multiple connections on a single file). To change the config settings for the pool, pass a `pool` option as one of the keys in the initialize block.","Checkout the [generic-pool](https://github.com/coopernurse/node-pool) library for more information."]},{type:"code",language:"js",content:"\n var knex = require('knex')({\n client: 'mysql',\n connection: {\n host : '127.0.0.1',\n user : 'your_database_user',\n password : 'your_database_password',\n database : 'myapp_test'\n },\n pool: { min: 0, max: 7 }\n });\n "},{type:"text",content:"If you ever need to explicitly teardown the connection pool, you may use `knex.destroy([callback])`. You may use `knex.destroy` by passing a callback, or by chaining as a promise, just not both."},{type:"heading",size:"md",content:"afterCreate",href:"Installation-pooling-afterCreate"},{type:"text",content:"`afterCreate` callback (rawDriverConnection, done) is called when the pool aquires a new connection from the database server. done(err, connection) callback must be called for `knex` to be able to decide if the connection is ok or if it should be discarded right away from the pool."},{type:"code",language:"js",content:"\n var knex = require('knex')({\n client: 'pg',\n connection: {...},\n pool: {\n afterCreate: function (conn, done) {\n // in this example we use pg driver's connection API\n conn.query('SET timezone=\"UTC\";', function (err) {\n if (err) {\n // first query failed, return error and don't try to make next query\n done(err, conn);\n } else {\n // do the second query...\n conn.query('SELECT set_limit(0.01);', function (err) {\n // if err is not falsy, connection is discarded from pool\n // if connection aquire was triggered by a query the error is passed to query promise\n done(err, conn);\n });\n }\n });\n }\n }\n });\n "},{type:"heading",size:"md",content:"acquireConnectionTimeout",href:"Installation-acquireConnectionTimeout"},{type:"text",content:"`acquireConnectionTimeout` defaults to 60000ms and is used to determine how long knex should wait before throwing a timeout error when acquiring a connection is not possible. The most common cause for this is using up all the pool for transaction connections and then attempting to run queries outside of transactions while the pool is still full. The error thrown will provide information on the query the connection was for to simplify the job of locating the culprit."},{type:"code",language:"js",content:"\n var knex = require('knex')({\n client: 'pg',\n connection: {...},\n pool: {...},\n acquireConnectionTimeout: 10000\n });\n "},{type:"heading",size:"md",content:"fetchAsString",href:"Installation-fetchAsString"},{type:"text",content:"Utilized by Oracledb. An array of types. The valid types are 'DATE', 'NUMBER' and 'CLOB'. When any column having one of the specified types is queried, the column data is returned as a string instead of the default representation."},{type:"code",language:"js",content:"\n var knex = require('knex')({\n client: 'oracledb',\n connection: {...},\n fetchAsString: [ 'number', 'clob' ]\n });\n "},{type:"heading",size:"md",content:"Migrations",href:"Installation-migrations"},{type:"text",content:"For convenience, the any migration configuration may be specified when initializing the library. Read the [Migrations](#Migrations) section for more information and a full list of configuration options."},{type:"code",language:"js",content:"\n var knex = require('knex')({\n client: 'mysql',\n connection: {\n host : '127.0.0.1',\n user : 'your_database_user',\n password : 'your_database_password',\n database : 'myapp_test'\n },\n migrations: {\n tableName: 'migrations'\n }\n });\n "},{type:"heading",size:"md",content:"postProcessResponse",href:"Installation-post-process-response"},{type:"text",content:["Hook for modifying returned rows, before passing them forward to user. One can do for example","snake_case -> camelCase conversion for returned columns with this hook."].join(" ")},{type:"code",language:"js",content:"\n var knex = require('knex')({\n client: 'mysql',\n // overly simplified snake_case -> camelCase converter\n postProcessResponse: (result) => {\n // TODO: add special case for raw results (depends on dialect)\n if (Array.isArray(result)) {\n return result.map(row => convertToCamel(row));\n } else {\n return convertToCamel(result);\n }\n }\n });\n "},{type:"heading",size:"md",content:"wrapIdentifier",href:"Installation-wrap-identifier"},{type:"text",content:["Knex supports transforming identifier names automatically to quoted versions for each dialect.",'For example `\'Table.columnName as foo\'` for PostgreSQL is converted to "Table"."columnName" as "foo".'].join(" ")},{type:"text",content:["With `wrapIdentifier` one may override the way how identifiers are transformed.","It can be used to override default functionality and for example to help doing `camelCase` -> `snake_case` conversion."].join(" ")},{type:"text",content:["Conversion function `wrapIdentifier(value, dialectImpl): string` gets each part of the identifier as a single `value`","and the second parameter is the original conversion function from the dialect implementation.","For example `knex('table').withSchema('foo').select('table.field as otherName').where('id', 1)` will call","`wrapIdentifier` converter for following values `'table'`, `'foo'`, `'table'`, `'field'`, `'otherName'` and `'id'`."].join(" ")},{type:"code",language:"js",content:"\n var knex = require('knex')({\n client: 'mysql',\n // overly simplified camelCase -> snake_case converter\n wrapIdentifier: (value, origImpl) => origImpl(convertToSnakeCase(value))\n });\n "}],e.exports=t.default},function(e,t){"use strict";t.__esModule=!0,t.default=[{type:"heading",size:"lg",content:"Interfaces",href:"Interfaces"},{type:"text",content:"Knex.js provides several options to deal with query output. The following methods are present on the query builder, schema builder, and the raw builder:"},{type:"heading",size:"md",content:"Promises",href:"Interfaces-Promises"},{type:"text",content:"[Promises](https://github.com/petkaantonov/bluebird#what-are-promises-and-why-should-i-use-them) are the preferred way of dealing with queries in knex, as they allow you to return values from a fulfillment handler, which in turn become the value of the promise. The main benefit of promises are the ability to catch thrown errors without crashing the node app, making your code behave like a **.try / .catch / .finally** in synchronous code."},{type:"code",language:"js",content:"\n knex.select('name')\n .from('users')\n .where('id', '>', 20)\n .andWhere('id', '<', 200)\n .limit(10)\n .offset(x)\n .then(function(rows) {\n return _.pluck(rows, 'name');\n })\n .then(function(names) {\n return knex.select('id').from('nicknames').whereIn('nickname', names);\n })\n .then(function(rows) {\n console.log(rows);\n })\n .catch(function(error) {\n console.error(error)\n });\n "},{type:"method",method:"then",example:".then(onFulfilled, [onRejected])",description:"Coerces the current query builder chain into a promise state, accepting the resolve and reject handlers as specified by the Promises/A+ spec. As stated in the spec, more than one call to the then method for the current query chain will resolve with the same value, in the order they were called; the query will not be executed multiple times.",children:[{type:"code",language:"js",content:"\n knex.select('*')\n .from('users')\n .where({name: 'Tim'})\n .then(function(rows) {\n return knex.insert({user_id: rows[0].id, name: 'Test'}, 'id').into('accounts');\n })\n .then(function(id) {\n console.log('Inserted Account ' + id);\n })\n .catch(function(error) { console.error(error); });\n "}]},{type:"method",method:"catch",example:".catch(onRejected)",description:"Coerces the current query builder into a promise state, catching any error thrown by the query, the same as calling .then(null, onRejected).",children:[{type:"code",language:"js",content:"\n return knex.insert({id: 1, name: 'Test'}, 'id')\n .into('accounts')\n .catch(function(error) {\n console.error(error);\n }).then(function() {\n return knex.select('*')\n .from('accounts')\n .where('id', 1);\n }).then(function(rows) {\n console.log(rows[0]);\n })\n .catch(function(error) {\n console.error(error);\n });\n "}]},{type:"method",method:"tap",example:".tap(sideEffectHandler)",description:"Executes side effects on the resolved response, ultimately returning a promise that fulfills with the original value. A thrown error or rejected promise will cause the promise to transition into a rejected state.",children:[{type:"code",language:"js",content:"\n // Using only .then()\n query.then(function(x) {\n doSideEffectsHere(x);\n return x;\n });\n\n // Using .tap()\n promise.tap(doSideEffectsHere);\n "}]},{type:"method",method:"map",example:".map(mapper)",description:"A passthrough to Bluebird's map implementation with the result set.",children:[{type:"code",language:"js",content:"\n knex.select('name').from('users').limit(10).map(function(row) {\n return row.name;\n })\n .then(function(names) { console.log(names); })\n .catch(function(e) { console.error(e); });\n "}]},{type:"method",method:"reduce",example:".reduce(reducer, [initialValue])",description:"A passthrough to Bluebird's reduce implementation with the result set.",children:[{type:"code",language:"js",content:"\n knex.select('name').from('users').limit(10).reduce(function(memo, row) {\n memo.names.push(row.name);\n memo.count++;\n return memo;\n }, {count: 0, names: []})\n .then(function(obj) { console.log(obj); })\n .catch(function(e) { console.error(e); });\n "}]},{type:"method",method:"bind",example:".bind(context)",description:"A passthrough to Bluebird's bind method which sets the context value (this) for the returned promise.",children:[{type:"code",language:"js",content:"\n knex.select('name').from('users')\n .limit(10)\n .bind(console)\n .then(console.log)\n .catch(console.error)\n "}]},{type:"method",method:"return",example:".return(value)",description:"Shorthand for calling .then(function() { return value }).",children:[{type:"code",language:"js",content:"\n // Without return:\n knex.insert(values).into('users')\n .then(function() {\n return {inserted: true};\n });\n\n knex.insert(values).into('users').return({inserted: true});\n "}]},{type:"heading",size:"md",content:"Callbacks",href:"Interfaces-Callbacks"},{type:"method",method:"asCallback",example:".asCallback(callback)",description:"If you'd prefer a callback interface over promises, the asCallback function accepts a standard node style callback for executing the query chain. Note that as with the then method, subsequent calls to the same query chain will return the same result.",children:[{type:"code",language:"js",content:"\n knex.select('name').from('users')\n .where('id', '>', 20)\n .andWhere('id', '<', 200)\n .limit(10)\n .offset(x)\n .asCallback(function(err, rows) {\n if (err) return console.error(err);\n knex.select('id').from('nicknames')\n .whereIn('nickname', _.pluck(rows, 'name'))\n .asCallback(function(err, rows) {\n if (err) return console.error(err);\n console.log(rows);\n });\n });\n "}]},{type:"heading",size:"md",content:"Streams",href:"Interfaces-Streams"},{type:"text",content:"Streams are a powerful way of piping data through as it comes in, rather than all at once. You can read more about streams [here at substack's stream handbook](https://github.com/substack/stream-handbook). See the following for example uses of stream & pipe. If you wish to use streams with PostgreSQL, you must also install the [pg-query-stream](https://github.com/brianc/node-pg-query-stream) module. On an HTTP server, make sure to [manually close your streams](https://github.com/tgriesser/knex/wiki/Manually-Closing-Streams) if a request is aborted."},{type:"method",method:"stream",example:".stream([options], [callback])",description:"If called with a callback, the callback is passed the stream and a promise is returned. Otherwise, the readable stream is returned.",children:[{type:"code",language:"js",content:"\n // Retrieve the stream:\n var stream = knex.select('*').from('users').stream();\n stream.pipe(writableStream);\n\n // With options:\n var stream = knex.select('*').from('users').stream({highWaterMark: 5});\n stream.pipe(writableStream);\n\n // Use as a promise:\n var stream = knex.select('*').from('users')\n .where(knex.raw('id = ?', [1]))\n .stream(function(stream) {\n stream.pipe(writableStream);\n })\n .then(function() { // ... })\n .catch(function(e) { console.error(e); });\n "}]},{type:"method",method:"pipe",example:".pipe(writableStream)",description:"Pipe a stream for the current query to a writableStream.",children:[{type:"code",language:"js",content:"var stream = knex.select('*').from('users').pipe(writableStream);"}]},{type:"heading",size:"md",content:"Events",href:"Interfaces-Events"},{type:"method",method:"query",description:"A query event is fired just before a query takes place, providing data about the query, including the connection's __cid property and any other information about the query as described in toSQL. Useful for logging all queries throughout your application.",children:[{type:"code",language:"js",content:"\n knex.select('*')\n .from('users')\n .on('query', function(data) {\n app.log(data);\n })\n .then(function() {\n // ...\n });\n "}]},{type:"method",method:"query-error",description:"A query-error event is fired when an error occurs when running a query, providing the error object and data about the query, including the connection's __cid property and any other information about the query as described in toSQL. Useful for logging all query errors throughout your application.",children:[{type:"code",language:"js",content:"\n knex.select(['NonExistentColumn'])\n .from('users')\n .on('query-error', function(error, obj) {\n app.log(error);\n })\n .then(function() { // ... })\n .catch(function(error) {\n // Same error object as the query-error event provides.\n });\n "}]},{type:"method",method:"query-response",description:"A query-response event is fired when a successful query has been run, providing the response of the query and data about the query, including the connection's __cid property and any other information about the query as described in toSQL, and finally the query builder used for the query.",children:[{type:"code",language:"js",content:"\n knex.select('*')\n .from('users')\n .on('query-response', function(response, obj, builder) {\n // ...\n })\n .then(function(response) {\n // Same response as the emitted event\n })\n .catch(function(error) { });\n "}]},{type:"heading",size:"md",content:"Other",href:"Interfaces-Other"},{type:"method",method:"toString",example:".toString()",description:["Returns an array of query strings filled out with the correct values","based on bindings, etc. Useful for debugging, but should not be used to","create queries for running them against DB."].join(" "),children:[{type:"code",language:"js",content:"\n var toStringQuery = knex.select('*').from('users').where('id', 1).toString();\n \n // Outputs: console.log(toStringQuery); \n // select * from \"users\" where \"id\" = 1\n "}]},{type:"method",method:"toSQL",example:".toSQL() and toSQL().toNative()",description:["Returns an array of query strings filled out with the correct values based","on bindings, etc. Useful for debugging and building queries for running them","manually with DB driver. `.toSQL().toNative()` outputs object with sql string","and bindings in a dialects format in the same way that knex internally sends","them to unterlying DB driver."].join(" "),children:[{type:"code",language:"js",content:"\n knex.select('*').from('users')\n .where(knex.raw('id = ?', [1]))\n .toSQL()\n // Outputs:\n // {\n // bindings: [1],\n // method: 'select',\n // sql: 'select * from \"users\" where id = ?',\n // options: undefined,\n // toNative: function () {}\n // }\n\n knex.select('*').from('users')\n .where(knex.raw('id = ?', [1]))\n .toSQL().toNative()\n // Outputs for postgresql dialect:\n // {\n // bindings: [1],\n // sql: 'select * from \"users\" where id = $1',\n // } "}]}],e.exports=t.default},function(e,t){"use strict";t.__esModule=!0,t.default=[{type:"heading",size:"lg",content:"Migrations",href:"Migrations"},{type:"text",content:"Migrations allow for you to define sets of schema changes so upgrading a database is a breeze."},{type:"heading",size:"md",content:"Migration CLI",href:"Migrations-CLI"},{type:"text",content:"The migration CLI is bundled with the knex install, and is driven by the [node-liftoff](https://github.com/tkellen/node-liftoff) module. To install globally, run:"},{type:"code",content:"\n $ npm install knex -g\n "},{type:"text",content:"Migrations use a **knexfile**, which specify various configuration settings for the module. To create a new knexfile, run the following:"},{type:"code",content:"\n $ knex init\n\n # or for .coffee\n\n $ knex init -x coffee\n " +},{type:"text",content:"will create a sample knexfile.js - the file which contains our various database configurations. Once you have a knexfile.js, you can use the migration tool to create migration files to the specified directory (default migrations). Creating new migration files can be achieved by running:"},{type:"code",content:"\n $ knex migrate:make migration_name\n "},{type:"text",content:"Once you have finished writing the migrations, you can update the database matching your `NODE_ENV` by running:"},{type:"code",content:"\n $ knex migrate:latest\n "},{type:"text",content:"You can also pass the `--env` flag or set `NODE_ENV` to select an alternative environment:"},{type:"code",content:"\n $ knex migrate:latest --env production\n\n # or\n\n $ NODE_ENV=production knex migrate:latest\n "},{type:"text",content:"To rollback the last batch of migrations:"},{type:"code",content:"\n $ knex migrate:rollback\n "},{type:"heading",size:"lg",content:"Seed files",href:"Seeds"},{type:"text",content:"Seed files allow you to populate your database with test or seed data independent of your migration files."},{type:"heading",size:"md",content:"Seed CLI",href:"Seeds-CLI"},{type:"text",content:"To create a seed file, run:"},{type:"code",content:"\n $ knex seed:make seed_name\n "},{type:"text",content:"Seed files are created in the directory specified in your knexfile.js for the current environment. A sample seed configuration looks like:"},{type:"code",content:"\n development: {\n client: ...,\n connection: { ... },\n seeds: {\n directory: './seeds/dev'\n }\n }\n "},{type:"text",content:["If no `seeds.directory` is defined, files are created in `./seeds`. Note that the seed directory needs to be a relative path. Absolute paths are not supported (nor is it good practice).","To run seed files, execute:"]},{type:"code",content:"\n $ knex seed:run\n "},{type:"text",content:"Seed files are executed in alphabetical order. Unlike migrations, _every_ seed file will be executed when you run the command. You should design your seed files to reset tables as needed before inserting data."},{type:"heading",size:"md",content:"knexfile.js",href:"knexfile"},{type:"text",content:"A knexfile.js or knexfile.coffee generally contains all of the configuration for your database. It can optionally provide different configuration for different environments. You may pass a `--knexfile` option to any of the command line statements to specify an alternate path to your knexfile."},{type:"heading",size:"sm",content:"Basic configuration:"},{type:"code",language:"js",content:"\n module.exports = {\n client: 'pg',\n connection: process.env.DATABASE_URL || { user: 'me', database: 'my_app' }\n };\n "},{type:"heading",size:"sm",content:"Environment configuration:"},{type:"code",language:"js",content:"\n module.exports = {\n development: {\n client: 'pg',\n connection: { user: 'me', database: 'my_app' }\n },\n production: { client: 'pg', connection: process.env.DATABASE_URL }\n };\n "},{type:"heading",size:"sm",content:"Custom migration:"},{type:"text",size:"sm",content:"You may provide a custom migration stub to be used in place of the default option."},{type:"code",language:"js",content:"\n module.exports = {\n client: 'pg',\n migration: {\n stub: 'migration.stub'\n }\n };\n "},{type:"heading",size:"md",content:"Migration API",href:"Migrations-API"},{type:"text",content:["`knex.migrate` is the class utilized by the knex migrations cli.","Each method takes an optional `config` object, which may specify the following properties:"]},{type:"list",content:["`directory`: a relative path to the directory containing the migration files (default `./migrations`)","`extension`: the file extension used for the generated migration files (default `js`)","`tableName`: the table name used for storing the migration state (default `knex_migrations`)","`disableTransactions`: don't run migrations inside transactions (default `false`)","`loadExtensions`: array of file extensions which knex will treat as migrations. For example, if you have typescript transpiled into javascript in the same folder, you want to execute only javascript migrations. In this case, set `loadExtensions` to `['.js']` (Notice the dot!) (default `['.co', '.coffee', '.eg', '.iced', '.js', '.litcoffee', '.ls', '.ts']`)"]},{type:"heading",size:"sm",content:"Transactions in migrations",href:"Migrations-API-transactions"},{type:"text",content:"By default, each migration is run inside a transaction. Whenever needed, one can disable transactions for all migrations via the common migration config option `config.disableTransactions` or per-migration, via exposing a boolean property `config.transaction` from a migration file:"},{type:"code",language:"js",content:"\n exports.up = function(knex, Promise) { /* ... */ };\n\n exports.down = function(knex, Promise) { /* ... */ };\n\n exports.config = { transaction: false };\n "},{type:"text",content:"The same config property can be used for enabling transaction per-migration in case the common configuration has `disableTransactions: true`."},{type:"method",method:"make",example:"knex.migrate.make(name, [config])",description:"Creates a new migration, with the name of the migration being added.",children:[]},{type:"method",method:"latest",example:"knex.migrate.latest([config])",description:"Runs all migrations that have not yet been run.",children:[]},{type:"text",content:"If you need to run something only after all migrations have finished their execution, you can do something like this:"},{type:"code",language:"js",content:"\n knex.migrate.latest()\n .then(function() {\n return knex.seed.run();\n })\n .then(function() {\n // migrations are finished\n });\n "},{type:"method",method:"rollback",example:"knex.migrate.rollback([config])",description:"Rolls back the latest migration group.",children:[]},{type:"method",method:"currentVersion",example:"knex.migrate.currentVersion([config])",description:'Retrieves and returns the current migration version, as a promise. If there aren\'t any migrations run yet, returns "none" as the value for the currentVersion.',children:[]},{type:"heading",size:"md",content:"Notes about locks",href:"Notes-about-locks"},{type:"text",content:"A lock system is there to prevent multiple processes from running the same migration batch in the same time. When a batch of migrations is about to be run, the migration system first tries to get a lock using a `SELECT ... FOR UPDATE` statement (preventing race conditions from happening). If it can get a lock, the migration batch will run. If it can't, it will wait until the lock is released."},{type:"text",content:'Please note that if your process unfortunately crashes, the lock will have to be *manually* removed in order to let migrations run again. The locks are saved in a table called "`tableName`_lock"; it has single one column called `is_locked` that you need to set to `0` in order to release the lock.'}],e.exports=t.default},function(e,t){"use strict";t.__esModule=!0,t.default=function(e){return[{type:"text",content:['','**Knex.js** is a "batteries included" SQL query builder for **Postgres**, **MSSQL**, **MySQL**, **MariaDB**, **SQLite3**, and **Oracle** designed to be flexible, portable, and fun to use. It features both traditional node style [callbacks](#Interfaces-Callbacks) as well as a [promise](#Interfaces-Promises) interface for cleaner async flow control, [a stream interface](#Interfaces-Streams), full featured [query](#Builder) and [schema](#Schema) builders, [**transaction support (with savepoints)**](#Transactions), connection [pooling](#Installation-pooling) and standardized responses between different query clients and dialects.',"The project is [hosted on GitHub](http://github.com/tgriesser/knex), and has a comprehensive [test suite](https://travis-ci.org/tgriesser/knex).","Knex is available for use under the [MIT software license](http://github.com/tgriesser/knex/blob/master/LICENSE).","You can report bugs and discuss features on the [GitHub issues page](http://github.com/tgriesser/knex/issues), add pages to the [wiki](https://github.com/tgriesser/knex/wiki) or send tweets to [@tgriesser](http://twitter.com/tgriesser).","Thanks to all of the great [contributions](https://github.com/tgriesser/knex/graphs/contributors) to the project."]},{type:"info",content:"Special thanks to [Taylor Otwell](https://twitter.com/taylorotwell) and his work on the [Laravel Query Builder](http://laravel.com/docs/queries), from which much of the builder's code and syntax was originally derived."},{type:"heading",size:"lg",content:"Latest Release: "+e+' - [Change Log](#changelog)'},{type:"text",content:"Current Develop — [![Travis Badge](https://travis-ci.org/tgriesser/knex.png?branch=master)](https://travis-ci.org/tgriesser/knex)"}]},e.exports=t.default},function(e,t){"use strict";t.__esModule=!0,t.default=[{type:"heading",size:"lg",content:"Raw",href:"Raw"},{type:"text",content:"Sometimes you may need to use a raw expression in a query. Raw query object may be injected pretty much anywhere you want, and using proper bindings can ensure your values are escaped properly, preventing SQL-injection attacks."},{type:"heading",size:"md",content:"Raw Parameter Binding:",href:"Raw-Bindings"},{type:"text",content:"One can paramterize sql given to `knex.raw(sql, bindings)`. Parameters can be positional named. One can also choose if parameter should be treated as value or as sql identifier e.g. in case of `'TableName.ColumnName'` reference."},{type:"runnable",content:"\n knex('users')\n .select(knex.raw('count(*) as user_count, status'))\n .where(knex.raw(1))\n .orWhere(knex.raw('status <> ?', [1]))\n .groupBy('status')\n "},{type:"text",content:"Positional bindings `?` are interpreted as values and `??` are interpreted as identifiers."},{type:"runnable",content:"\n knex('users').where(knex.raw('?? = ?', ['user.name', 1]))\n "},{type:"text",content:"Named bindings such as `:name` are interpreted as values and `:name:` interpreted as identifiers. Named bindings are processed so long as the value is anything other than `undefined`."},{type:"runnable",content:"\n knex('users')\n .where(knex.raw(':name: = :thisGuy or :name: = :otherGuy or :name: = :undefinedBinding', {\n name: 'users.name',\n thisGuy: 'Bob',\n otherGuy: 'Jay',\n undefinedBinding: undefined\n }))\n "},{type:"text",content:"For simpler queries where one only has a single binding, `.raw` can accept said binding as its second parameter."},{type:"runnable",content:"\n knex('users')\n .where(\n knex.raw('LOWER(\"login\") = ?', 'knex')\n )\n .orWhere(\n knex.raw('accesslevel = ?', 1)\n )\n .orWhere(\n knex.raw('updtime = ?', new Date.UTC('01-01-2016'))\n )\n "},{type:"text",content:"Note that due to ambiguity, arrays must be passed as arguments within a containing array."},{type:"runnable",content:"\n knex.raw('select * from users where id in (?)', [1, 2, 3]);\n // Error: Expected 3 bindings, saw 1\n\n knex.raw('select * from users where id in (?)', [[1, 2, 3]])\n "},{type:"text",content:"To prevent replacement of `?` one can use the escape sequence `\\\\?`."},{type:"runnable",content:"\n knex.select('*').from('users').where('id', '=', 1).whereRaw('?? \\\\? ?', ['jsonColumn', 'jsonKey'])\n "},{type:"text",content:"To prevent replacement of named bindings one can use the escape sequence `\\\\:`."},{type:"runnable",content:"\n knex.select('*').from('users').whereRaw(\":property: = '\\\\:value' OR \\\\:property: = :value\", {\n property: 'name',\n value: 'Bob'\n })\n "},{type:"heading",size:"md",content:"Raw Expressions:",href:"Raw-Expressions"},{type:"text",content:"Raw expressions are created by using `knex.raw(sql, [bindings])` and passing this as a value for any value in the query chain."},{type:"runnable",content:"\n knex('users')\n .select(knex.raw('count(*) as user_count, status'))\n .where(knex.raw(1))\n .orWhere(knex.raw('status <> ?', [1]))\n .groupBy('status')\n "},{type:"heading",size:"md",content:"Raw Queries:",href:"Raw-Queries"},{type:"text",content:"The `knex.raw` may also be used to build a full query and execute it, as a standard query builder query would be executed. The benefit of this is that it uses the connection pool and provides a standard interface for the different client libraries."},{type:"code",language:"js",content:"knex.raw('select * from users where id = ?', [1]).then(function(resp) { ... });"},{type:"info",content:"Note that the response will be whatever the underlying sql library would typically return on a normal query, so you may need to look at the documentation for the base library the queries are executing against to determine how to handle the response."},{type:"heading",size:"md",content:"Wrapped Queries:",href:"Raw-queries-wrapped"},{type:"text",content:"The raw query builder also comes with a `wrap` method, which allows wrapping the query in a value:"},{type:"runnable",content:"var subcolumn = knex.raw('select avg(salary) from employee where dept_no = e.dept_no')\n .wrap('(', ') avg_sal_dept');\n\nknex.select('e.lastname', 'e.salary', subcolumn)\n .from('employee as e')\n .whereRaw('dept_no = e.dept_no')\n"},{type:"text",content:"Note that the example above be achieved more easily using the [as](#Builder-as) method."},{type:"runnable",content:"var subcolumn = knex.avg('salary')\n .from('employee')\n .whereRaw('dept_no = e.dept_no')\n .as('avg_sal_dept');\n\nknex.select('e.lastname', 'e.salary', subcolumn)\n .from('employee as e')\n .whereRaw('dept_no = e.dept_no')\n"}],e.exports=t.default},function(e,t){"use strict";t.__esModule=!0,t.default=[{type:"heading",size:"lg",content:"Schema Builder",href:"Schema"},{type:"text",content:"The `knex.schema` is a **getter function**, which returns a stateful object containing the query. Therefore be sure to obtain a new instance of the `knex.schema` for every query. These methods return [promises](http://knexjs.org/#Interfaces-Promises)."},{type:"method",method:"withSchema",example:"knex.schema.withSchema([schemaName])",description:"Specifies the schema to be used when using the schema-building commands.",children:[{type:"runnable",content:"\n knex.schema.withSchema('public').createTable('users', function (table) {\n table.increments();\n })\n "}]},{type:"method",method:"createTable",example:"knex.schema.createTable(tableName, callback)",description:"Creates a new table on the database, with a callback function to modify the table's structure, using the schema-building commands.",children:[{type:"runnable",content:"\n knex.schema.createTable('users', function (table) {\n table.increments();\n table.string('name');\n table.timestamps();\n })\n "}]},{type:"method",method:"createTableIfNotExists",example:"knex.schema.createTableIfNotExists(tableName, callback)",description:"Creates a new table on the database if it doesn't exists on database, with a callback function to modify the table's structure, using the schema-building commands.",children:[{type:"runnable",content:"\n knex.schema.createTableIfNotExists('users', function (table) {\n table.increments();\n table.string('name');\n table.timestamps();\n })\n "}]},{type:"method",method:"renameTable",example:"knex.schema.renameTable(from, to)",description:"Renames a table from a current tableName to another.",children:[{type:"runnable",content:"\n knex.schema.renameTable('users', 'old_users')\n "}]},{type:"method",method:"dropTable",example:"knex.schema.dropTable(tableName)",description:"Drops a table, specified by tableName.",children:[{type:"runnable",content:"\n knex.schema.dropTable('users')\n "}]},{type:"method",method:"hasTable",example:"knex.schema.hasTable(tableName)",description:"Checks for a table's existence by tableName, resolving with a boolean to signal if the table exists.",children:[{type:"code",language:"js",content:"\n knex.schema.hasTable('users').then(function(exists) {\n if (!exists) {\n return knex.schema.createTable('users', function(t) {\n t.increments('id').primary();\n t.string('first_name', 100);\n t.string('last_name', 100);\n t.text('bio');\n });\n }\n });\n "}]},{type:"method",method:"hasColumn",example:"knex.schema.hasColumn(tableName, columnName)",description:"Checks if a column exists in the current table, resolves the promise with a boolean, true if the column exists, false otherwise.",children:[]},{type:"method",method:"dropTableIfExists",example:"knex.schema.dropTableIfExists(tableName)",description:"Drops a table conditionally if the table exists, specified by tableName.",children:[{type:"runnable",content:"\n knex.schema.dropTableIfExists('users')\n "}]},{type:"method",method:"table",example:"knex.schema.table(tableName, callback)",description:"Chooses a database table, and then modifies the table, using the Schema Building functions inside of the callback.",children:[{type:"runnable",content:"\n knex.schema.table('users', function (table) {\n table.dropColumn('name');\n table.string('first_name');\n table.string('last_name');\n })\n "}]},{type:"method",method:"raw",example:"knex.schema.raw(statement)",description:"Run an arbitrary sql query in the schema builder chain.",children:[{type:"runnable",content:"\n knex.schema.raw(\"SET sql_mode='TRADITIONAL'\")\n .table('users', function (table) {\n table.dropColumn('name');\n table.string('first_name');\n table.string('last_name');\n })\n "}]},{type:"heading",size:"md",content:"Schema Building:",href:"Schema-Building"},{type:"method",method:"dropColumn",example:"table.dropColumn(name)",description:"Drops a column, specified by the column's name",children:[]},{type:"method",method:"dropColumns",example:"table.dropColumns(*columns)",description:"Drops multiple columns, taking a variable number of column names.",children:[]},{type:"method",method:"renameColumn",example:"table.renameColumn(from, to)",description:"Renames a column from one name to another.",children:[]},{type:"method",method:"increments",example:"table.increments(name)",description:"Adds an auto incrementing column, in PostgreSQL this is a serial. This will be used as the primary key for the table. Also available is a bigIncrements if you wish to add a bigint incrementing number (in PostgreSQL bigserial).",children:[]},{type:"method",method:"integer",example:"table.integer(name)",description:"Adds an integer column.",children:[]},{type:"method",method:"bigInteger",example:"table.bigInteger(name)",description:"In MySQL or PostgreSQL, adds a bigint column, otherwise adds a normal integer. Note that bigint data is returned as a string in queries because JavaScript may be unable to parse them without loss of precision.",children:[]},{type:"method",method:"text",example:"table.text(name, [textType])",description:"Adds a text column, with optional textType for MySql text datatype preference. textType may be mediumtext or longtext, otherwise defaults to text.",children:[]},{type:"method",method:"string",example:"table.string(name, [length])",description:"Adds a string column, with optional length defaulting to 255.",children:[]},{type:"method",method:"float",example:"table.float(column, [precision], [scale])",description:"Adds a float column, with optional precision (defaults to 8) and scale (defaults to 2).",children:[]},{type:"method",method:"decimal",example:"table.decimal(column, [precision], [scale])",description:"Adds a decimal column, with optional precision (defaults to 8) and scale (defaults to 2).",children:[]},{type:"method",method:"boolean",example:"table.boolean(name)",description:"Adds a boolean column.",children:[]},{type:"method",method:"date",example:"table.date(name)",description:"Adds a date column.",children:[]},{type:"method",method:"dateTime",example:"table.dateTime(name)",description:"Adds a dateTime column.",children:[]},{type:"method",method:"time",example:"table.time(name)",description:"Adds a time column.",children:[]},{type:"method",method:"timestamp",example:"table.timestamp(name, [standard])",description:"Adds a timestamp column, defaults to timestamptz in PostgreSQL, unless true is passed as the second argument. For Example:",children:[{type:"code",language:"js",content:"table.timestamp('created_at').defaultTo(knex.fn.now());"}]},{type:"method",method:"timestamps",example:"table.timestamps([useTimestamps], [defaultToNow])",description:"Adds a created_at and updated_at column on the database, setting these each to dateTime types. When true is passed as the first argument a timestamp type is used. Both colums default to being not null and the current timestamp when true is passed as the second argument.",children:[]},{type:"method",method:"dropTimestamps",example:"table.dropTimestamps()",description:"Drops the columns created_at and updated_at from the table, which can be created via timestamps.",children:[]},{type:"method",method:"binary",example:"table.binary(name, [length])",description:"Adds a binary column, with optional length argument for MySQL.",children:[]},{type:"method",method:"enum / enu",example:"table.enu(col, values)",description:"Adds a enum column, (aliased to enu, as enum is a reserved word in JavaScript). Note that the second argument is an array of values. Example:",children:[{type:"code",language:"js",content:"table.enu('column', ['value1', 'value2'])"}]},{type:"method",method:"json",example:"table.json(name)",children:[{type:"text",content:"Adds a json column, using the built-in json type in postgresql, defaulting to a text column in older versions of postgresql or in unsupported databases. Note that when setting an array (or a value that could be an array) as the value of a json or jsonb column, you should use JSON.stringify() to convert your value to a string prior to passing it to the query builder, e.g."},{type:"code",language:"js",content:"\n knex.table('users')\n .where({id: 1})\n .update({json_data: JSON.stringify(mightBeAnArray)});\n "},{type:"text",content:"This is because postgresql has a native array type which uses a syntax incompatible with json; knex has no way of knowing which syntax to use, and calling JSON.stringify() forces json-style syntax."}]},{type:"method",method:"jsonb",example:"table.jsonb(name)",description:"Adds a jsonb column. Works similar to table.json(), but uses native jsonb type if possible.",children:[]},{type:"method",method:"uuid",example:"table.uuid(name)",description:"Adds a uuid column - this uses the built-in uuid type in postgresql, and falling back to a char(36) in other databases.",children:[]},{type:"method",method:"comment",example:"table.comment(value)",description:"Sets the comment for a table.",children:[]},{type:"method",method:"engine",example:"table.engine(val)",description:"Sets the engine for the database table, only available within a createTable call, and only applicable to MySQL.",children:[]},{type:"method",method:"charset",example:"table.charset(val)",description:"Sets the charset for the database table, only available within a createTable call, and only applicable to MySQL.",children:[]},{type:"method",method:"collate",example:"table.collate(val)",description:"Sets the collation for the database table, only available within a createTable call, and only applicable to MySQL.",children:[]},{type:"method",method:"inherits",example:"table.inherits(val)",description:"Sets the tables that this table inherits, only available within a createTable call, and only applicable to PostgreSQL.",children:[]},{type:"method",method:"specificType",example:"table.specificType(name, type)",description:"Sets a specific type for the column creation, if you'd like to add a column type that isn't supported here.",children:[]},{type:"method",method:"index",example:"table.index(columns, [indexName], [indexType])",description:"Adds an index to a table over the given columns. A default index name using the columns is used unless indexName is specified. The indexType can be optionally specified for PostgreSQL.",children:[]},{type:"method",method:"dropIndex",example:"table.dropIndex(columns, [indexName])",description:"Drops an index from a table. A default index name using the columns is used unless indexName is specified (in which case columns is ignored).",children:[]},{type:"method",method:"unique",example:"table.unique(columns, [indexName])",description:"Adds an unique index to a table over the given `columns`. A default index name using the columns is used unless indexName is specified.",children:[{type:"code",language:"js",content:"\n knex.schema.alterTable('users', function(t) {\n t.unique('email')\n })\n knex.schema.alterTable('job', function(t) {\n t.unique(['account_id', 'program_id'])\n })\n "}]},{type:"method",method:"foreign",example:"table.foreign(columns, [foreignKeyName])",description:"Adds a foreign key constraint to a table for an existing column using `table.foreign(column).references(column)` or multiple columns using `table.foreign(columns).references(columns)`. A default key name using the columns is used unless foreignKeyName is specified. You can also chain onDelete and/or onUpdate to set the reference option (RESTRICT, CASCADE, SET NULL, NO ACTION) for the operation. Note, this is the same as column.references(column) but works for existing columns.",children:[{type:"code",language:"js",content:"\n knex.schema.table('users', function (table) {\n table.integer('user_id').unsigned()\n table.foreign('user_id').references('Items.user_id_in_items')\n })\n "}]},{type:"method",method:"dropForeign",example:"table.dropForeign(columns, [foreignKeyName])",description:"Drops a foreign key constraint from a table. A default foreign key name using the columns is used unless foreignKeyName is specified (in which case columns is ignored).",children:[]},{type:"method",method:"dropUnique",example:"table.dropUnique(columns, [indexName])",description:"Drops a unique key constraint from a table. A default unique key name using the columns is used unless indexName is specified (in which case columns is ignored).",children:[]},{type:"method",method:"dropPrimary",example:"table.dropPrimary([constraintName])",description:"Drops the primary key constraint on a table. Defaults to tablename_pkey unless constraintName is specified.",children:[]},{type:"heading",size:"md",content:"Chainable Methods:",href:"Chainable"},{type:"text",content:"The following three methods may be chained on the schema building methods, as modifiers to the column."},{type:"method",method:"alter",example:"column.alter()",description:"Marks the column as an alter / modify, instead of the default add. Note: This only works in .alterTable() and is not supported by SQlite. Alter is *not* done incrementally over older column type so if you like to add `notNull` and keep the old default value, the alter statement must contain both `.notNull().defaultTo(1).alter()`. If one just tries to add `.notNull().alter()` the old default value will be dropped.",children:[]},{type:"code",content:"\n knex.schema.alterTable('user', function(t) {\n t.increments().primary(); // add\n // drops previous default value from column, change type to string and add not nullable constraint\n t.string('username', 35).notNullable().alter(); \n // drops both not null contraint and the default value\n t.integer('age').alter(); \n });\n "},{type:"method",method:"index",example:"column.index([indexName], [indexType])",description:"Specifies a field as an index. If an indexName is specified, it is used in place of the standard index naming convention of tableName_columnName. The indexType can be optionally specified for PostgreSQL. No-op if this is chained off of a field that cannot be indexed.",children:[]},{type:"method",method:"primary",example:"column.primary([constraintName])",description:"\n When called on a single column it will set that column as the primary key for a table.\n To create a compound primary key, pass an array of column names:\n `table.primary(['column1', 'column2'])`.\n Constraint name defaults to `tablename_pkey` unless `constraintName` is specified.\n ",children:[]},{type:"method",method:"unique",example:"column.unique()",description:"Sets the column as unique.",children:[]},{type:"method",method:"references",example:"column.references(column)",description:'Sets the "column" that the current column references as a foreign key. "column" can either be "." syntax, or just the column name followed up with a call to inTable to specify the table.\n\n
    ',children:[]},{type:"method",method:"inTable",example:"column.inTable(table)",description:'Sets the "table" where the foreign key column is located after calling column.references.',children:[]},{type:"method",method:"onDelete",example:"column.onDelete(command)",description:'Sets the SQL command to be run "onDelete".',children:[]},{type:"method",method:"onUpdate",example:"column.onUpdate(command)",description:'Sets the SQL command to be run "onUpdate".',children:[]},{type:"method",method:"defaultTo",example:"column.defaultTo(value)",description:"Sets the default value for the column on an insert.",children:[]},{type:"method",method:"unsigned",example:"column.unsigned()",description:"Specifies an integer as unsigned. No-op if this is chained off of a non-integer field.",children:[]},{type:"method",method:"notNullable",example:"column.notNullable()",description:"Adds a not null on the current column being created.",children:[]},{type:"method",method:"nullable",example:"column.nullable()",description:"Default on column creation, this explicitly sets a field to be nullable.",children:[]},{type:"method",method:"first",example:"column.first()",description:"Sets the column to be inserted on the first position, only used in MySQL alter tables.",children:[]},{type:"method",method:"after",example:"column.after(field)",description:"Sets the column to be inserted after another, only used in MySQL alter tables.",children:[]},{type:"method",method:"comment",example:"column.comment(value)",description:"Sets the comment for a column.",children:[]},{type:"code",content:"\n knex.schema.createTable('accounts', function(t) {\n t.increments().primary();\n t.string('email').unique().comment('This is the email field');\n });\n "},{type:"method",method:"collate",example:"column.collate(collation)",description:"Sets the collation for a column (only works in MySQL). Here is a list of all available collations: https://dev.mysql.com/doc/refman/5.5/en/charset-charsets.html",children:[]},{type:"code",content:"\n knex.schema.createTable('users', function(t) {\n t.increments();\n t.string('email').unique().collate('utf8_unicode_ci');\n });\n "}],e.exports=t.default},function(e,t){"use strict";t.__esModule=!0,t.default=[{type:"heading", +size:"md",content:"Seed API",href:"Seeds-API"},{type:"text",content:["`knex.seed` is the class utilized by the knex seed CLI.","Each method takes an optional `config` object, which may specify the following properties:"]},{type:"list",content:["`directory`: a relative path to the directory containing the seed files (default `./seeds`)","`loadExtensions`: array of file extensions which knex will treat as seeds. For example, if you have typescript transpiled into javascript in the same folder, you want to execute only javascript seeds. In this case, set `loadExtensions` to `['.js']` (Notice the dot!) (default `['.co', '.coffee', '.eg', '.iced', '.js', '.litcoffee', '.ls', '.ts']`)"]},{type:"heading",size:"sm",content:"Methods",href:"Seeds-API-methods"},{type:"method",method:"make",example:"knex.seed.make(name, [config])",description:"Creates a new seed file, with the name of the seed file being added.",children:[]},{type:"method",method:"run",example:"knex.seed.run([config])",description:"Runs all seed files for the current environment.",children:[]}],e.exports=t.default},function(e,t){"use strict";t.__esModule=!0,t.default=[{type:"heading",size:"lg",content:"Support",href:"support"},{type:"text",content:"Have questions about the library? Come join us in the [#bookshelf freenode IRC](http://webchat.freenode.net/?channels=bookshelf) channel for support on knex.js and [bookshelf.js](http://bookshelfjs.org), or post an issue on [Stack Overflow](http://stackoverflow.com/questions/tagged/knex.js) or in the GitHub [issue tracker](https://github.com/tgriesser/knex/issues)."}],e.exports=t.default},function(e,t){"use strict";t.__esModule=!0,t.default=[{type:"heading",size:"lg",content:"Transactions",href:"Transactions"},{type:"text",content:["Transactions are an important feature of relational databases, as they allow correct recovery from failures and keep a database consistent even in cases of system failure. All queries within a transaction are executed on the same database connection, and run the entire set of queries as a single unit of work. Any failure will mean the database will rollback any queries executed on that connection to the pre-transaction state.",'Transactions are handled by passing a handler function into `knex.transaction`. The handler function accepts a single argument, an object which may be used in two ways:\n\n1. As the "promise aware" knex connection\n2. As an object passed into a query with [](#Builder-transacting)and eventually call commit or rollback.\n\nConsider these two examples:']},{type:"code",language:"js",content:"\n var Promise = require('bluebird');\n\n // Using trx as a query builder:\n knex.transaction(function(trx) {\n\n var books = [\n {title: 'Canterbury Tales'},\n {title: 'Moby Dick'},\n {title: 'Hamlet'}\n ];\n\n return trx\n .insert({name: 'Old Books'}, 'id')\n .into('catalogues')\n .then(function(ids) {\n return Promise.map(books, function(book) {\n book.catalogue_id = ids[0];\n\n // Some validation could take place here.\n\n return trx.insert(info).into('books');\n });\n });\n })\n .then(function(inserts) {\n console.log(inserts.length + ' new books saved.');\n })\n .catch(function(error) {\n // If we get here, that means that neither the 'Old Books' catalogues insert,\n // nor any of the books inserts will have taken place.\n console.error(error);\n });\n "},{type:"text",content:"And then this example:"},{type:"code",language:"js",content:"\n var Promise = require('bluebird');\n\n // Using trx as a transaction object:\n knex.transaction(function(trx) {\n\n var books = [\n {title: 'Canterbury Tales'},\n {title: 'Moby Dick'},\n {title: 'Hamlet'}\n ];\n\n knex.insert({name: 'Old Books'}, 'id')\n .into('catalogues')\n .transacting(trx)\n .then(function(ids) {\n return Promise.map(books, function(book) {\n book.catalogue_id = ids[0];\n\n // Some validation could take place here.\n\n return knex.insert(info).into('books').transacting(trx);\n });\n })\n .then(trx.commit)\n .catch(trx.rollback);\n })\n .then(function(inserts) {\n console.log(inserts.length + ' new books saved.');\n })\n .catch(function(error) {\n // If we get here, that means that neither the 'Old Books' catalogues insert,\n // nor any of the books inserts will have taken place.\n console.error(error);\n });\n "},{type:"text",content:["Throwing an error directly from the transaction handler function automatically rolls back the transaction, same as returning a rejected promise.","Notice that if a promise is not returned within the handler, it is up to you to ensure `trx.commit`, or `trx.rollback` are called, otherwise the transaction connection will hang."]}],e.exports=t.default},function(e,t){"use strict";t.__esModule=!0,t.default=[{type:"heading",size:"lg",content:"Upgrading 0.13 -> 0.14"},{type:"text",content:["[generic-pool](https://github.com/coopernurse/node-pool) was upgraded to v3. If you have specified `idleTimeoutMillis` or `softIdleTimeoutMillis` in the pool config then you will need to add `evictionRunIntervalMillis: 1000` when upgrading to 0.14.","See original [issue #2322](https://github.com/tgriesser/knex/issues/2322) for details."]}],e.exports=t.default},function(e,t){"use strict";t.__esModule=!0,t.default=[{type:"heading",size:"lg",content:"Utility",href:"Utility"},{type:"text",content:"A collection of utilities that the knex library provides for convenience."},{type:"heading",size:"md",content:"Batch Insert",href:"Utility-BatchInsert"},{type:"text",content:["The `batchInsert` utility will insert a batch of rows wrapped inside a transaction _(which is automatically created unless explicitly given a transaction using [transacting](#Builder-transacting))_, at a given `chunkSize`.","It's primarily designed to be used when you have thousands of rows to insert into a table.","By default, the `chunkSize` is set to 1000.","BatchInsert also allows for [returning values](#Builder-returning) and supplying transactions using [transacting](#Builder-transacting)."]},{type:"code",language:"js",content:"\n var rows = [{...}, {...}];\n var chunkSize = 30;\n knex.batchInsert('TableName', rows, chunkSize)\n .returning('id')\n .then(function(ids) { ... })\n .catch(function(error) { ... });\n\n knex.transaction(function(tr) {\n return knex.batchInsert('TableName', rows, chunkSize)\n .transacting(tr)\n })\n .then(function() { ... })\n .catch(function(error) { ... });\n "}],e.exports=t.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e){return e.replace(/#(\d+)/g,function(e,t){return"["+e+"](https://github.com/tgriesser/knex/issues/"+t+")"})}function o(e){for(var t=s.default.lexer(e,{renderer:u}),n=[],r=void 0,o=void 0;t.length;){var a=t.shift();if("heading"===a.type){if(1===a.depth){var l=a.text.split("-").map(function(e){return e.trim()}),c=l[0],f=l[1];r=[],n.push({version:c,date:f,changes:r});continue}o=[],r.push({title:a.text,changes:o})}if("list_start"===a.type){for(var h=o||r;"list_end"!==a.type;)a=t.shift(),"text"===a.type&&h.push(i(a.text));o&&(o=null)}}return n}t.__esModule=!0,t.default=o;var a=n(340),s=r(a),u=new s.default.Renderer;e.exports=t.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e,t){return t.map(function(t,n){var r=(0,a.default)({},t,{group:e,key:e+"-"+n});switch(r.children&&(r.children=i(e,r.children)),t.type){case"heading":return u.default.createElement(c.default,r);case"code":return u.default.createElement(h.default,r);case"method":return u.default.createElement(y.default,r);case"runnable":return u.default.createElement(b.default,r);case"list":return u.default.createElement(g.default,r);case"info":case"text":return u.default.createElement(d.default,r)}})}t.__esModule=!0;var o=n(245),a=r(o);t.default=i;var s=n(20),u=r(s),l=n(400),c=r(l),f=n(396),h=r(f),p=n(406),d=r(p),m=n(240),g=r(m),v=n(402),y=r(v),_=n(403),b=r(_);e.exports=t.default},function(e,t,n){e.exports={default:n(463),__esModule:!0}},function(e,t,n){e.exports={default:n(467),__esModule:!0}},function(e,t,n){e.exports={default:n(473),__esModule:!0}},function(e,t,n){e.exports={default:n(476),__esModule:!0}},function(e,t){"use strict";function n(e){var t=e.length;if(t%4>0)throw new Error("Invalid string. Length must be a multiple of 4");return"="===e[t-2]?2:"="===e[t-1]?1:0}function r(e){return 3*e.length/4-n(e)}function i(e){var t,r,i,o,a,s=e.length;o=n(e),a=new c(3*s/4-o),r=o>0?s-4:s;var u=0;for(t=0;t>16&255,a[u++]=i>>8&255,a[u++]=255&i;return 2===o?(i=l[e.charCodeAt(t)]<<2|l[e.charCodeAt(t+1)]>>4,a[u++]=255&i):1===o&&(i=l[e.charCodeAt(t)]<<10|l[e.charCodeAt(t+1)]<<4|l[e.charCodeAt(t+2)]>>2,a[u++]=i>>8&255,a[u++]=255&i),a}function o(e){return u[e>>18&63]+u[e>>12&63]+u[e>>6&63]+u[63&e]}function a(e,t,n){for(var r,i=[],a=t;ac?c:l+s));return 1===r?(t=e[n-1],i+=u[t>>2],i+=u[t<<4&63],i+="=="):2===r&&(t=(e[n-2]<<8)+e[n-1],i+=u[t>>10],i+=u[t>>4&63],i+=u[t<<2&63],i+="="),o.push(i),o.join("")}t.byteLength=r,t.toByteArray=i,t.fromByteArray=s;for(var u=[],l=[],c="undefined"!=typeof Uint8Array?Uint8Array:Array,f="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",h=0,p=f.length;h0;){var t=e.shift();if("function"==typeof t){var n=e.shift(),r=e.shift();t.call(n,r)}else t._settlePromises()}},r.prototype._drainQueues=function(){this._drainQueue(this._normalQueue),this._reset(),this._haveDrainedQueues=!0,this._drainQueue(this._lateQueue)},r.prototype._queueTick=function(){this._isTickUsed||(this._isTickUsed=!0,this._schedule(this.drainQueues))},r.prototype._reset=function(){this._isTickUsed=!1},e.exports=r,e.exports.firstLineError=s}).call(t,n(17))},function(e,t){"use strict";e.exports=function(e,t,n,r){var i=!1,o=function(e,t){this._reject(t)},a=function(e,t){t.promiseRejectionQueued=!0,t.bindingPromise._then(o,o,null,this,e)},s=function(e,t){0===(50397184&this._bitField)&&this._resolveCallback(t.target)},u=function(e,t){t.promiseRejectionQueued||this._reject(e)};e.prototype.bind=function(o){i||(i=!0,e.prototype._propagateFrom=r.propagateFromFunction(),e.prototype._boundValue=r.boundValueFunction());var l=n(o),c=new e(t);c._propagateFrom(this,1);var f=this._target();if(c._setBoundTo(l),l instanceof e){var h={promiseRejectionQueued:!1,promise:c,target:f,bindingPromise:l};f._then(t,a,void 0,c,h),l._then(s,u,void 0,c,h),c._setOnCancel(l)}else c._resolveCallback(f);return c},e.prototype._setBoundTo=function(e){void 0!==e?(this._bitField=2097152|this._bitField,this._boundTo=e):this._bitField=this._bitField&-2097153},e.prototype._isBound=function(){return 2097152===(2097152&this._bitField)},e.bind=function(t,n){return e.resolve(n).bind(t)}}},function(e,t,n){"use strict";var r=Object.create;if(r){var i=r(null),o=r(null);i[" size"]=o[" size"]=0}e.exports=function(e){function t(t,n){var r;if(null!=t&&(r=t[n]),"function"!=typeof r){var i="Object "+c.classString(t)+" has no method '"+c.toString(n)+"'";throw new e.TypeError(i)}return r}function r(e){var n=this.pop(),r=t(e,n);return r.apply(e,this)}function a(e){return e[this]}function s(e){var t=+this;return t<0&&(t=Math.max(0,t+e.length)),e[t]}var u,l,c=n(12),f=c.canEvaluate,h=c.isIdentifier,p=function(e){return new Function("ensureMethod"," \n\t return function(obj) { \n\t 'use strict' \n\t var len = this.length; \n\t ensureMethod(obj, 'methodName'); \n\t switch(len) { \n\t case 1: return obj.methodName(this[0]); \n\t case 2: return obj.methodName(this[0], this[1]); \n\t case 3: return obj.methodName(this[0], this[1], this[2]); \n\t case 0: return obj.methodName(); \n\t default: \n\t return obj.methodName.apply(obj, this); \n\t } \n\t }; \n\t ".replace(/methodName/g,e))(t)},d=function(e){return new Function("obj"," \n\t 'use strict'; \n\t return obj.propertyName; \n\t ".replace("propertyName",e))},m=function(e,t,n){var r=n[e];if("function"!=typeof r){if(!h(e))return null;if(r=t(e),n[e]=r,n[" size"]++,n[" size"]>512){for(var i=Object.keys(n),o=0;o<256;++o)delete n[i[o]];n[" size"]=i.length-256}}return r};u=function(e){return m(e,p,i)},l=function(e){return m(e,d,o)},e.prototype.call=function(e){for(var t=arguments.length,n=new Array(Math.max(t-1,0)),i=1;i0&&this._settlePromises()},e.prototype._unsetOnCancel=function(){this._onCancelField=void 0},e.prototype._isCancellable=function(){return this.isPending()&&!this._isCancelled()},e.prototype.isCancellable=function(){return this.isPending()&&!this.isCancelled()},e.prototype._doInvokeOnCancel=function(e,t){if(o.isArray(e))for(var n=0;n=0)return o[e]}var i=!1,o=[];return e.prototype._promiseCreated=function(){},e.prototype._pushContext=function(){},e.prototype._popContext=function(){return null},e._peekContext=e.prototype._peekContext=function(){},t.prototype._pushContext=function(){void 0!==this._trace&&(this._trace._promiseCreated=null,o.push(this._trace))},t.prototype._popContext=function(){if(void 0!==this._trace){var e=o.pop(),t=e._promiseCreated;return e._promiseCreated=null,t}return null},t.CapturedTrace=null,t.create=n,t.deactivateLongStackTraces=function(){},t.activateLongStackTraces=function(){var n=e.prototype._pushContext,o=e.prototype._popContext,a=e._peekContext,s=e.prototype._peekContext,u=e.prototype._promiseCreated;t.deactivateLongStackTraces=function(){e.prototype._pushContext=n,e.prototype._popContext=o,e._peekContext=a,e.prototype._peekContext=s,e.prototype._promiseCreated=u,i=!1},i=!0,e.prototype._pushContext=t.prototype._pushContext,e.prototype._popContext=t.prototype._popContext,e._peekContext=e.prototype._peekContext=r,e.prototype._promiseCreated=function(){var e=this._peekContext();e&&null==e._promiseCreated&&(e._promiseCreated=this)}},t}},function(e,t,n){(function(t){"use strict";e.exports=function(e,r){function i(e,t){return{promise:t}}function o(){return!1}function a(e,t,n){var r=this;try{e(t,n,function(e){if("function"!=typeof e)throw new TypeError("onCancel must be a function, got: "+F.toString(e));r._attachCancellationCallback(e)})}catch(e){return e}}function s(e){if(!this._isCancellable())return this;var t=this._onCancel();void 0!==t?F.isArray(t)?t.push(e):this._setOnCancel([t,e]):this._setOnCancel(e)}function u(){return this._onCancelField}function l(e){this._onCancelField=e}function c(){this._cancellationParent=void 0,this._onCancelField=void 0}function f(e,t){if(0!==(1&t)){this._cancellationParent=e;var n=e._branchesRemainingToCancel;void 0===n&&(n=0),e._branchesRemainingToCancel=n+1}0!==(2&t)&&e._isBound()&&this._setBoundTo(e._boundTo)}function h(e,t){0!==(2&t)&&e._isBound()&&this._setBoundTo(e._boundTo)}function p(){var t=this._boundTo;return void 0!==t&&t instanceof e?t.isFulfilled()?t.value():void 0:t}function d(){this._trace=new M(this._peekContext())}function m(e,t){if(D(e)){var n=this._trace;if(void 0!==n&&t&&(n=n._parent),void 0!==n)n.attachExtraTrace(e);else if(!e.__stackCleaned__){var r=k(e);F.notEnumerableProp(e,"stack",r.message+"\n"+r.stack.join("\n")),F.notEnumerableProp(e,"__stackCleaned__",!0)}}}function g(e,t,n,r,i){if(void 0===e&&null!==t&&J){if(void 0!==i&&i._returnedNonUndefined())return;if(0===(65535&r._bitField))return;n&&(n+=" ");var o="",a="";if(t._trace){for(var s=t._trace.stack.split("\n"),u=x(s),l=u.length-1;l>=0;--l){var c=u[l];if(!z.test(c)){var f=c.match(W);f&&(o="at "+f[1]+":"+f[2]+":"+f[3]+" ");break}}if(u.length>0)for(var h=u[0],l=0;l0&&(a="\n"+s[l-1]);break}}var p="a promise was created in a "+n+"handler "+o+"but was not returned from it, see http://goo.gl/rRqMUw"+a;r._warn(p,!0,t)}}function v(e,t){var n=e+" is deprecated and will be removed in a future version.";return t&&(n+=" Use "+t+" instead."),y(n)}function y(t,n,r){if(ae.warnings){var i,o=new L(t);if(n)r._attachExtraTrace(o);else if(ae.longStackTraces&&(i=e._peekContext()))i.attachExtraTrace(o);else{var a=k(o);o.stack=a.message+"\n"+a.stack.join("\n")}te("warning",o)||C(o,"",!0)}}function _(e,t){for(var n=0;n=0;--s)if(r[s]===o){a=s;break}for(var s=a;s>=0;--s){var u=r[s];if(t[i]!==u)break;t.pop(),i--}t=r}}function x(e){for(var t=[],n=0;n0&&"SyntaxError"!=e.name&&(t=t.slice(n)),t}function k(e){var t=e.stack,n=e.toString();return t="string"==typeof t&&t.length>0?E(e):[" (No stack trace)"],{message:n,stack:"SyntaxError"==e.name?t:x(t)}}function C(e,t,n){if("undefined"!=typeof console){var r;if(F.isObject(e)){var i=e.stack;r=t+H(i,e)}else r=t+String(e);"function"==typeof P?P(r,n):"function"!=typeof console.log&&"object"!=typeof console.log||console.log(r)}}function S(e,t,n,r){var i=!1;try{"function"==typeof t&&(i=!0,"rejectionHandled"===e?t(r):t(n,r))}catch(e){B.throwLater(e)}"unhandledRejection"===e?te(e,n,r)||i||C(n,"Unhandled rejection "):te(e,r)}function T(e){var t;if("function"==typeof e)t="[function "+(e.name||"anonymous")+"]";else{t=e&&"function"==typeof e.toString?e.toString():F.toString(e);var n=/\[object [a-zA-Z0-9$_]+\]/;if(n.test(t))try{var r=JSON.stringify(e);t=r}catch(e){}0===t.length&&(t="(empty array)")}return"(<"+N(t)+">, no stack trace)"}function N(e){var t=41;return e.length=s||(re=function(e){if(U.test(e))return!0;var t=R(e);return!!(t&&t.fileName===n&&a<=t.line&&t.line<=s)})}}function M(e){this._parent=e,this._promisesCreated=0;var t=this._length=1+(void 0===e?0:e._length);oe(this,M),t>32&&this.uncycle()}var j,I,P,q=e._getDomain,B=e._async,L=n(45).Warning,F=n(12),D=F.canAttachTrace,U=/[\\\/]bluebird[\\\/]js[\\\/](release|debug|instrumented)/,z=/\((?:timers\.js):\d+:\d+\)/,W=/[\/<\(](.+?):(\d+):(\d+)\)?\s*$/,Q=null,H=null,V=!1,K=!(0==F.env("BLUEBIRD_DEBUG")||!F.env("BLUEBIRD_DEBUG")&&"development"!==F.env("NODE_ENV")),$=!(0==F.env("BLUEBIRD_WARNINGS")||!K&&!F.env("BLUEBIRD_WARNINGS")),G=!(0==F.env("BLUEBIRD_LONG_STACK_TRACES")||!K&&!F.env("BLUEBIRD_LONG_STACK_TRACES")),J=0!=F.env("BLUEBIRD_W_FORGOTTEN_RETURN")&&($||!!F.env("BLUEBIRD_W_FORGOTTEN_RETURN"));e.prototype.suppressUnhandledRejections=function(){var e=this._target();e._bitField=e._bitField&-1048577|524288},e.prototype._ensurePossibleRejectionHandled=function(){if(0===(524288&this._bitField)){this._setRejectionIsUnhandled();var e=this;setTimeout(function(){e._notifyUnhandledRejection()},1)}},e.prototype._notifyUnhandledRejectionIsHandled=function(){S("rejectionHandled",j,void 0,this)},e.prototype._setReturnedNonUndefined=function(){this._bitField=268435456|this._bitField},e.prototype._returnedNonUndefined=function(){return 0!==(268435456&this._bitField)},e.prototype._notifyUnhandledRejection=function(){if(this._isRejectionUnhandled()){var e=this._settledValue();this._setUnhandledRejectionIsNotified(),S("unhandledRejection",I,e,this)}},e.prototype._setUnhandledRejectionIsNotified=function(){this._bitField=262144|this._bitField},e.prototype._unsetUnhandledRejectionIsNotified=function(){this._bitField=this._bitField&-262145},e.prototype._isUnhandledRejectionNotified=function(){return(262144&this._bitField)>0},e.prototype._setRejectionIsUnhandled=function(){this._bitField=1048576|this._bitField},e.prototype._unsetRejectionIsUnhandled=function(){this._bitField=this._bitField&-1048577,this._isUnhandledRejectionNotified()&&(this._unsetUnhandledRejectionIsNotified(),this._notifyUnhandledRejectionIsHandled())},e.prototype._isRejectionUnhandled=function(){return(1048576&this._bitField)>0},e.prototype._warn=function(e,t,n){return y(e,t,n||this)},e.onPossiblyUnhandledRejection=function(e){var t=q();I="function"==typeof e?null===t?e:F.domainBind(t,e):void 0},e.onUnhandledRejectionHandled=function(e){var t=q();j="function"==typeof e?null===t?e:F.domainBind(t,e):void 0};var Y=function(){};e.longStackTraces=function(){if(B.haveItemsQueued()&&!ae.longStackTraces)throw new Error("cannot enable long stack traces after promises have been created\n\n See http://goo.gl/MqrFmX\n");if(!ae.longStackTraces&&A()){var t=e.prototype._captureStackTrace,n=e.prototype._attachExtraTrace;ae.longStackTraces=!0,Y=function(){if(B.haveItemsQueued()&&!ae.longStackTraces)throw new Error("cannot enable long stack traces after promises have been created\n\n See http://goo.gl/MqrFmX\n");e.prototype._captureStackTrace=t,e.prototype._attachExtraTrace=n,r.deactivateLongStackTraces(),B.enableTrampoline(),ae.longStackTraces=!1},e.prototype._captureStackTrace=d,e.prototype._attachExtraTrace=m,r.activateLongStackTraces(),B.disableTrampolineIfNecessary()}},e.hasLongStackTraces=function(){return ae.longStackTraces&&A()};var X=function(){try{if("function"==typeof CustomEvent){var e=new CustomEvent("CustomEvent");return F.global.dispatchEvent(e),function(e,t){var n=new CustomEvent(e.toLowerCase(),{detail:t,cancelable:!0});return!F.global.dispatchEvent(n)}}if("function"==typeof Event){var e=new Event("CustomEvent");return F.global.dispatchEvent(e),function(e,t){var n=new Event(e.toLowerCase(),{cancelable:!0});return n.detail=t,!F.global.dispatchEvent(n)}}var e=document.createEvent("CustomEvent");return e.initCustomEvent("testingtheevent",!1,!0,{}),F.global.dispatchEvent(e),function(e,t){var n=document.createEvent("CustomEvent");return n.initCustomEvent(e.toLowerCase(),!1,!0,t),!F.global.dispatchEvent(n)}}catch(e){}return function(){return!1}}(),Z=function(){return F.isNode?function(){return t.emit.apply(t,arguments)}:F.global?function(e){var t="on"+e.toLowerCase(),n=F.global[t];return!!n&&(n.apply(F.global,[].slice.call(arguments,1)),!0)}:function(){return!1}}(),ee={promiseCreated:i,promiseFulfilled:i,promiseRejected:i,promiseResolved:i,promiseCancelled:i,promiseChained:function(e,t,n){return{promise:t,child:n}},warning:function(e,t){return{warning:t}},unhandledRejection:function(e,t,n){return{reason:t,promise:n}},rejectionHandled:i},te=function(e){var t=!1;try{t=Z.apply(null,arguments)}catch(e){B.throwLater(e),t=!0}var n=!1;try{n=X(e,ee[e].apply(null,arguments))}catch(e){B.throwLater(e),n=!0}return n||t};e.config=function(t){if(t=Object(t),"longStackTraces"in t&&(t.longStackTraces?e.longStackTraces():!t.longStackTraces&&e.hasLongStackTraces()&&Y()),"warnings"in t){var n=t.warnings;ae.warnings=!!n,J=ae.warnings,F.isObject(n)&&"wForgottenReturn"in n&&(J=!!n.wForgottenReturn)}if("cancellation"in t&&t.cancellation&&!ae.cancellation){if(B.haveItemsQueued())throw new Error("cannot enable cancellation after promises are in use");e.prototype._clearCancellationData=c,e.prototype._propagateFrom=f,e.prototype._onCancel=u,e.prototype._setOnCancel=l,e.prototype._attachCancellationCallback=s,e.prototype._execute=a,ne=f,ae.cancellation=!0}return"monitoring"in t&&(t.monitoring&&!ae.monitoring?(ae.monitoring=!0,e.prototype._fireEvent=te):!t.monitoring&&ae.monitoring&&(ae.monitoring=!1,e.prototype._fireEvent=o)),e},e.prototype._fireEvent=o,e.prototype._execute=function(e,t,n){try{e(t,n)}catch(e){return e}},e.prototype._onCancel=function(){},e.prototype._setOnCancel=function(e){},e.prototype._attachCancellationCallback=function(e){},e.prototype._captureStackTrace=function(){},e.prototype._attachExtraTrace=function(){},e.prototype._clearCancellationData=function(){},e.prototype._propagateFrom=function(e,t){};var ne=h,re=function(){return!1},ie=/[\/<\(]([^:\/]+):(\d+):(?:\d+)\)?\s*$/;F.inherits(M,Error),r.CapturedTrace=M,M.prototype.uncycle=function(){var e=this._length;if(!(e<2)){for(var t=[],n={},r=0,i=this;void 0!==i;++r)t.push(i),i=i._parent;e=this._length=r;for(var r=e-1;r>=0;--r){var o=t[r].stack;void 0===n[o]&&(n[o]=r)}for(var r=0;r0&&(t[s-1]._parent=void 0,t[s-1]._length=1),t[r]._parent=void 0,t[r]._length=1;var u=r>0?t[r-1]:this;s=0;--c)t[c]._length=l,l++;return}}}},M.prototype.attachExtraTrace=function(e){if(!e.__stackCleaned__){this.uncycle();for(var t=k(e),n=t.message,r=[t.stack],i=this;void 0!==i;)r.push(x(i.stack.split("\n"))),i=i._parent;w(r),b(r),F.notEnumerableProp(e,"stack",_(n,r)),F.notEnumerableProp(e,"__stackCleaned__",!0)}};var oe=function(){var e=/^\s*at\s*/,t=function(e,t){return"string"==typeof e?e:void 0!==t.name&&void 0!==t.message?t.toString():T(t)};if("number"==typeof Error.stackTraceLimit&&"function"==typeof Error.captureStackTrace){Error.stackTraceLimit+=6,Q=e,H=t;var n=Error.captureStackTrace;return re=function(e){return U.test(e)},function(e,t){Error.stackTraceLimit+=6,n(e,t),Error.stackTraceLimit-=6}}var r=new Error;if("string"==typeof r.stack&&r.stack.split("\n")[0].indexOf("stackDetection@")>=0)return Q=/@/,H=t,V=!0,function(e){e.stack=(new Error).stack};var i;try{throw new Error}catch(e){i="stack"in e}return"stack"in r||!i||"number"!=typeof Error.stackTraceLimit?(H=function(e,t){return"string"==typeof e?e:"object"!=typeof t&&"function"!=typeof t||void 0===t.name||void 0===t.message?T(t):t.toString()},null):(Q=e,H=t,function(e){Error.stackTraceLimit+=6;try{throw new Error}catch(t){e.stack=t.stack}Error.stackTraceLimit-=6})}([]);"undefined"!=typeof console&&"undefined"!=typeof console.warn&&(P=function(e){ +console.warn(e)},F.isNode&&t.stderr.isTTY?P=function(e,t){var n=t?"":"";console.warn(n+e+"\n")}:F.isNode||"string"!=typeof(new Error).stack||(P=function(e,t){console.warn("%c"+e,t?"color: darkorange":"color: red")}));var ae={warnings:$,longStackTraces:!1,cancellation:!1,monitoring:!1};return G&&e.longStackTraces(),{longStackTraces:function(){return ae.longStackTraces},warnings:function(){return ae.warnings},cancellation:function(){return ae.cancellation},monitoring:function(){return ae.monitoring},propagateFromFunction:function(){return ne},boundValueFunction:function(){return p},checkForgottenReturns:g,setBounds:O,warn:y,deprecated:v,CapturedTrace:M,fireDomEvent:X,fireGlobalEvent:Z}}}).call(t,n(17))},function(e,t){"use strict";e.exports=function(e){function t(){return this.value}function n(){throw this.reason}e.prototype.return=e.prototype.thenReturn=function(n){return n instanceof e&&n.suppressUnhandledRejections(),this._then(t,void 0,void 0,{value:n},void 0)},e.prototype.throw=e.prototype.thenThrow=function(e){return this._then(n,void 0,void 0,{reason:e},void 0)},e.prototype.catchThrow=function(e){if(arguments.length<=1)return this._then(void 0,n,void 0,{reason:e},void 0);var t=arguments[1],r=function(){throw t};return this.caught(e,r)},e.prototype.catchReturn=function(n){if(arguments.length<=1)return n instanceof e&&n.suppressUnhandledRejections(),this._then(void 0,t,void 0,{value:n},void 0);var r=arguments[1];r instanceof e&&r.suppressUnhandledRejections();var i=function(){return r};return this.caught(n,i)}}},function(e,t){"use strict";e.exports=function(e,t){function n(){return o(this)}function r(e,n){return i(e,n,t,t)}var i=e.reduce,o=e.all;e.prototype.each=function(e){return i(this,e,t,0)._then(n,void 0,void 0,this,void 0)},e.prototype.mapSeries=function(e){return i(this,e,t,t)},e.each=function(e,r){return i(e,r,t,0)._then(n,void 0,void 0,e,void 0)},e.mapSeries=r}},function(e,t){"use strict";e.exports=function(e,t){var n=e.map;e.prototype.filter=function(e,r){return n(this,e,r,t)},e.filter=function(e,r,i){return n(e,r,i,t)}}},function(e,t,n){"use strict";e.exports=function(e,t,r){function i(e,t,n){this.promise=e,this.type=t,this.handler=n,this.called=!1,this.cancelPromise=null}function o(e){this.finallyHandler=e}function a(e,t){return null!=e.cancelPromise&&(arguments.length>1?e.cancelPromise._reject(t):e.cancelPromise._cancel(),e.cancelPromise=null,!0)}function s(){return l.call(this,this.promise._target()._settledValue())}function u(e){if(!a(this,e))return h.e=e,h}function l(n){var i=this.promise,l=this.handler;if(!this.called){this.called=!0;var c=this.isFinallyHandler()?l.call(i._boundValue()):l.call(i._boundValue(),n);if(c===r)return c;if(void 0!==c){i._setReturnedNonUndefined();var p=t(c,i);if(p instanceof e){if(null!=this.cancelPromise){if(p._isCancelled()){var d=new f("late cancellation observer");return i._attachExtraTrace(d),h.e=d,h}p.isPending()&&p._attachCancellationCallback(new o(this))}return p._then(s,u,void 0,this,void 0)}}}return i.isRejected()?(a(this),h.e=n,h):(a(this),n)}var c=n(12),f=e.CancellationError,h=c.errorObj,p=n(246)(r);return i.prototype.isFinallyHandler=function(){return 0===this.type},o.prototype._resultCancelled=function(){a(this.finallyHandler)},e.prototype._passThrough=function(e,t,n,r){return"function"!=typeof e?this.then():this._then(n,r,void 0,new i(this,t,e),void 0)},e.prototype.lastly=e.prototype.finally=function(e){return this._passThrough(e,0,l,l)},e.prototype.tap=function(e){return this._passThrough(e,1,l)},e.prototype.tapCatch=function(t){var n=arguments.length;if(1===n)return this._passThrough(t,1,void 0,l);var r,i=new Array(n-1),o=0;for(r=0;r0&&"function"==typeof arguments[o]&&(n=arguments[o],o<=8&&l)){var c=new e(i);c._captureStackTrace();for(var f=m[o-1],h=new f(n),p=g,d=0;d=1?a:0,new s(t,n,a,o).promise()}var l=e._getDomain,c=n(12),f=c.tryCatch,h=c.errorObj,p=e._async;c.inherits(s,t),s.prototype._asyncInit=function(){this._init$(void 0,-2)},s.prototype._init=function(){},s.prototype._promiseFulfilled=function(t,n){var r=this._values,o=this.length(),s=this._preservedValues,u=this._limit;if(n<0){if(n=n*-1-1,r[n]=t,u>=1&&(this._inFlight--,this._drainQueue(),this._isResolved()))return!0}else{if(u>=1&&this._inFlight>=u)return r[n]=t,this._queue.push(n),!1;null!==s&&(s[n]=t);var l=this._promise,c=this._callback,p=l._boundValue();l._pushContext();var d=f(c).call(p,t,n,o),m=l._popContext();if(a.checkForgottenReturns(d,m,null!==s?"Promise.filter":"Promise.map",l),d===h)return this._reject(d.e),!0;var g=i(d,this._promise);if(g instanceof e){g=g._target();var v=g._bitField;if(0===(50397184&v))return u>=1&&this._inFlight++,r[n]=g,g._proxy(this,(n+1)*-1),!1;if(0===(33554432&v))return 0!==(16777216&v)?(this._reject(g._reason()),!0):(this._cancel(),!0);d=g._value()}r[n]=d}var y=++this._totalResolved;return y>=o&&(null!==s?this._filter(r,s):this._resolve(r),!0)},s.prototype._drainQueue=function(){for(var e=this._queue,t=this._limit,n=this._values;e.length>0&&this._inFlight1){o.deprecated("calling Promise.try with more than 1 argument");var l=arguments[1],c=arguments[2];u=a.isArray(l)?s(n).apply(c,l):s(n).call(c,l)}else u=s(n)();var f=r._popContext();return o.checkForgottenReturns(u,f,"Promise.try",r),r._resolveFromSyncValue(u),r},e.prototype._resolveFromSyncValue=function(e){e===a.errorObj?this._rejectCallback(e.e,!1):this._resolveCallback(e,!0)}}},function(e,t,n){"use strict";e.exports=function(e){function t(e,t){var n=this;if(!o.isArray(e))return r.call(n,e,t);var i=s(t).apply(n._boundValue(),[null].concat(e));i===u&&a.throwLater(i.e)}function r(e,t){var n=this,r=n._boundValue(),i=void 0===e?s(t).call(r,null):s(t).call(r,null,e);i===u&&a.throwLater(i.e)}function i(e,t){var n=this;if(!e){var r=new Error(e+"");r.cause=e,e=r}var i=s(t).call(n._boundValue(),e);i===u&&a.throwLater(i.e)}var o=n(12),a=e._async,s=o.tryCatch,u=o.errorObj;e.prototype.asCallback=e.prototype.nodeify=function(e,n){if("function"==typeof e){var o=r;void 0!==n&&Object(n).spread&&(o=t),this._then(o,i,void 0,this,e)}return this}}},function(e,t,n){(function(t){"use strict";e.exports=function(){function r(){}function i(e,t){if(null==e||e.constructor!==o)throw new _("the promise constructor cannot be invoked directly\n\n See http://goo.gl/MqrFmX\n");if("function"!=typeof t)throw new _("expecting a function but got "+d.classString(t))}function o(e){e!==w&&i(this,e),this._bitField=0,this._fulfillmentHandler0=void 0,this._rejectionHandler0=void 0,this._promise0=void 0,this._receiver0=void 0,this._resolveFromExecutor(e),this._promiseCreated(),this._fireEvent("promiseCreated",this)}function a(e){this.promise._resolveCallback(e)}function s(e){this.promise._rejectCallback(e,!1)}function u(e){var t=new o(w);t._fulfillmentHandler0=e,t._rejectionHandler0=e,t._promise0=e,t._receiver0=e}var l,c=function(){return new _("circular promise resolution chain\n\n See http://goo.gl/MqrFmX\n")},f=function(){return new o.PromiseInspection(this._target())},h=function(e){return o.reject(new _(e))},p={},d=n(12);l=d.isNode?function(){var e=t.domain;return void 0===e&&(e=null),e}:function(){return null},d.notEnumerableProp(o,"_getDomain",l);var m=n(64),g=n(428),v=new g;m.defineProperty(o,"_async",{value:v});var y=n(45),_=o.TypeError=y.TypeError;o.RangeError=y.RangeError;var b=o.CancellationError=y.CancellationError;o.TimeoutError=y.TimeoutError,o.OperationalError=y.OperationalError,o.RejectionError=y.OperationalError,o.AggregateError=y.AggregateError;var w=function(){},x={},E={},k=n(454)(o,w),C=n(444)(o,w,k,h,r),S=n(432)(o),T=S.create,N=n(433)(o,S),A=(N.CapturedTrace,n(437)(o,k,E)),R=n(246)(E),O=n(247),M=d.errorObj,j=d.tryCatch;return o.prototype.toString=function(){return"[object Promise]"},o.prototype.caught=o.prototype.catch=function(e){var t=arguments.length;if(t>1){var n,r=new Array(t-1),i=0;for(n=0;n0&&"function"!=typeof e&&"function"!=typeof t){var n=".then() only accepts functions but was passed: "+d.classString(e);arguments.length>1&&(n+=", "+d.classString(t)),this._warn(n)}return this._then(e,t,void 0,void 0,void 0)},o.prototype.done=function(e,t){var n=this._then(e,t,void 0,void 0,void 0);n._setIsFinal()},o.prototype.spread=function(e){return"function"!=typeof e?h("expecting a function but got "+d.classString(e)):this.all()._then(e,void 0,void 0,x,void 0)},o.prototype.toJSON=function(){var e={isFulfilled:!1,isRejected:!1,fulfillmentValue:void 0,rejectionReason:void 0};return this.isFulfilled()?(e.fulfillmentValue=this.value(),e.isFulfilled=!0):this.isRejected()&&(e.rejectionReason=this.reason(),e.isRejected=!0),e},o.prototype.all=function(){return arguments.length>0&&this._warn(".all() was passed arguments but it does not take any"),new C(this).promise()},o.prototype.error=function(e){return this.caught(d.originatesFromRejection,e)},o.getNewLibraryCopy=e.exports,o.is=function(e){return e instanceof o},o.fromNode=o.fromCallback=function(e){var t=new o(w);t._captureStackTrace();var n=arguments.length>1&&!!Object(arguments[1]).multiArgs,r=j(e)(O(t,n));return r===M&&t._rejectCallback(r.e,!0),t._isFateSealed()||t._setAsyncGuaranteed(),t},o.all=function(e){return new C(e).promise()},o.cast=function(e){var t=k(e);return t instanceof o||(t=new o(w),t._captureStackTrace(),t._setFulfilled(),t._rejectionHandler0=e),t},o.resolve=o.fulfilled=o.cast,o.reject=o.rejected=function(e){var t=new o(w);return t._captureStackTrace(),t._rejectCallback(e,!0),t},o.setScheduler=function(e){if("function"!=typeof e)throw new _("expecting a function but got "+d.classString(e));return v.setScheduler(e)},o.prototype._then=function(e,t,n,r,i){var a=void 0!==i,s=a?i:new o(w),u=this._target(),c=u._bitField;a||(s._propagateFrom(this,3),s._captureStackTrace(),void 0===r&&0!==(2097152&this._bitField)&&(r=0!==(50397184&c)?this._boundValue():u===this?void 0:this._boundTo),this._fireEvent("promiseChained",this,s));var f=l();if(0!==(50397184&c)){var h,p,m=u._settlePromiseCtx;0!==(33554432&c)?(p=u._rejectionHandler0,h=e):0!==(16777216&c)?(p=u._fulfillmentHandler0,h=t,u._unsetRejectionIsUnhandled()):(m=u._settlePromiseLateCancellationObserver,p=new b("late cancellation observer"),u._attachExtraTrace(p),h=t),v.invoke(m,u,{handler:null===f?h:"function"==typeof h&&d.domainBind(f,h),promise:s,receiver:r,value:p})}else u._addCallbacks(e,t,s,r,f);return s},o.prototype._length=function(){return 65535&this._bitField},o.prototype._isFateSealed=function(){return 0!==(117506048&this._bitField)},o.prototype._isFollowing=function(){return 67108864===(67108864&this._bitField)},o.prototype._setLength=function(e){this._bitField=this._bitField&-65536|65535&e},o.prototype._setFulfilled=function(){this._bitField=33554432|this._bitField,this._fireEvent("promiseFulfilled",this)},o.prototype._setRejected=function(){this._bitField=16777216|this._bitField,this._fireEvent("promiseRejected",this)},o.prototype._setFollowing=function(){this._bitField=67108864|this._bitField,this._fireEvent("promiseResolved",this)},o.prototype._setIsFinal=function(){this._bitField=4194304|this._bitField},o.prototype._isFinal=function(){return(4194304&this._bitField)>0},o.prototype._unsetCancelled=function(){this._bitField=this._bitField&-65537},o.prototype._setCancelled=function(){this._bitField=65536|this._bitField,this._fireEvent("promiseCancelled",this)},o.prototype._setWillBeCancelled=function(){this._bitField=8388608|this._bitField},o.prototype._setAsyncGuaranteed=function(){v.hasCustomScheduler()||(this._bitField=134217728|this._bitField)},o.prototype._receiverAt=function(e){var t=0===e?this._receiver0:this[4*e-4+3];if(t!==p)return void 0===t&&this._isBound()?this._boundValue():t},o.prototype._promiseAt=function(e){return this[4*e-4+2]},o.prototype._fulfillmentHandlerAt=function(e){return this[4*e-4+0]},o.prototype._rejectionHandlerAt=function(e){return this[4*e-4+1]},o.prototype._boundValue=function(){},o.prototype._migrateCallback0=function(e){var t=(e._bitField,e._fulfillmentHandler0),n=e._rejectionHandler0,r=e._promise0,i=e._receiverAt(0);void 0===i&&(i=p),this._addCallbacks(t,n,r,i,null)},o.prototype._migrateCallbackAt=function(e,t){var n=e._fulfillmentHandlerAt(t),r=e._rejectionHandlerAt(t),i=e._promiseAt(t),o=e._receiverAt(t);void 0===o&&(o=p),this._addCallbacks(n,r,i,o,null)},o.prototype._addCallbacks=function(e,t,n,r,i){var o=this._length();if(o>=65531&&(o=0,this._setLength(0)),0===o)this._promise0=n,this._receiver0=r,"function"==typeof e&&(this._fulfillmentHandler0=null===i?e:d.domainBind(i,e)),"function"==typeof t&&(this._rejectionHandler0=null===i?t:d.domainBind(i,t));else{var a=4*o-4;this[a+2]=n,this[a+3]=r,"function"==typeof e&&(this[a+0]=null===i?e:d.domainBind(i,e)),"function"==typeof t&&(this[a+1]=null===i?t:d.domainBind(i,t))}return this._setLength(o+1),o},o.prototype._proxy=function(e,t){this._addCallbacks(void 0,void 0,t,e,null)},o.prototype._resolveCallback=function(e,t){if(0===(117506048&this._bitField)){if(e===this)return this._rejectCallback(c(),!1);var n=k(e,this);if(!(n instanceof o))return this._fulfill(e);t&&this._propagateFrom(n,2);var r=n._target();if(r===this)return void this._reject(c());var i=r._bitField;if(0===(50397184&i)){var a=this._length();a>0&&r._migrateCallback0(this);for(var s=1;s>>16)){if(e===this){var n=c();return this._attachExtraTrace(n),this._reject(n)}this._setFulfilled(),this._rejectionHandler0=e,(65535&t)>0&&(0!==(134217728&t)?this._settlePromises():v.settlePromises(this))}},o.prototype._reject=function(e){var t=this._bitField;if(!((117506048&t)>>>16))return this._setRejected(),this._fulfillmentHandler0=e,this._isFinal()?v.fatalError(e,d.isNode):void((65535&t)>0?v.settlePromises(this):this._ensurePossibleRejectionHandled())},o.prototype._fulfillPromises=function(e,t){for(var n=1;n0){if(0!==(16842752&e)){var n=this._fulfillmentHandler0;this._settlePromise0(this._rejectionHandler0,n,e),this._rejectPromises(t,n)}else{var r=this._rejectionHandler0;this._settlePromise0(this._fulfillmentHandler0,r,e),this._fulfillPromises(t,r)}this._setLength(0)}this._clearCancellationData()},o.prototype._settledValue=function(){var e=this._bitField;return 0!==(33554432&e)?this._rejectionHandler0:0!==(16777216&e)?this._fulfillmentHandler0:void 0},o.defer=o.pending=function(){N.deprecated("Promise.defer","new Promise");var e=new o(w);return{promise:e,resolve:a,reject:s}},d.notEnumerableProp(o,"_makeSelfResolutionError",c),n(441)(o,w,k,h,N),n(429)(o,w,k,N),n(431)(o,C,h,N),n(434)(o),n(453)(o),n(439)(o,C,k,w,v,l),o.Promise=o,o.version="3.5.1",n(440)(o,C,h,k,w,N),n(430)(o),n(456)(o,h,k,T,w,N),n(455)(o,w,N),n(438)(o,h,w,k,r,N),n(442)(o),n(445)(o,w),n(446)(o,C,k,h),n(448)(o,w,k,h),n(449)(o,C,h,k,w,N),n(451)(o,C,N),n(452)(o,C,h),n(436)(o,w),n(435)(o,w),n(427)(o),d.toFastProperties(o),d.toFastProperties(o.prototype),u({a:1}),u({b:2}),u({c:3}),u(1),u(function(){}),u(void 0),u(!1),u(new o(w)),N.setBounds(g.firstLineError,d.lastLineError),o}}).call(t,n(17))},function(e,t,n){"use strict";e.exports=function(e,t,r,i,o){function a(e){switch(e){case-2:return[];case-3:return{};case-6:return new Map}}function s(n){var r=this._promise=new e(t);n instanceof e&&r._propagateFrom(n,3),r._setOnCancel(this),this._values=n,this._length=0,this._totalResolved=0,this._init(void 0,-2)}var u=n(12);u.isArray;return u.inherits(s,o),s.prototype.length=function(){return this._length},s.prototype.promise=function(){return this._promise},s.prototype._init=function t(n,o){var s=r(this._values,this._promise);if(s instanceof e){s=s._target();var l=s._bitField;if(this._values=s,0===(50397184&l))return this._promise._setAsyncGuaranteed(),s._then(t,this._reject,void 0,this,o);if(0===(33554432&l))return 0!==(16777216&l)?this._reject(s._reason()):this._cancel();s=s._value()}if(s=u.asArray(s),null===s){var c=i("expecting an array or an iterable object but got "+u.classString(s)).reason();return void this._promise._rejectCallback(c,!1)}return 0===s.length?void(o===-5?this._resolveEmptyArray():this._resolve(a(o))):void this._iterate(s)},s.prototype._iterate=function(t){var n=this.getActualLength(t.length);this._length=n,this._values=this.shouldCopyValues()?new Array(n):this._values;for(var i=this._promise,o=!1,a=null,s=0;s=this._length&&(this._resolve(this._values),!0)},s.prototype._promiseCancelled=function(){return this._cancel(),!0},s.prototype._promiseRejected=function(e){ +return this._totalResolved++,this._reject(e),!0},s.prototype._resultCancelled=function(){if(!this._isResolved()){var t=this._values;if(this._cancel(),t instanceof e)t.cancel();else for(var n=0;n=n;--r)t.push(r);for(var r=e+1;r<=3;++r)t.push(r);return t},S=function(e){return p.filledRange(e,"_arg","")},T=function(e){return p.filledRange(Math.max(e,3),"_arg","")},N=function(e){return"number"==typeof e.length?Math.max(Math.min(e.length,1024),0):0};f=function(n,r,i,o,a,s){function u(e){var t,n=S(e).join(", "),i=e>0?", ":"";return t=v?"ret = callback.call(this, {{args}}, nodeback); break;\n":void 0===r?"ret = callback({{args}}, nodeback); break;\n":"ret = callback.call(receiver, {{args}}, nodeback); break;\n",t.replace("{{args}}",n).replace(", ",i)}function l(){for(var e="",t=0;t=this._length){var r;if(this._isMap)r=h(this._values);else{r={};for(var i=this.length(),o=0,a=this.length();o>1},e.prototype.props=function(){return a(this)},e.props=function(e){return a(e)}}},function(e,t){"use strict";function n(e,t,n,r,i){for(var o=0;o=this._length&&(this._resolve(this._values),!0)},i.prototype._promiseFulfilled=function(e,t){var n=new o;return n._bitField=33554432,n._settledValueField=e,this._promiseResolved(t,n)},i.prototype._promiseRejected=function(e,t){var n=new o;return n._bitField=16777216,n._settledValueField=e,this._promiseResolved(t,n)},e.settle=function(e){return r.deprecated(".settle()",".reflect()"),new i(e).promise()},e.prototype.settle=function(){return e.settle(this)}}},function(e,t,n){"use strict";e.exports=function(e,t,r){function i(e){this.constructor$(e),this._howMany=0,this._unwrap=!1,this._initialized=!1}function o(e,t){if((0|t)!==t||t<0)return r("expecting a positive integer\n\n See http://goo.gl/MqrFmX\n");var n=new i(e),o=n.promise();return n.setHowMany(t),n.init(),o}var a=n(12),s=n(45).RangeError,u=n(45).AggregateError,l=a.isArray,c={};a.inherits(i,t),i.prototype._init=function(){if(this._initialized){if(0===this._howMany)return void this._resolve([]);this._init$(void 0,-5);var e=l(this._values);!this._isResolved()&&e&&this._howMany>this._canPossiblyFulfill()&&this._reject(this._getRangeError(this.length()))}},i.prototype.init=function(){this._initialized=!0,this._init()},i.prototype.setUnwrap=function(){this._unwrap=!0},i.prototype.howMany=function(){return this._howMany},i.prototype.setHowMany=function(e){this._howMany=e},i.prototype._promiseFulfilled=function(e){return this._addFulfilled(e),this._fulfilled()===this.howMany()&&(this._values.length=this.howMany(),1===this.howMany()&&this._unwrap?this._resolve(this._values[0]):this._resolve(this._values),!0)},i.prototype._promiseRejected=function(e){return this._addRejected(e),this._checkOutcome()},i.prototype._promiseCancelled=function(){return this._values instanceof e||null==this._values?this._cancel():(this._addRejected(c),this._checkOutcome())},i.prototype._checkOutcome=function(){if(this.howMany()>this._canPossiblyFulfill()){for(var e=new u,t=this.length();t0?this._reject(e):this._cancel(),!0}return!1},i.prototype._fulfilled=function(){return this._totalResolved},i.prototype._rejected=function(){return this._values.length-this.length()},i.prototype._addRejected=function(e){this._values.push(e)},i.prototype._addFulfilled=function(e){this._values[this._totalResolved++]=e},i.prototype._canPossiblyFulfill=function(){return this.length()-this._rejected()},i.prototype._getRangeError=function(e){var t="Input array must contain at least "+this._howMany+" items but contains only "+e+" items";return new s(t)},i.prototype._resolveEmptyArray=function(){this._reject(this._getRangeError(0))},e.some=function(e,t){return o(e,t)},e.prototype.some=function(e){return o(this,e)},e._SomePromiseArray=i}},function(e,t){"use strict";e.exports=function(e){function t(e){void 0!==e?(e=e._target(),this._bitField=e._bitField,this._settledValueField=e._isFateSealed()?e._settledValue():void 0):(this._bitField=0,this._settledValueField=void 0)}t.prototype._settledValue=function(){return this._settledValueField};var n=t.prototype.value=function(){if(!this.isFulfilled())throw new TypeError("cannot get fulfillment value of a non-fulfilled promise\n\n See http://goo.gl/MqrFmX\n");return this._settledValue()},r=t.prototype.error=t.prototype.reason=function(){if(!this.isRejected())throw new TypeError("cannot get rejection reason of a non-rejected promise\n\n See http://goo.gl/MqrFmX\n");return this._settledValue()},i=t.prototype.isFulfilled=function(){return 0!==(33554432&this._bitField)},o=t.prototype.isRejected=function(){return 0!==(16777216&this._bitField)},a=t.prototype.isPending=function(){return 0===(50397184&this._bitField)},s=t.prototype.isResolved=function(){return 0!==(50331648&this._bitField)};t.prototype.isCancelled=function(){return 0!==(8454144&this._bitField)},e.prototype.__isCancelled=function(){return 65536===(65536&this._bitField)},e.prototype._isCancelled=function(){return this._target().__isCancelled()},e.prototype.isCancelled=function(){return 0!==(8454144&this._target()._bitField)},e.prototype.isPending=function(){return a.call(this._target())},e.prototype.isRejected=function(){return o.call(this._target())},e.prototype.isFulfilled=function(){return i.call(this._target())},e.prototype.isResolved=function(){return s.call(this._target())},e.prototype.value=function(){return n.call(this._target())},e.prototype.reason=function(){var e=this._target();return e._unsetRejectionIsUnhandled(),r.call(e)},e.prototype._value=function(){return this._settledValue()},e.prototype._reason=function(){return this._unsetRejectionIsUnhandled(),this._settledValue()},e.PromiseInspection=t}},function(e,t,n){"use strict";e.exports=function(e,t){function r(n,r){if(c(n)){if(n instanceof e)return n;var i=o(n);if(i===l){r&&r._pushContext();var u=e.reject(i.e);return r&&r._popContext(),u}if("function"==typeof i){if(a(n)){var u=new e(t);return n._then(u._fulfill,u._reject,void 0,u,null),u}return s(n,i,r)}}return n}function i(e){return e.then}function o(e){try{return i(e)}catch(e){return l.e=e,l}}function a(e){try{return f.call(e,"_promise0")}catch(e){return!1}}function s(n,r,i){function o(e){s&&(s._resolveCallback(e),s=null)}function a(e){s&&(s._rejectCallback(e,f,!0),s=null)}var s=new e(t),c=s;i&&i._pushContext(),s._captureStackTrace(),i&&i._popContext();var f=!0,h=u.tryCatch(r).call(n,o,a);return f=!1,s&&h===l&&(s._rejectCallback(h.e,!0,!0),s=null),c}var u=n(12),l=u.errorObj,c=u.isObject,f={}.hasOwnProperty;return r}},function(e,t,n){"use strict";e.exports=function(e,t,r){function i(e){this.handle=e}function o(e){return clearTimeout(this.handle),e}function a(e){throw clearTimeout(this.handle),e}var s=n(12),u=e.TimeoutError;i.prototype._resultCancelled=function(){clearTimeout(this.handle)};var l=function(e){return c(+this).thenReturn(e)},c=e.delay=function(n,o){var a,s;return void 0!==o?(a=e.resolve(o)._then(l,null,null,n,void 0),r.cancellation()&&o instanceof e&&a._setOnCancel(o)):(a=new e(t),s=setTimeout(function(){a._fulfill()},+n),r.cancellation()&&a._setOnCancel(new i(s)),a._captureStackTrace()),a._setAsyncGuaranteed(),a};e.prototype.delay=function(e){return c(e,this)};var f=function(e,t,n){var r;r="string"!=typeof t?t instanceof Error?t:new u("operation timed out"):new u(t),s.markAsOriginatingFromRejection(r),e._attachExtraTrace(r),e._reject(r),null!=n&&n.cancel()};e.prototype.timeout=function(e,t){e=+e;var n,s,u=new i(setTimeout(function(){n.isPending()&&f(n,t,s)},e));return r.cancellation()?(s=this.then(),n=s._then(o,a,void 0,u,void 0),n._setOnCancel(u)):n=this._then(o,a,void 0,u,void 0),n}}},function(e,t,n){"use strict";e.exports=function(e,t,r,i,o,a){function s(e){setTimeout(function(){throw e},0)}function u(e){var t=r(e);return t!==e&&"function"==typeof e._isDisposable&&"function"==typeof e._getDisposer&&e._isDisposable()&&t._setDisposable(e._getDisposer()),t}function l(t,n){function i(){if(a>=l)return c._fulfill();var o=u(t[a++]);if(o instanceof e&&o._isDisposable()){try{o=r(o._getDisposer().tryDispose(n),t.promise)}catch(e){return s(e)}if(o instanceof e)return o._then(i,s,null,null,null)}i()}var a=0,l=t.length,c=new e(o);return i(),c}function c(e,t,n){this._data=e,this._promise=t,this._context=n}function f(e,t,n){this.constructor$(e,t,n)}function h(e){return c.isDisposer(e)?(this.resources[this.index]._setDisposable(e),e.promise()):e}function p(e){this.length=e,this.promise=null,this[e-1]=null}var d=n(12),m=n(45).TypeError,g=n(12).inherits,v=d.errorObj,y=d.tryCatch,_={};c.prototype.data=function(){return this._data},c.prototype.promise=function(){return this._promise},c.prototype.resource=function(){return this.promise().isFulfilled()?this.promise().value():_},c.prototype.tryDispose=function(e){var t=this.resource(),n=this._context;void 0!==n&&n._pushContext();var r=t!==_?this.doDispose(t,e):null;return void 0!==n&&n._popContext(),this._promise._unsetDisposable(),this._data=null,r},c.isDisposer=function(e){return null!=e&&"function"==typeof e.resource&&"function"==typeof e.tryDispose},g(f,c),f.prototype.doDispose=function(e,t){var n=this.data();return n.call(e,e,t)},p.prototype._resultCancelled=function(){for(var t=this.length,n=0;n0},e.prototype._getDisposer=function(){return this._disposer},e.prototype._unsetDisposable=function(){this._bitField=this._bitField&-131073,this._disposer=void 0},e.prototype.disposer=function(e){if("function"==typeof e)return new f(e,this,i());throw new m}}},function(e,t,n){(function(t){function r(e,n,o){return this instanceof r?(s.call(this),this._cache=new i,this._last=void 0,this._cipher=new a.AES(n),this._prev=new t(o.length),o.copy(this._prev),void(this._mode=e)):new r(e,n,o)}function i(){return this instanceof i?void(this.cache=new t("")):new i}function o(e){var t=e[15];if(16!==t)return e.slice(0,16-t)}var a=n(156),s=n(157),u=n(1),l=n(158),c=n(254),f=n(248);u(r,s),r.prototype._transform=function(e,t,n){this._cache.add(e);for(var r,i;r=this._cache.get();)i=this._mode.decrypt(this,r),this.push(i);n()},r.prototype._flush=function(e){var t=this._cache.flush();return t?(this.push(o(this._mode.decrypt(this,t))),void e()):e},i.prototype.add=function(e){this.cache=t.concat([this.cache,e])},i.prototype.get=function(){if(this.cache.length>16){var e=this.cache.slice(0,16);return this.cache=this.cache.slice(16),e}return null},i.prototype.flush=function(){if(this.cache.length)return this.cache};var h={ECB:n(252),CBC:n(249),CFB:n(250),OFB:n(253),CTR:n(251)};e.exports=function(e){function n(e,n,i){var o=l[e];if(!o)throw new TypeError("invalid suite type");if("string"==typeof i&&(i=new t(i)),"string"==typeof n&&(n=new t(n)),n.length!==o.key/8)throw new TypeError("invalid key length "+n.length);if(i.length!==o.iv)throw new TypeError("invalid iv length "+i.length);return"stream"===o.type?new c(h[o.mode],n,i,!0):new r(h[o.mode],n,i)}function i(t,r){var i=l[t];if(!i)throw new TypeError("invalid suite type");var o=f(e,r,i.key,i.iv);return n(t,o.key,o.iv)}return{createDecipher:i,createDecipheriv:n}}}).call(t,n(8).Buffer)},function(e,t,n){(function(t){function r(e,n,s){return this instanceof r?(a.call(this),this._cache=new i,this._cipher=new o.AES(n),this._prev=new t(s.length),s.copy(this._prev),void(this._mode=e)):new r(e,n,s)}function i(){return this instanceof i?void(this.cache=new t("")):new i}var o=n(156),a=n(157),s=n(1),u=n(158),l=n(248),c=n(254);s(r,a),r.prototype._transform=function(e,t,n){this._cache.add(e);for(var r,i;r=this._cache.get();)i=this._mode.encrypt(this,r),this.push(i);n()},r.prototype._flush=function(e){var t=this._cache.flush();this.push(this._mode.encrypt(this,t)),this._cipher.scrub(),e()},i.prototype.add=function(e){this.cache=t.concat([this.cache,e])},i.prototype.get=function(){if(this.cache.length>15){var e=this.cache.slice(0,16);return this.cache=this.cache.slice(16),e}return null},i.prototype.flush=function(){for(var e=16-this.cache.length,n=new t(e),r=-1;++r1&&(t=Array.prototype.slice.call(arguments)),e(t))};return"conversion"in e&&(t.conversion=e.conversion),t}function i(e){var t=function(t){if(void 0===t||null===t)return t;arguments.length>1&&(t=Array.prototype.slice.call(arguments));var n=e(t);if("object"==typeof n)for(var r=n.length,i=0;ic;)if(s=u[c++],s!=s)return!0}else for(;l>c;c++)if((e||c in u)&&u[c]===n)return e||c||0;return!e&&-1}}},function(e,t,n){var r=n(46),i=n(164),o=n(93),a=n(119),s=n(483);e.exports=function(e,t){var n=1==e,u=2==e,l=3==e,c=4==e,f=6==e,h=5==e||f,p=t||s;return function(t,s,d){for(var m,g,v=o(t),y=i(v),_=r(s,d,3),b=a(y.length),w=0,x=n?p(t,b):u?p(t,0):void 0;b>w;w++)if((h||w in y)&&(m=y[w],g=_(m,w,v),e))if(n)x[w]=g;else if(g)switch(e){case 3:return!0;case 5:return m;case 6:return w;case 2:x.push(m)}else if(c)return!1;return f?-1:l||c?c:x}}},function(e,t,n){var r=n(48),i=n(262),o=n(22)("species");e.exports=function(e){var t;return i(e)&&(t=e.constructor,"function"!=typeof t||t!==Array&&!i(t.prototype)||(t=void 0),r(t)&&(t=t[o],null===t&&(t=void 0))),void 0===t?Array:t}},function(e,t,n){var r=n(482);e.exports=function(e,t){return new(r(e))(t)}},function(e,t,n){"use strict";var r=n(30),i=n(91);e.exports=function(e,t,n){t in e?r.f(e,t,i(0,n)):e[t]=n}},function(e,t,n){var r=n(54),i=n(167),o=n(90);e.exports=function(e){var t=r(e),n=i.f;if(n)for(var a,s=n(e),u=o.f,l=0;s.length>l;)u.call(e,a=s[l++])&&t.push(a);return t}},function(e,t){e.exports=function(e,t,n){var r=void 0===n;switch(t.length){case 0:return r?e():e.call(n);case 1:return r?e(t[0]):e.call(n,t[0]);case 2:return r?e(t[0],t[1]):e.call(n,t[0],t[1]);case 3:return r?e(t[0],t[1],t[2]):e.call(n,t[0],t[1],t[2]);case 4:return r?e(t[0],t[1],t[2],t[3]):e.call(n,t[0],t[1],t[2],t[3])}return e.apply(n,t)}},function(e,t,n){"use strict";var r=n(118),i=n(91),o=n(92),a={};n(47)(a,n(22)("iterator"),function(){return this}),e.exports=function(e,t,n){e.prototype=r(a,{next:i(1,n)}),o(e,t+" Iterator")}},function(e,t,n){var r=n(54),i=n(49);e.exports=function(e,t){for(var n,o=i(e),a=r(o),s=a.length,u=0;s>u;)if(o[n=a[u++]]===t)return n}},function(e,t,n){var r=n(25),i=n(272).set,o=r.MutationObserver||r.WebKitMutationObserver,a=r.process,s=r.Promise,u="process"==n(88)(a);e.exports=function(){var e,t,n,l=function(){var r,i;for(u&&(r=a.domain)&&r.exit();e;){i=e.fn,e=e.next;try{i()}catch(r){throw e?n():t=void 0,r}}t=void 0,r&&r.enter()};if(u)n=function(){a.nextTick(l)};else if(o){var c=!0,f=document.createTextNode("");new o(l).observe(f,{characterData:!0}),n=function(){f.data=c=!c}}else if(s&&s.resolve){var h=s.resolve();n=function(){h.then(l)}}else n=function(){i.call(r,l)};return function(r){var i={fn:r,next:void 0};t&&(t.next=i),e||(e=i,n()),t=i}}},function(e,t,n){"use strict";var r=n(54),i=n(167),o=n(90),a=n(93),s=n(164),u=Object.assign;e.exports=!u||n(52)(function(){var e={},t={},n=Symbol(),r="abcdefghijklmnopqrst";return e[n]=7,r.split("").forEach(function(e){t[e]=e}),7!=u({},e)[n]||Object.keys(u({},t)).join("")!=r})?function(e,t){for(var n=a(e),u=arguments.length,l=1,c=i.f,f=o.f;u>l;)for(var h,p=s(arguments[l++]),d=c?r(p).concat(c(p)):r(p),m=d.length,g=0;m>g;)f.call(p,h=d[g++])&&(n[h]=p[h]);return n}:u},function(e,t,n){var r=n(49),i=n(268).f,o={}.toString,a="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],s=function(e){try{return i(e)}catch(e){return a.slice()}};e.exports.f=function(e){return a&&"[object Window]"==o.call(e)?s(e):i(r(e))}},function(e,t,n){var r=n(53),i=n(93),o=n(169)("IE_PROTO"),a=Object.prototype;e.exports=Object.getPrototypeOf||function(e){return e=i(e),r(e,o)?e[o]:"function"==typeof e.constructor&&e instanceof e.constructor?e.constructor.prototype:e instanceof Object?a:null}},function(e,t,n){var r=n(21),i=n(15),o=n(52);e.exports=function(e,t){var n=(i.Object||{})[e]||Object[e],a={};a[e]=t(n),r(r.S+r.F*o(function(){n(1)}),"Object",a)}},function(e,t,n){var r=n(54),i=n(49),o=n(90).f;e.exports=function(e){return function(t){for(var n,a=i(t),s=r(a),u=s.length,l=0,c=[];u>l;)o.call(a,n=s[l++])&&c.push(e?[n,a[n]]:a[n]);return c}}},function(e,t,n){var r=n(48),i=n(39),o=function(e,t){if(i(e),!r(t)&&null!==t)throw TypeError(t+": can't set as prototype!")};e.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(e,t,r){try{r=n(46)(Function.call,n(267).f(Object.prototype,"__proto__").set,2),r(e,[]),t=!(e instanceof Array)}catch(e){t=!0}return function(e,n){return o(e,n),t?e.__proto__=n:r(e,n),e}}({},!1):void 0),check:o}},function(e,t,n){var r=n(39),i=n(159),o=n(22)("species");e.exports=function(e,t){var n,a=r(e).constructor;return void 0===a||void 0==(n=r(a)[o])?t:i(n)}},function(e,t,n){var r=n(171),i=n(115);e.exports=function(e){return function(t,n){var o,a,s=String(i(t)),u=r(n),l=s.length;return u<0||u>=l?e?"":void 0:(o=s.charCodeAt(u),o<55296||o>56319||u+1===l||(a=s.charCodeAt(u+1))<56320||a>57343?e?s.charAt(u):o:e?s.slice(u,u+2):(o-55296<<10)+(a-56320)+65536)}}},function(e,t,n){var r=n(171),i=Math.max,o=Math.min;e.exports=function(e,t){return e=r(e),e<0?i(e+t,0):o(e,t)}},function(e,t,n){var r=n(39),i=n(175);e.exports=n(15).getIterator=function(e){var t=i(e);if("function"!=typeof t)throw TypeError(e+" is not iterable!");return r(t.call(e))}},function(e,t,n){"use strict";var r=n(46),i=n(21),o=n(93),a=n(263),s=n(261),u=n(119),l=n(484),c=n(175);i(i.S+i.F*!n(264)(function(e){Array.from(e)}),"Array",{from:function(e){var t,n,i,f,h=o(e),p="function"==typeof this?this:Array,d=arguments.length,m=d>1?arguments[1]:void 0,g=void 0!==m,v=0,y=c(h);if(g&&(m=r(m,d>2?arguments[2]:void 0,2)),void 0==y||p==Array&&s(y))for(t=u(h.length),n=new p(t);t>v;v++)l(n,v,g?m(h[v],v):h[v]);else for(f=y.call(h),n=new p;!(i=f.next()).done;v++)l(n,v,g?a(f,m,[i.value,v],!0):i.value);return n.length=v,n}})},function(e,t,n){"use strict";var r=n(478),i=n(265),o=n(89),a=n(49);e.exports=n(165)(Array,"Array",function(e,t){this._t=a(e),this._i=0,this._k=t},function(){var e=this._t,t=this._k,n=this._i++;return!e||n>=e.length?(this._t=void 0,i(1)):"keys"==t?i(0,n):"values"==t?i(0,e[n]):i(0,[n,e[n]])},"values"),o.Arguments=o.Array,r("keys"),r("values"),r("entries")},function(e,t,n){"use strict";var r=n(256);e.exports=n(258)("Map",function(e){return function(){return e(this,arguments.length>0?arguments[0]:void 0)}},{get:function(e){var t=r.getEntry(this,e);return t&&t.v},set:function(e,t){return r.def(this,0===e?0:e,t)}},r,!0)},function(e,t,n){var r=n(21);r(r.S+r.F,"Object",{assign:n(490)})},function(e,t,n){var r=n(21);r(r.S,"Object",{create:n(118)})},function(e,t,n){var r=n(21);r(r.S+r.F*!n(29),"Object",{defineProperties:n(266)})},function(e,t,n){var r=n(21);r(r.S+r.F*!n(29),"Object",{defineProperty:n(30).f})},function(e,t,n){var r=n(93),i=n(54);n(493)("keys",function(){return function(e){return i(r(e))}})},function(e,t,n){var r=n(21);r(r.S,"Object",{setPrototypeOf:n(495).set})},function(e,t,n){"use strict";var r,i,o,a=n(117),s=n(25),u=n(46),l=n(161),c=n(21),f=n(48),h=n(159),p=n(160),d=n(116),m=n(496),g=n(272).set,v=n(489)(),y="Promise",_=s.TypeError,b=s.process,w=s[y],b=s.process,x="process"==l(b),E=function(){},k=!!function(){try{var e=w.resolve(1),t=(e.constructor={})[n(22)("species")]=function(e){e(E,E)};return(x||"function"==typeof PromiseRejectionEvent)&&e.then(E)instanceof t}catch(e){}}(),C=function(e,t){return e===t||e===w&&t===o},S=function(e){var t;return!(!f(e)||"function"!=typeof(t=e.then))&&t},T=function(e){return C(w,e)?new N(e):new i(e)},N=i=function(e){var t,n;this.promise=new e(function(e,r){if(void 0!==t||void 0!==n)throw _("Bad Promise constructor");t=e,n=r}),this.resolve=h(t),this.reject=h(n)},A=function(e){try{e()}catch(e){return{error:e}}},R=function(e,t){if(!e._n){e._n=!0;var n=e._c;v(function(){for(var r=e._v,i=1==e._s,o=0,a=function(t){var n,o,a=i?t.ok:t.fail,s=t.resolve,u=t.reject,l=t.domain;try{a?(i||(2==e._h&&j(e),e._h=1),a===!0?n=r:(l&&l.enter(),n=a(r),l&&l.exit()),n===t.promise?u(_("Promise-chain cycle")):(o=S(n))?o.call(n,s,u):s(n)):u(r)}catch(e){u(e)}};n.length>o;)a(n[o++]);e._c=[],e._n=!1,t&&!e._h&&O(e)})}},O=function(e){g.call(s,function(){var t,n,r,i=e._v;if(M(e)&&(t=A(function(){x?b.emit("unhandledRejection",i,e):(n=s.onunhandledrejection)?n({promise:e,reason:i}):(r=s.console)&&r.error&&r.error("Unhandled promise rejection",i)}),e._h=x||M(e)?2:1),e._a=void 0,t)throw t.error})},M=function(e){if(1==e._h)return!1;for(var t,n=e._a||e._c,r=0;n.length>r;)if(t=n[r++],t.fail||!M(t.promise))return!1;return!0},j=function(e){g.call(s,function(){var t;x?b.emit("rejectionHandled",e):(t=s.onrejectionhandled)&&t({promise:e,reason:e._v})})},I=function(e){var t=this;t._d||(t._d=!0,t=t._w||t,t._v=e,t._s=2,t._a||(t._a=t._c.slice()),R(t,!0))},P=function(e){var t,n=this;if(!n._d){n._d=!0,n=n._w||n;try{if(n===e)throw _("Promise can't be resolved itself");(t=S(e))?v(function(){var r={_w:n,_d:!1};try{t.call(e,u(P,r,1),u(I,r,1))}catch(e){I.call(r,e)}}):(n._v=e,n._s=1,R(n,!1))}catch(e){I.call({_w:n,_d:!1},e)}}};k||(w=function(e){p(this,w,y,"_h"),h(e),r.call(this);try{e(u(P,this,1),u(I,this,1))}catch(e){I.call(this,e)}},r=function(e){this._c=[],this._a=void 0,this._s=0,this._d=!1,this._v=void 0,this._h=0,this._n=!1},r.prototype=n(168)(w.prototype,{then:function(e,t){var n=T(m(this,w));return n.ok="function"!=typeof e||e,n.fail="function"==typeof t&&t,n.domain=x?b.domain:void 0,this._c.push(n),this._a&&this._a.push(n),this._s&&R(this,!1),n.promise},catch:function(e){return this.then(void 0,e)}}),N=function(){var e=new r;this.promise=e,this.resolve=u(P,e,1),this.reject=u(I,e,1)}),c(c.G+c.W+c.F*!k,{Promise:w}),n(92)(w,y),n(271)(y),o=n(15)[y],c(c.S+c.F*!k,y,{reject:function(e){var t=T(this),n=t.reject;return n(e),t.promise}}),c(c.S+c.F*(a||!k),y,{resolve:function(e){if(e instanceof w&&C(e.constructor,this))return e;var t=T(this),n=t.resolve;return n(e),t.promise}}),c(c.S+c.F*!(k&&n(264)(function(e){w.all(e).catch(E)})),y,{all:function(e){var t=this,n=T(t),r=n.resolve,i=n.reject,o=A(function(){var n=[],o=0,a=1;d(e,!1,function(e){var s=o++,u=!1;n.push(void 0),a++,t.resolve(e).then(function(e){u||(u=!0,n[s]=e,--a||r(n))},i)}),--a||r(n)});return o&&i(o.error),n.promise},race:function(e){var t=this,n=T(t),r=n.reject,i=A(function(){d(e,!1,function(e){t.resolve(e).then(n.resolve,r)})});return i&&r(i.error),n.promise}})},function(e,t,n){"use strict";var r=n(256);e.exports=n(258)("Set",function(e){return function(){return e(this,arguments.length>0?arguments[0]:void 0)}},{add:function(e){return r.def(this,e=0===e?0:e,e)}},r)},function(e,t,n){"use strict";var r=n(25),i=n(53),o=n(29),a=n(21),s=n(270),u=n(166).KEY,l=n(52),c=n(170),f=n(92),h=n(120),p=n(22),d=n(174),m=n(173),g=n(488),v=n(485),y=n(262),_=n(39),b=n(49),w=n(172),x=n(91),E=n(118),k=n(491),C=n(267),S=n(30),T=n(54),N=C.f,A=S.f,R=k.f,O=r.Symbol,M=r.JSON,j=M&&M.stringify,I="prototype",P=p("_hidden"),q=p("toPrimitive"),B={}.propertyIsEnumerable,L=c("symbol-registry"),F=c("symbols"),D=c("op-symbols"),U=Object[I],z="function"==typeof O,W=r.QObject,Q=!W||!W[I]||!W[I].findChild,H=o&&l(function(){return 7!=E(A({},"a",{get:function(){return A(this,"a",{value:7}).a}})).a})?function(e,t,n){var r=N(U,t);r&&delete U[t],A(e,t,n),r&&e!==U&&A(U,t,r)}:A,V=function(e){var t=F[e]=E(O[I]);return t._k=e,t},K=z&&"symbol"==typeof O.iterator?function(e){return"symbol"==typeof e}:function(e){return e instanceof O},$=function(e,t,n){return e===U&&$(D,t,n),_(e),t=w(t,!0),_(n),i(F,t)?(n.enumerable?(i(e,P)&&e[P][t]&&(e[P][t]=!1),n=E(n,{enumerable:x(0,!1)})):(i(e,P)||A(e,P,x(1,{})),e[P][t]=!0),H(e,t,n)):A(e,t,n)},G=function(e,t){_(e);for(var n,r=v(t=b(t)),i=0,o=r.length;o>i;)$(e,n=r[i++],t[n]);return e},J=function(e,t){return void 0===t?E(e):G(E(e),t)},Y=function(e){var t=B.call(this,e=w(e,!0));return!(this===U&&i(F,e)&&!i(D,e))&&(!(t||!i(this,e)||!i(F,e)||i(this,P)&&this[P][e])||t)},X=function(e,t){if(e=b(e),t=w(t,!0),e!==U||!i(F,t)||i(D,t)){var n=N(e,t);return!n||!i(F,t)||i(e,P)&&e[P][t]||(n.enumerable=!0),n}},Z=function(e){for(var t,n=R(b(e)),r=[],o=0;n.length>o;)i(F,t=n[o++])||t==P||t==u||r.push(t);return r},ee=function(e){for(var t,n=e===U,r=R(n?D:b(e)),o=[],a=0;r.length>a;)!i(F,t=r[a++])||n&&!i(U,t)||o.push(F[t]);return o};z||(O=function(){if(this instanceof O)throw TypeError("Symbol is not a constructor!");var e=h(arguments.length>0?arguments[0]:void 0),t=function(n){this===U&&t.call(D,n),i(this,P)&&i(this[P],e)&&(this[P][e]=!1),H(this,e,x(1,n))};return o&&Q&&H(U,e,{configurable:!0,set:t}),V(e)},s(O[I],"toString",function(){return this._k}),C.f=X,S.f=$,n(268).f=k.f=Z,n(90).f=Y,n(167).f=ee,o&&!n(117)&&s(U,"propertyIsEnumerable",Y,!0),d.f=function(e){return V(p(e))}),a(a.G+a.W+a.F*!z,{Symbol:O});for(var te="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),ne=0;te.length>ne;)p(te[ne++]);for(var te=T(p.store),ne=0;te.length>ne;)m(te[ne++]);a(a.S+a.F*!z,"Symbol",{for:function(e){return i(L,e+="")?L[e]:L[e]=O(e)},keyFor:function(e){if(K(e))return g(L,e);throw TypeError(e+" is not a symbol!")},useSetter:function(){Q=!0},useSimple:function(){Q=!1}}),a(a.S+a.F*!z,"Object",{create:J,defineProperty:$,defineProperties:G,getOwnPropertyDescriptor:X,getOwnPropertyNames:Z,getOwnPropertySymbols:ee}),M&&a(a.S+a.F*(!z||l(function(){var e=O();return"[null]"!=j([e])||"{}"!=j({a:e})||"{}"!=j(Object(e))})),"JSON",{stringify:function(e){if(void 0!==e&&!K(e)){for(var t,n,r=[e],i=1;arguments.length>i;)r.push(arguments[i++]);return t=r[1],"function"==typeof t&&(n=t),!n&&y(t)||(t=function(e,t){if(n&&(t=n.call(this,e,t)),!K(t))return t}),r[1]=t,j.apply(M,r)}}}),O[I][q]||n(47)(O[I],q,O[I].valueOf),f(O,"Symbol"),f(Math,"Math",!0),f(r.JSON,"JSON",!0)},function(e,t,n){var r=n(21);r(r.P+r.R,"Map",{toJSON:n(257)("Map")})},function(e,t,n){var r=n(21),i=n(494)(!1);r(r.S,"Object",{values:function(e){return i(e)}})},function(e,t,n){var r=n(21);r(r.P+r.R,"Set",{toJSON:n(257)("Set")})},function(e,t,n){n(173)("asyncIterator")},function(e,t,n){n(173)("observable")},function(e,t,n){(function(t){function r(e,n){if(!(this instanceof r))return new r(e,n);this._opad=u,this._alg=e;var a="sha512"===e?128:64;n=this._key=t.isBuffer(n)?n:new t(n),n.length>a?n=i(e).update(n).digest():n.length>5]|=128<>>9<<4)+14]=t;for(var n=1732584193,r=-271733879,i=-1732584194,c=271733878,f=0;f>16)+(t>>16)+(n>>16);return r<<16|65535&n}function c(e,t){return e<>>32-t}var f=n(518);e.exports=function(e){return f.hash(e,r,16)}},function(e,t,n){var r=n(737);e.exports=function(e,t){t=t||{};var n=r(e);return t.pbkdf2=n.pbkdf2,t.pbkdf2Sync=n.pbkdf2Sync,t}},function(e,t,n){(function(t,r){!function(){var i=("undefined"==typeof window?t:window)||{};_crypto=i.crypto||i.msCrypto||n(842),e.exports=function(e){if(_crypto.getRandomValues){var t=new r(e);return _crypto.getRandomValues(t),t}if(_crypto.randomBytes)return _crypto.randomBytes(e);throw new Error("secure random number generation not supported by this browser\nuse chrome, FireFox or Internet Explorer 11")}}()}).call(t,function(){return this}(),n(8).Buffer)},function(e,t){"use strict";var n=/[|\\{}()[\]^$+*?.]/g;e.exports=function(e){if("string"!=typeof e)throw new TypeError("Expected a string");return e.replace(n,"\\$&")}},function(e,t){},function(e,t){},function(e,t){"use strict";function n(e){return e.replace(r,function(e,t){return t.toUpperCase()})}var r=/-(.)/g;e.exports=n},function(e,t,n){"use strict";function r(e){return i(e.replace(o,"ms-"))}var i=n(526),o=/^-ms-/;e.exports=r},function(e,t,n){"use strict";function r(e,t){return!(!e||!t)&&(e===t||!i(e)&&(i(t)?r(e,t.parentNode):"contains"in e?e.contains(t):!!e.compareDocumentPosition&&!!(16&e.compareDocumentPosition(t))))}var i=n(536);e.exports=r},function(e,t,n){"use strict";function r(e){var t=e.length;if(Array.isArray(e)||"object"!=typeof e&&"function"!=typeof e?a(!1):void 0,"number"!=typeof t?a(!1):void 0,0===t||t-1 in e?void 0:a(!1),"function"==typeof e.callee?a(!1):void 0,e.hasOwnProperty)try{return Array.prototype.slice.call(e)}catch(e){}for(var n=Array(t),r=0;r":a.innerHTML="<"+e+">",s[e]=!a.firstChild),s[e]?h[e]:null}var i=n(23),o=n(2),a=i.canUseDOM?document.createElement("div"):null,s={},u=[1,'"],l=[1,"","
    "],c=[3,"","
    "],f=[1,'',""],h={"*":[1,"?
    ","
    "],area:[1,"",""],col:[2,"","
    "],legend:[1,"
    ","
    "],param:[1,"",""],tr:[2,"","
    "],optgroup:u,option:u,caption:l,colgroup:l,tbody:l,tfoot:l,thead:l,td:c,th:c},p=["circle","clipPath","defs","ellipse","g","image","line","linearGradient","mask","path","pattern","polygon","polyline","radialGradient","rect","stop","text","tspan"];p.forEach(function(e){h[e]=f,s[e]=!0}),e.exports=r},function(e,t){"use strict";function n(e){return e.Window&&e instanceof e.Window?{x:e.pageXOffset||e.document.documentElement.scrollLeft,y:e.pageYOffset||e.document.documentElement.scrollTop}:{x:e.scrollLeft,y:e.scrollTop}}e.exports=n},function(e,t){"use strict";function n(e){return e.replace(r,"-$1").toLowerCase()}var r=/([A-Z])/g;e.exports=n},function(e,t,n){"use strict";function r(e){return i(e).replace(o,"-ms-")}var i=n(533),o=/^ms-/;e.exports=r},function(e,t){"use strict";function n(e){var t=e?e.ownerDocument||e:document,n=t.defaultView||window;return!(!e||!("function"==typeof n.Node?e instanceof n.Node:"object"==typeof e&&"number"==typeof e.nodeType&&"string"==typeof e.nodeName))}e.exports=n},function(e,t,n){"use strict";function r(e){return i(e)&&3==e.nodeType}var i=n(535);e.exports=r},function(e,t){"use strict";function n(e){var t={};return function(n){return t.hasOwnProperty(n)||(t[n]=e.call(this,n)),t[n]}}e.exports=n},function(e,t,n){!function(e){"object"==typeof window&&window||"object"==typeof self&&self;e(t)}(function(e){function t(e){return e.replace(/&/g,"&").replace(//g,">")}function n(e){return e.nodeName.toLowerCase()}function r(e,t){var n=e&&e.exec(t);return n&&0===n.index}function i(e){return S.test(e)}function o(e){var t,n,r,o,a=e.className+" ";if(a+=e.parentNode?e.parentNode.className:"",n=T.exec(a))return w(n[1])?n[1]:"no-highlight";for(a=a.split(/\s+/),t=0,r=a.length;t"}function s(e){c+=""}function u(e){("start"===e.event?a:s)(e.node)}for(var l=0,c="",f=[];e.length||r.length;){var h=o();if(c+=t(i.substring(l,h[0].offset)),l=h[0].offset,h===e){f.reverse().forEach(s);do u(h.splice(0,1)[0]),h=o();while(h===e&&h.length&&h[0].offset===l);f.reverse().forEach(a)}else"start"===h[0].event?f.push(h[0].node):f.pop(),u(h.splice(0,1)[0])}return c+t(i.substr(l))}function l(e){return e.variants&&!e.cached_variants&&(e.cached_variants=e.variants.map(function(t){return a(e,{variants:null},t)})),e.cached_variants||e.endsWithParent&&[a(e)]||[e]}function c(e){function t(e){return e&&e.source||e}function n(n,r){return new RegExp(t(n),"m"+(e.case_insensitive?"i":"")+(r?"g":""))}function r(i,o){if(!i.compiled){if(i.compiled=!0,i.keywords=i.keywords||i.beginKeywords,i.keywords){var a={},s=function(t,n){e.case_insensitive&&(n=n.toLowerCase()),n.split(" ").forEach(function(e){var n=e.split("|");a[n[0]]=[t,n[1]?Number(n[1]):1]})};"string"==typeof i.keywords?s("keyword",i.keywords):E(i.keywords).forEach(function(e){s(e,i.keywords[e])}),i.keywords=a}i.lexemesRe=n(i.lexemes||/\w+/,!0),o&&(i.beginKeywords&&(i.begin="\\b("+i.beginKeywords.split(" ").join("|")+")\\b"),i.begin||(i.begin=/\B|\b/),i.beginRe=n(i.begin),i.end||i.endsWithParent||(i.end=/\B|\b/),i.end&&(i.endRe=n(i.end)),i.terminator_end=t(i.end)||"",i.endsWithParent&&o.terminator_end&&(i.terminator_end+=(i.end?"|":"")+o.terminator_end)),i.illegal&&(i.illegalRe=n(i.illegal)),null==i.relevance&&(i.relevance=1),i.contains||(i.contains=[]),i.contains=Array.prototype.concat.apply([],i.contains.map(function(e){return l("self"===e?i:e)})),i.contains.forEach(function(e){r(e,i)}),i.starts&&r(i.starts,o);var u=i.contains.map(function(e){return e.beginKeywords?"\\.?("+e.begin+")\\.?":e.begin}).concat([i.terminator_end,i.illegal]).map(t).filter(Boolean);i.terminators=u.length?n(u.join("|"),!0):{exec:function(){return null}}}}r(e)}function f(e,n,i,o){function a(e,t){var n,i;for(n=0,i=t.contains.length;n',o+t+a}function d(){var e,n,r,i;if(!x.keywords)return t(S);for(i="",n=0,x.lexemesRe.lastIndex=0,r=x.lexemesRe.exec(S);r;)i+=t(S.substring(n,r.index)),e=l(x,r),e?(T+=e[1],i+=p(e[0],t(r[0]))):i+=t(r[0]),n=x.lexemesRe.lastIndex,r=x.lexemesRe.exec(S);return i+t(S.substr(n))}function m(){var e="string"==typeof x.subLanguage;if(e&&!k[x.subLanguage])return t(S);var n=e?f(x.subLanguage,S,!0,E[x.subLanguage]):h(S,x.subLanguage.length?x.subLanguage:void 0);return x.relevance>0&&(T+=n.relevance),e&&(E[x.subLanguage]=n.top),p(n.language,n.value,!1,!0)}function g(){C+=null!=x.subLanguage?m():d(),S=""}function v(e){C+=e.className?p(e.className,"",!0):"",x=Object.create(e,{parent:{value:x}})}function y(e,t){if(S+=e,null==t)return g(),0;var n=a(t,x);if(n)return n.skip?S+=t:(n.excludeBegin&&(S+=t),g(),n.returnBegin||n.excludeBegin||(S=t)),v(n,t),n.returnBegin?0:t.length;var r=s(x,t);if(r){var i=x;i.skip?S+=t:(i.returnEnd||i.excludeEnd||(S+=t),g(),i.excludeEnd&&(S=t));do x.className&&(C+=A),x.skip||(T+=x.relevance),x=x.parent;while(x!==r.parent);return r.starts&&v(r.starts,""),i.returnEnd?0:t.length}if(u(t,x))throw new Error('Illegal lexeme "'+t+'" for mode "'+(x.className||"")+'"');return S+=t,t.length||1}var _=w(e);if(!_)throw new Error('Unknown language: "'+e+'"');c(_);var b,x=o||_,E={},C="";for(b=x;b!==_;b=b.parent)b.className&&(C=p(b.className,"",!0)+C);var S="",T=0;try{for(var N,O,M=0;;){if(x.terminators.lastIndex=M,N=x.terminators.exec(n),!N)break;O=y(n.substring(M,N.index),N[0]),M=N.index+O}for(y(n.substr(M)),b=x;b.parent;b=b.parent)b.className&&(C+=A);return{relevance:T,value:C,language:e,top:x}}catch(e){if(e.message&&e.message.indexOf("Illegal")!==-1)return{relevance:0,value:t(n)};throw e}}function h(e,n){n=n||R.languages||E(k);var r={relevance:0,value:t(e)},i=r;return n.filter(w).forEach(function(t){var n=f(t,e,!1);n.language=t,n.relevance>i.relevance&&(i=n),n.relevance>r.relevance&&(i=r,r=n)}),i.language&&(r.second_best=i),r}function p(e){return R.tabReplace||R.useBR?e.replace(N,function(e,t){return R.useBR&&"\n"===e?"
    ":R.tabReplace?t.replace(/\t/g,R.tabReplace):""}):e}function d(e,t,n){var r=t?C[t]:n,i=[e.trim()];return e.match(/\bhljs\b/)||i.push("hljs"),e.indexOf(r)===-1&&i.push(r),i.join(" ").trim()}function m(e){var t,n,r,a,l,c=o(e);i(c)||(R.useBR?(t=document.createElementNS("http://www.w3.org/1999/xhtml","div"),t.innerHTML=e.innerHTML.replace(/\n/g,"").replace(//g,"\n")):t=e,l=t.textContent,r=c?f(c,l,!0):h(l),n=s(t),n.length&&(a=document.createElementNS("http://www.w3.org/1999/xhtml","div"),a.innerHTML=r.value,r.value=u(n,s(a),l)),r.value=p(r.value),e.innerHTML=r.value,e.className=d(e.className,c,r.language),e.result={language:r.language,re:r.relevance},r.second_best&&(e.second_best={language:r.second_best.language,re:r.second_best.relevance}))}function g(e){R=a(R,e)}function v(){if(!v.called){v.called=!0;var e=document.querySelectorAll("pre code");x.forEach.call(e,m)}}function y(){addEventListener("DOMContentLoaded",v,!1),addEventListener("load",v,!1)}function _(t,n){var r=k[t]=n(e);r.aliases&&r.aliases.forEach(function(e){C[e]=t})}function b(){return E(k)}function w(e){return e=(e||"").toLowerCase(),k[e]||k[C[e]]}var x=[],E=Object.keys,k={},C={},S=/^(no-?highlight|plain|text)$/i,T=/\blang(?:uage)?-([\w-]+)\b/i,N=/((^(<[^>]+>|\t|)+|(?:\n)))/gm,A="",R={classPrefix:"hljs-",tabReplace:null,useBR:!1,languages:void 0};return e.highlight=f,e.highlightAuto=h,e.fixMarkup=p,e.highlightBlock=m,e.configure=g,e.initHighlighting=v,e.initHighlightingOnLoad=y,e.registerLanguage=_,e.listLanguages=b,e.getLanguage=w,e.inherit=a,e.IDENT_RE="[a-zA-Z]\\w*",e.UNDERSCORE_IDENT_RE="[a-zA-Z_]\\w*",e.NUMBER_RE="\\b\\d+(\\.\\d+)?",e.C_NUMBER_RE="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",e.BINARY_NUMBER_RE="\\b(0b[01]+)",e.RE_STARTERS_RE="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",e.BACKSLASH_ESCAPE={begin:"\\\\[\\s\\S]",relevance:0},e.APOS_STRING_MODE={className:"string",begin:"'",end:"'",illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},e.QUOTE_STRING_MODE={className:"string",begin:'"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},e.PHRASAL_WORDS_MODE={begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},e.COMMENT=function(t,n,r){var i=e.inherit({className:"comment",begin:t,end:n,contains:[]},r||{});return i.contains.push(e.PHRASAL_WORDS_MODE),i.contains.push({className:"doctag",begin:"(?:TODO|FIXME|NOTE|BUG|XXX):",relevance:0}),i},e.C_LINE_COMMENT_MODE=e.COMMENT("//","$"),e.C_BLOCK_COMMENT_MODE=e.COMMENT("/\\*","\\*/"),e.HASH_COMMENT_MODE=e.COMMENT("#","$"), +e.NUMBER_MODE={className:"number",begin:e.NUMBER_RE,relevance:0},e.C_NUMBER_MODE={className:"number",begin:e.C_NUMBER_RE,relevance:0},e.BINARY_NUMBER_MODE={className:"number",begin:e.BINARY_NUMBER_RE,relevance:0},e.CSS_NUMBER_MODE={className:"number",begin:e.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},e.REGEXP_MODE={className:"regexp",begin:/\//,end:/\/[gimuy]*/,illegal:/\n/,contains:[e.BACKSLASH_ESCAPE,{begin:/\[/,end:/\]/,relevance:0,contains:[e.BACKSLASH_ESCAPE]}]},e.TITLE_MODE={className:"title",begin:e.IDENT_RE,relevance:0},e.UNDERSCORE_TITLE_MODE={className:"title",begin:e.UNDERSCORE_IDENT_RE,relevance:0},e.METHOD_GUARD={begin:"\\.\\s*"+e.UNDERSCORE_IDENT_RE,relevance:0},e})},function(e,t){e.exports=function(e){var t="[A-Za-z$_][0-9A-Za-z$_]*",n={keyword:"in of if for while finally var new function do return void else break catch instanceof with throw case default try this switch continue typeof delete let yield const export super debugger as async await static import from as",literal:"true false null undefined NaN Infinity",built_in:"eval isFinite isNaN parseFloat parseInt decodeURI decodeURIComponent encodeURI encodeURIComponent escape unescape Object Function Boolean Error EvalError InternalError RangeError ReferenceError StopIteration SyntaxError TypeError URIError Number Math Date String RegExp Array Float32Array Float64Array Int16Array Int32Array Int8Array Uint16Array Uint32Array Uint8Array Uint8ClampedArray ArrayBuffer DataView JSON Intl arguments require module console window document Symbol Set Map WeakSet WeakMap Proxy Reflect Promise"},r={className:"number",variants:[{begin:"\\b(0[bB][01]+)"},{begin:"\\b(0[oO][0-7]+)"},{begin:e.C_NUMBER_RE}],relevance:0},i={className:"subst",begin:"\\$\\{",end:"\\}",keywords:n,contains:[]},o={className:"string",begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE,i]};i.contains=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,o,r,e.REGEXP_MODE];var a=i.contains.concat([e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE]);return{aliases:["js","jsx"],keywords:n,contains:[{className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},{className:"meta",begin:/^#!/,end:/$/},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,o,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,r,{begin:/[{,]\s*/,relevance:0,contains:[{begin:t+"\\s*:",returnBegin:!0,relevance:0,contains:[{className:"attr",begin:t,relevance:0}]}]},{begin:"("+e.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.REGEXP_MODE,{className:"function",begin:"(\\(.*?\\)|"+t+")\\s*=>",returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:t},{begin:/\(\s*\)/},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:n,contains:a}]}]},{begin://,subLanguage:"xml",contains:[{begin:/<\w+\s*\/>/,skip:!0},{begin:/<\w+/,end:/(\/\w+|\w+\/)>/,skip:!0,contains:[{begin:/<\w+\s*\/>/,skip:!0},"self"]}]}],relevance:0},{className:"function",beginKeywords:"function",end:/\{/,excludeEnd:!0,contains:[e.inherit(e.TITLE_MODE,{begin:t}),{className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,contains:a}],illegal:/\[|%/},{begin:/\$[(.]/},e.METHOD_GUARD,{className:"class",beginKeywords:"class",end:/[{;=]/,excludeEnd:!0,illegal:/[:"\[\]]/,contains:[{beginKeywords:"extends"},e.UNDERSCORE_TITLE_MODE]},{beginKeywords:"constructor",end:/\{/,excludeEnd:!0}],illegal:/#(?!!)/}}},function(e,t){e.exports=function(e){var t=e.COMMENT("--","$");return{case_insensitive:!0,illegal:/[<>{}*#]/,contains:[{beginKeywords:"begin end start commit rollback savepoint lock alter create drop rename call delete do handler insert load replace select truncate update set show pragma grant merge describe use explain help declare prepare execute deallocate release unlock purge reset change stop analyze cache flush optimize repair kill install uninstall checksum restore check backup revoke comment",end:/;/,endsWithParent:!0,lexemes:/[\w\.]+/,keywords:{keyword:"abort abs absolute acc acce accep accept access accessed accessible account acos action activate add addtime admin administer advanced advise aes_decrypt aes_encrypt after agent aggregate ali alia alias allocate allow alter always analyze ancillary and any anydata anydataset anyschema anytype apply archive archived archivelog are as asc ascii asin assembly assertion associate asynchronous at atan atn2 attr attri attrib attribu attribut attribute attributes audit authenticated authentication authid authors auto autoallocate autodblink autoextend automatic availability avg backup badfile basicfile before begin beginning benchmark between bfile bfile_base big bigfile bin binary_double binary_float binlog bit_and bit_count bit_length bit_or bit_xor bitmap blob_base block blocksize body both bound buffer_cache buffer_pool build bulk by byte byteordermark bytes cache caching call calling cancel capacity cascade cascaded case cast catalog category ceil ceiling chain change changed char_base char_length character_length characters characterset charindex charset charsetform charsetid check checksum checksum_agg child choose chr chunk class cleanup clear client clob clob_base clone close cluster_id cluster_probability cluster_set clustering coalesce coercibility col collate collation collect colu colum column column_value columns columns_updated comment commit compact compatibility compiled complete composite_limit compound compress compute concat concat_ws concurrent confirm conn connec connect connect_by_iscycle connect_by_isleaf connect_by_root connect_time connection consider consistent constant constraint constraints constructor container content contents context contributors controlfile conv convert convert_tz corr corr_k corr_s corresponding corruption cos cost count count_big counted covar_pop covar_samp cpu_per_call cpu_per_session crc32 create creation critical cross cube cume_dist curdate current current_date current_time current_timestamp current_user cursor curtime customdatum cycle data database databases datafile datafiles datalength date_add date_cache date_format date_sub dateadd datediff datefromparts datename datepart datetime2fromparts day day_to_second dayname dayofmonth dayofweek dayofyear days db_role_change dbtimezone ddl deallocate declare decode decompose decrement decrypt deduplicate def defa defau defaul default defaults deferred defi defin define degrees delayed delegate delete delete_all delimited demand dense_rank depth dequeue des_decrypt des_encrypt des_key_file desc descr descri describ describe descriptor deterministic diagnostics difference dimension direct_load directory disable disable_all disallow disassociate discardfile disconnect diskgroup distinct distinctrow distribute distributed div do document domain dotnet double downgrade drop dumpfile duplicate duration each edition editionable editions element ellipsis else elsif elt empty enable enable_all enclosed encode encoding encrypt end end-exec endian enforced engine engines enqueue enterprise entityescaping eomonth error errors escaped evalname evaluate event eventdata events except exception exceptions exchange exclude excluding execu execut execute exempt exists exit exp expire explain export export_set extended extent external external_1 external_2 externally extract failed failed_login_attempts failover failure far fast feature_set feature_value fetch field fields file file_name_convert filesystem_like_logging final finish first first_value fixed flash_cache flashback floor flush following follows for forall force form forma format found found_rows freelist freelists freepools fresh from from_base64 from_days ftp full function general generated get get_format get_lock getdate getutcdate global global_name globally go goto grant grants greatest group group_concat group_id grouping grouping_id groups gtid_subtract guarantee guard handler hash hashkeys having hea head headi headin heading heap help hex hierarchy high high_priority hosts hour http id ident_current ident_incr ident_seed identified identity idle_time if ifnull ignore iif ilike ilm immediate import in include including increment index indexes indexing indextype indicator indices inet6_aton inet6_ntoa inet_aton inet_ntoa infile initial initialized initially initrans inmemory inner innodb input insert install instance instantiable instr interface interleaved intersect into invalidate invisible is is_free_lock is_ipv4 is_ipv4_compat is_not is_not_null is_used_lock isdate isnull isolation iterate java join json json_exists keep keep_duplicates key keys kill language large last last_day last_insert_id last_value lax lcase lead leading least leaves left len lenght length less level levels library like like2 like4 likec limit lines link list listagg little ln load load_file lob lobs local localtime localtimestamp locate locator lock locked log log10 log2 logfile logfiles logging logical logical_reads_per_call logoff logon logs long loop low low_priority lower lpad lrtrim ltrim main make_set makedate maketime managed management manual map mapping mask master master_pos_wait match matched materialized max maxextents maximize maxinstances maxlen maxlogfiles maxloghistory maxlogmembers maxsize maxtrans md5 measures median medium member memcompress memory merge microsecond mid migration min minextents minimum mining minus minute minvalue missing mod mode model modification modify module monitoring month months mount move movement multiset mutex name name_const names nan national native natural nav nchar nclob nested never new newline next nextval no no_write_to_binlog noarchivelog noaudit nobadfile nocheck nocompress nocopy nocycle nodelay nodiscardfile noentityescaping noguarantee nokeep nologfile nomapping nomaxvalue nominimize nominvalue nomonitoring none noneditionable nonschema noorder nopr nopro noprom nopromp noprompt norely noresetlogs noreverse normal norowdependencies noschemacheck noswitch not nothing notice notrim novalidate now nowait nth_value nullif nulls num numb numbe nvarchar nvarchar2 object ocicoll ocidate ocidatetime ociduration ociinterval ociloblocator ocinumber ociref ocirefcursor ocirowid ocistring ocitype oct octet_length of off offline offset oid oidindex old on online only opaque open operations operator optimal optimize option optionally or oracle oracle_date oradata ord ordaudio orddicom orddoc order ordimage ordinality ordvideo organization orlany orlvary out outer outfile outline output over overflow overriding package pad parallel parallel_enable parameters parent parse partial partition partitions pascal passing password password_grace_time password_lock_time password_reuse_max password_reuse_time password_verify_function patch path patindex pctincrease pctthreshold pctused pctversion percent percent_rank percentile_cont percentile_disc performance period period_add period_diff permanent physical pi pipe pipelined pivot pluggable plugin policy position post_transaction pow power pragma prebuilt precedes preceding precision prediction prediction_cost prediction_details prediction_probability prediction_set prepare present preserve prior priority private private_sga privileges procedural procedure procedure_analyze processlist profiles project prompt protection public publishingservername purge quarter query quick quiesce quota quotename radians raise rand range rank raw read reads readsize rebuild record records recover recovery recursive recycle redo reduced ref reference referenced references referencing refresh regexp_like register regr_avgx regr_avgy regr_count regr_intercept regr_r2 regr_slope regr_sxx regr_sxy reject rekey relational relative relaylog release release_lock relies_on relocate rely rem remainder rename repair repeat replace replicate replication required reset resetlogs resize resource respect restore restricted result result_cache resumable resume retention return returning returns reuse reverse revoke right rlike role roles rollback rolling rollup round row row_count rowdependencies rowid rownum rows rtrim rules safe salt sample save savepoint sb1 sb2 sb4 scan schema schemacheck scn scope scroll sdo_georaster sdo_topo_geometry search sec_to_time second section securefile security seed segment select self sequence sequential serializable server servererror session session_user sessions_per_user set sets settings sha sha1 sha2 share shared shared_pool short show shrink shutdown si_averagecolor si_colorhistogram si_featurelist si_positionalcolor si_stillimage si_texture siblings sid sign sin size size_t sizes skip slave sleep smalldatetimefromparts smallfile snapshot some soname sort soundex source space sparse spfile split sql sql_big_result sql_buffer_result sql_cache sql_calc_found_rows sql_small_result sql_variant_property sqlcode sqldata sqlerror sqlname sqlstate sqrt square standalone standby start starting startup statement static statistics stats_binomial_test stats_crosstab stats_ks_test stats_mode stats_mw_test stats_one_way_anova stats_t_test_ stats_t_test_indep stats_t_test_one stats_t_test_paired stats_wsr_test status std stddev stddev_pop stddev_samp stdev stop storage store stored str str_to_date straight_join strcmp strict string struct stuff style subdate subpartition subpartitions substitutable substr substring subtime subtring_index subtype success sum suspend switch switchoffset switchover sync synchronous synonym sys sys_xmlagg sysasm sysaux sysdate sysdatetimeoffset sysdba sysoper system system_user sysutcdatetime table tables tablespace tan tdo template temporary terminated tertiary_weights test than then thread through tier ties time time_format time_zone timediff timefromparts timeout timestamp timestampadd timestampdiff timezone_abbr timezone_minute timezone_region to to_base64 to_date to_days to_seconds todatetimeoffset trace tracking transaction transactional translate translation treat trigger trigger_nestlevel triggers trim truncate try_cast try_convert try_parse type ub1 ub2 ub4 ucase unarchived unbounded uncompress under undo unhex unicode uniform uninstall union unique unix_timestamp unknown unlimited unlock unpivot unrecoverable unsafe unsigned until untrusted unusable unused update updated upgrade upped upper upsert url urowid usable usage use use_stored_outlines user user_data user_resources users using utc_date utc_timestamp uuid uuid_short validate validate_password_strength validation valist value values var var_samp varcharc vari varia variab variabl variable variables variance varp varraw varrawc varray verify version versions view virtual visible void wait wallet warning warnings week weekday weekofyear wellformed when whene whenev wheneve whenever where while whitespace with within without work wrapped xdb xml xmlagg xmlattributes xmlcast xmlcolattval xmlelement xmlexists xmlforest xmlindex xmlnamespaces xmlpi xmlquery xmlroot xmlschema xmlserialize xmltable xmltype xor year year_to_month years yearweek",literal:"true false null",built_in:"array bigint binary bit blob boolean char character date dec decimal float int int8 integer interval number numeric real record serial serial8 smallint text varchar varying void"},contains:[{className:"string",begin:"'",end:"'",contains:[e.BACKSLASH_ESCAPE,{begin:"''"}]},{className:"string",begin:'"',end:'"',contains:[e.BACKSLASH_ESCAPE,{begin:'""'}]},{className:"string",begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE]},e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE,t]},e.C_BLOCK_COMMENT_MODE,t]}}},function(e,t){t.read=function(e,t,n,r,i){var o,a,s=8*i-r-1,u=(1<>1,c=-7,f=n?i-1:0,h=n?-1:1,p=e[t+f];for(f+=h,o=p&(1<<-c)-1,p>>=-c,c+=s;c>0;o=256*o+e[t+f],f+=h,c-=8);for(a=o&(1<<-c)-1,o>>=-c,c+=r;c>0;a=256*a+e[t+f],f+=h,c-=8);if(0===o)o=1-l;else{if(o===u)return a?NaN:(p?-1:1)*(1/0);a+=Math.pow(2,r),o-=l}return(p?-1:1)*a*Math.pow(2,o-r)},t.write=function(e,t,n,r,i,o){var a,s,u,l=8*o-i-1,c=(1<>1,h=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,p=r?0:o-1,d=r?1:-1,m=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(s=isNaN(t)?1:0,a=c):(a=Math.floor(Math.log(t)/Math.LN2),t*(u=Math.pow(2,-a))<1&&(a--,u*=2),t+=a+f>=1?h/u:h*Math.pow(2,1-f),t*u>=2&&(a++,u/=2),a+f>=c?(s=0,a=c):a+f>=1?(s=(t*u-1)*Math.pow(2,i),a+=f):(s=t*Math.pow(2,f-1)*Math.pow(2,i),a=0));i>=8;e[n+p]=255&s,p+=d,s/=256,i-=8);for(a=a<0;e[n+p]=255&a,p+=d,a/=256,l-=8);e[n+p-d]|=128*m}},function(e,t,n){e.exports=n(580)},function(e,t,n){function r(e){return n(i(e))}function i(e){return o[e]||function(){throw new Error("Cannot find module '"+e+"'.")}()}var o={"./maria/index.js":544,"./mssql/index.js":546,"./mysql/index.js":178,"./mysql2/index.js":557,"./oracle/index.js":179,"./oracledb/index.js":563,"./postgres/index.js":567,"./sqlite3/index.js":281,"./strong-oracle/index.js":577,"./websql/index.js":282};r.keys=function(){return Object.keys(o)},r.resolve=i,e.exports=r,r.id=543},function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}function o(e){y.default.call(this,e)}function a(e,t){switch(t){case"DATETIME":case"TIMESTAMP":return new Date(e);case"INTEGER":return parseInt(e,10);default:return e}}function s(e,t){for(var n=(0,c.default)(t),r=0;rU.MAX){if(nz.MAX)throw new Error("Bigint must be safe integer or must be passed as string, saw "+n);e.input("p"+t,this.driver.BigInt,n)}else e.input("p"+t,this.driver.Int,n);else e.input("p"+t,n)},processResponse:function(e,t){if(null!=e){var n=e.response,r=e.method;if(e.output)return e.output.call(t,n);switch(r){case"select":case"pluck":case"first":return n=T.skim(n),"pluck"===r?(0,v.default)(n,e.pluck):"first"===r?n[0]:n;case"insert":case"del":case"update":case"counter":return e.returning?"@@rowcount"===e.returning?n[0][""]:D(e.returning)&&e.returning.length>1||"*"===e.returning[0]?n:(0,m.default)((0,v.default)(n,p.default)):n;default:return n}}}});var W=function(e){function t(){return(0,s.default)(this,t),(0,l.default)(this,e.apply(this,arguments))}return(0,f.default)(t,e),t.prototype.columnizeWithPrefix=function(e,t){for(var n="string"==typeof t?[t]:t,r="",i=-1;++i0&&(r+=", "),r+=e+this.wrap(n[i]);return r},t}(A.default);t.default=o,e.exports=t.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e,t){g.default.call(this,e,t)}t.__esModule=!0;var o=n(27),a=r(o),s=n(207),u=r(s),l=n(77),c=r(l),f=n(4),h=r(f),p=n(1),d=r(p),m=n(67),g=r(m);(0,d.default)(i,g.default);var v=["columns","join","lock","where","union","group","having","order","limit","offset"];(0,h.default)(i.prototype,{_emptyInsertValue:"default values",select:function(){var e=this,t=this.with(),n=v.map(function(t){return e[t](e)});return t+(0,u.default)(n).join(" ")},insert:function(){var e=this.single.insert||[],t=this.with()+("insert into "+this.tableName+" "),n=this.single.returning,r=n?this._returning("insert",n)+" ":"";if(Array.isArray(e)){if(0===e.length)return""}else if("object"===("undefined"==typeof e?"undefined":(0,a.default)(e))&&(0,c.default)(e))return{sql:t+r+this._emptyInsertValue,returning:n};var i=this._prepInsert(e);if("string"==typeof i)t+=i;else if(i.columns.length){t+="("+this.formatter.columnize(i.columns),t+=") "+r+"values (";for(var o=-1;++o0&&i.push(this.formatter.columnize(o.value))}return 0===i.length&&(i=["*"]),"select "+(t?"distinct ":"")+(n?n+" ":"")+i.join(", ")+(this.tableName?" from "+this.tableName:"")},_returning:function(e,t){switch(e){case"update":case"insert":return t?"output "+this.formatter.columnizeWithPrefix("inserted.",t):"";case"del":return t?"output "+this.formatter.columnizeWithPrefix("deleted.",t):"";case"rowcount":return t?";select @@rowcount":""}},truncate:function(){return"truncate table "+this.tableName},forUpdate:function(){return"with (READCOMMITTEDLOCK)"},forShare:function(){return"with (NOLOCK)"},columnInfo:function(){var e=this.single.columnInfo,t="select * from information_schema.columns where table_name = ? and table_catalog = ?",n=[this.single.table,this.client.database()];return this.single.schema?(t+=" and table_schema = ?",n.push(this.single.schema)):t+=" and table_schema = 'dbo'",{sql:t,bindings:n,output:function(t){var n=t.reduce(function(e,t){return e[t.COLUMN_NAME]={defaultValue:t.COLUMN_DEFAULT,type:t.DATA_TYPE,maxLength:t.CHARACTER_MAXIMUM_LENGTH,nullable:"YES"===t.IS_NULLABLE},e},{});return e&&n[e]||n}}},top:function(){var e=!this.single.limit&&0!==this.single.limit,t=!this.single.offset;return e||!t?"":"top ("+this.formatter.parameter(this.single.limit)+")"},limit:function(){return""},offset:function e(){var t=!this.single.limit&&0!==this.single.limit,n=!this.single.offset;if(n)return"";var e="offset "+(n?"0":this.formatter.parameter(this.single.offset))+" rows";return t||(e+=" fetch next "+this.formatter.parameter(this.single.limit)+" rows only"),e}}),t.default=i,e.exports=t.default},function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}function o(){f.default.apply(this,arguments),this.modifiers=["nullable","defaultTo","first","after","comment"]}t.__esModule=!0;var a=n(4),s=i(a),u=n(1),l=i(u),c=n(68),f=i(c),h=n(6),p=r(h);(0,l.default)(o,f.default),(0,s.default)(o.prototype,{increments:"int identity(1,1) not null primary key",bigincrements:"bigint identity(1,1) not null primary key",bigint:"bigint",double:function(e,t){return e?"decimal("+this._num(e,8)+", "+this._num(t,2)+")":"decimal"},floating:function(e,t){return e?"decimal("+this._num(e,8)+", "+this._num(t,2)+")":"decimal"},integer:function(e){return e=e?"("+this._num(e,11)+")":"","int"+e},mediumint:"int",smallint:"smallint",tinyint:function(e){return e=e?"("+this._num(e,1)+")":"","tinyint"+e},varchar:function(e){return"nvarchar("+this._num(e,255)+")"},text:"nvarchar(max)",mediumtext:"nvarchar(max)",longtext:"nvarchar(max)",enu:"nvarchar(100)",uuid:"uniqueidentifier",datetime:"datetime",timestamp:"datetime",bit:function(e){return e>1&&p.warn("Bit field is exactly 1 bit length for MSSQL"),"bit"},binary:function(e){return e?"varbinary("+this._num(e)+")":"varbinary(max)"},bool:"bit",defaultTo:function(e){var t=o.super_.prototype.defaultTo.apply(this,arguments);return"blob"!==this.type&&this.type.indexOf("text")===-1?t:""},first:function(){return p.warn("Column first modifier not available for MSSQL"),""},after:function(e){return p.warn("Column after modifier not available for MSSQL"),""},comment:function(e){return e&&e.length>255&&p.warn("Your comment is longer than the max comment length for MSSQL"),""}}),t.default=o,e.exports=t.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e,t){f.default.call(this,e,t)}function o(e,t){return e?e+"."+t:t}t.__esModule=!0;var a=n(4),s=r(a),u=n(1),l=r(u),c=n(69),f=r(c);(0,l.default)(i,f.default),(0,s.default)(i.prototype,{dropTablePrefix:"DROP TABLE ",dropTableIfExists:function(e){var t=this.formatter.wrap(o(this.schema,e));this.pushQuery("if object_id('"+t+"', 'U') is not null DROP TABLE "+t)},renameTable:function(e,t){this.pushQuery("exec sp_rename "+this.formatter.parameter(e)+", "+this.formatter.parameter(t))},hasTable:function(e){var t=this.formatter.parameter(this.formatter.wrap(e)),n="select object_id from sys.tables "+("where object_id = object_id("+t+")");this.pushQuery({sql:n,output:function(e){return e.length>0}})},hasColumn:function(e,t){var n=this.formatter.parameter(t),r=this.formatter.parameter(this.formatter.wrap(e)),i="select object_id from sys.columns "+("where name = "+n+" ")+("and object_id = object_id("+r+")");this.pushQuery({sql:i,output:function(e){return e.length>0}})}}),t.default=i,e.exports=t.default},function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}function o(){f.default.apply(this,arguments)}t.__esModule=!0;var a=n(4),s=i(a),u=n(1),l=i(u),c=n(70),f=i(c),h=n(6),p=r(h),d=n(13),m=i(d);(0,l.default)(o,f.default),(0,s.default)(o.prototype,{createAlterTableMethods:["foreign","primary","unique"],createQuery:function(e,t){var n=t?"if object_id('"+this.tableName()+"', 'U') is null CREATE TABLE ":"CREATE TABLE ",r=n+this.tableName()+(this._formatting?" (\n ":" (")+e.sql.join(this._formatting?",\n ":", ")+")";if(this.single.comment){var i=this.single.comment;i.length>60&&p.warn("The max length for a table comment is 60 characters")}this.pushQuery(r)},lowerCase:!1,addColumnsPrefix:"ADD ",dropColumnPrefix:"DROP COLUMN ",alterColumnPrefix:"ALTER COLUMN ", +addColumns:function(e,t){t=t||this.addColumnsPrefix,e.sql.length>0&&this.pushQuery({sql:(this.lowerCase?"alter table ":"ALTER TABLE ")+this.tableName()+" "+t+e.sql.join(", "),bindings:e.bindings})},dropColumn:function(){var e=this,t=p.normalizeArr.apply(null,arguments),n=(Array.isArray(t)?t:[t]).map(function(t){return e.formatter.wrap(t)});this.pushQuery((this.lowerCase?"alter table ":"ALTER TABLE ")+this.tableName()+" "+this.dropColumnPrefix+n.join(", "))},comment:function(){},changeType:function(){},renameColumn:function(e,t){this.pushQuery("exec sp_rename "+this.formatter.parameter(this.tableName()+"."+e)+", "+this.formatter.parameter(t)+", 'COLUMN'")},dropFKRefs:function(e,t){var n=this.client.formatter();return m.default.all(t.map(function(t){var r=n.wrap(t.CONSTRAINT_NAME),i=n.wrap(t.TABLE_NAME);return e.query({sql:"ALTER TABLE "+i+" DROP CONSTRAINT "+r})}))},createFKRefs:function(e,t){var n=this.client.formatter();return m.default.all(t.map(function(t){var r=n.wrap(t.TABLE_NAME),i=n.wrap(t.CONSTRAINT_NAME),o=n.columnize(t.COLUMN_NAME),a=n.columnize(t.REFERENCED_COLUMN_NAME),s=n.wrap(t.REFERENCED_TABLE_NAME),u=" ON UPDATE "+t.UPDATE_RULE,l=" ON DELETE "+t.DELETE_RULE;return e.query({sql:"ALTER TABLE "+r+" ADD CONSTRAINT "+i+" FOREIGN KEY ("+o+") REFERENCES "+s+" ("+a+")"+u+l})}))},index:function(e,t){t=t?this.formatter.wrap(t):this._indexCommand("index",this.tableNameRaw,e),this.pushQuery("CREATE INDEX "+t+" ON "+this.tableName()+" ("+this.formatter.columnize(e)+")")},primary:function(e,t){t=t?this.formatter.wrap(t):this.formatter.wrap(this.tableNameRaw+"_pkey"),this.forCreate?this.pushQuery("CONSTRAINT "+t+" PRIMARY KEY ("+this.formatter.columnize(e)+")"):this.pushQuery("ALTER TABLE "+this.tableName()+" ADD CONSTRAINT "+t+" PRIMARY KEY ("+this.formatter.columnize(e)+")")},unique:function(e,t){t=t?this.formatter.wrap(t):this._indexCommand("unique",this.tableNameRaw,e),this.forCreate?this.pushQuery("CONSTRAINT "+t+" UNIQUE ("+this.formatter.columnize(e)+")"):this.pushQuery("CREATE UNIQUE INDEX "+t+" ON "+this.tableName()+" ("+this.formatter.columnize(e)+")")},dropIndex:function(e,t){t=t?this.formatter.wrap(t):this._indexCommand("index",this.tableNameRaw,e),this.pushQuery("DROP INDEX "+t+" ON "+this.tableName())},dropForeign:function(e,t){t=t?this.formatter.wrap(t):this._indexCommand("foreign",this.tableNameRaw,e),this.pushQuery("ALTER TABLE "+this.tableName()+" DROP CONSTRAINT "+t)},dropPrimary:function(e){e=e?this.formatter.wrap(e):this.formatter.wrap(this.tableNameRaw+"_pkey"),this.pushQuery("ALTER TABLE "+this.tableName()+" DROP CONSTRAINT "+e)},dropUnique:function(e,t){t=t?this.formatter.wrap(t):this._indexCommand("unique",this.tableNameRaw,e),this.pushQuery("ALTER TABLE "+this.tableName()+" DROP CONSTRAINT "+t)}}),t.default=o,e.exports=t.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=n(3),o=r(i),a=n(11),s=r(a),u=n(10),l=r(u),c=n(13),f=r(c),h=n(57),p=r(h),d=n(28)("knex:tx"),m=function(e){function t(){return(0,o.default)(this,t),(0,s.default)(this,e.apply(this,arguments))}return(0,l.default)(t,e),t.prototype.begin=function(e){return d("%s: begin",this.txid),e.tx_.begin().then(this._resolver,this._rejecter)},t.prototype.savepoint=function(e){var t=this;return d("%s: savepoint at",this.txid),f.default.resolve().then(function(){return t.query(e,"SAVE TRANSACTION "+t.txid)})},t.prototype.commit=function(e,t){var n=this;return this._completed=!0,d("%s: commit",this.txid),e.tx_.commit().then(function(){return n._resolver(t)},this._rejecter)},t.prototype.release=function(e,t){return this._resolver(t)},t.prototype.rollback=function(e,t){var n=this;return this._completed=!0,d("%s: rolling back",this.txid),e.tx_.rollback().then(function(){return n._rejecter(t)},function(e){return t&&(e.originalError=t),n._rejecter(e)})},t.prototype.rollbackTo=function(e,t){var n=this;return d("%s: rolling backTo",this.txid),f.default.resolve().then(function(){return n.query(e,"ROLLBACK TRANSACTION "+n.txid,2,t)}).then(function(){return n._rejecter(t)})},t.prototype.acquireConnection=function(e){var t=this,n=e&&e.connection;return f.default.try(function(){return(t.outerTx?t.outerTx.conn:null)||n||t.client.acquireConnection()}).tap(function(e){t.outerTx||(t.conn=e,e.tx_=e.transaction())}).disposer(function(e){t.outerTx||(e.tx_&&(t._completed||(d("%s: unreleased transaction",t.txid),e.tx_.rollback()),e.tx_=null),t.conn=null,n?d("%s: not releasing external connection",t.txid):(d("%s: releasing connection",t.txid),t.client.releaseConnection(e)))})},t}(p.default);t.default=m,e.exports=t.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e,t){c.default.call(this,e,t)}t.__esModule=!0;var o=n(4),a=r(o),s=n(1),u=r(s),l=n(67),c=r(l);(0,u.default)(i,c.default),(0,a.default)(i.prototype,{_emptyInsertValue:"() values ()",update:function(){var e=this.join(),t=this._prepUpdate(this.single.update),n=this.where(),r=this.order(),i=this.limit();return"update "+this.tableName+(e?" "+e:"")+" set "+t.join(", ")+(n?" "+n:"")+(r?" "+r:"")+(i?" "+i:"")},forUpdate:function(){return"for update"},forShare:function(){return"lock in share mode"},columnInfo:function(){var e=this.single.columnInfo;return{sql:"select * from information_schema.columns where table_name = ? and table_schema = ?",bindings:[this.single.table,this.client.database()],output:function(t){var n=t.reduce(function(e,t){return e[t.COLUMN_NAME]={defaultValue:t.COLUMN_DEFAULT,type:t.DATA_TYPE,maxLength:t.CHARACTER_MAXIMUM_LENGTH,nullable:"YES"===t.IS_NULLABLE},e},{});return e&&n[e]||n}}},limit:function e(){var t=!this.single.limit&&0!==this.single.limit;if(t&&!this.single.offset)return"";var e=this.single.offset&&t?"18446744073709551615":this.formatter.parameter(this.single.limit);return"limit "+e}}),t.default=i,e.exports=t.default},function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}function o(){f.default.apply(this,arguments),this.modifiers=["unsigned","nullable","defaultTo","comment","first","after","collate"]}t.__esModule=!0;var a=n(4),s=i(a),u=n(1),l=i(u),c=n(68),f=i(c),h=n(6),p=r(h);(0,l.default)(o,f.default),(0,s.default)(o.prototype,{increments:"int unsigned not null auto_increment primary key",bigincrements:"bigint unsigned not null auto_increment primary key",bigint:"bigint",double:function(e,t){return e?"double("+this._num(e,8)+", "+this._num(t,2)+")":"double"},integer:function(e){return e=e?"("+this._num(e,11)+")":"","int"+e},mediumint:"mediumint",smallint:"smallint",tinyint:function(e){return e=e?"("+this._num(e,1)+")":"","tinyint"+e},text:function(e){switch(e){case"medium":case"mediumtext":return"mediumtext";case"long":case"longtext":return"longtext";default:return"text"}},mediumtext:function(){return this.text("medium")},longtext:function(){return this.text("long")},enu:function(e){return"enum('"+e.join("', '")+"')"},datetime:"datetime",timestamp:"timestamp",bit:function(e){return e?"bit("+this._num(e)+")":"bit"},binary:function(e){return e?"varbinary("+this._num(e)+")":"blob"},defaultTo:function(e){var t=o.super_.prototype.defaultTo.apply(this,arguments);return"blob"!==this.type&&this.type.indexOf("text")===-1?t:""},unsigned:function(){return"unsigned"},comment:function(e){return e&&e.length>255&&p.warn("Your comment is longer than the max comment length for MySQL"),e&&"comment '"+e+"'"},first:function(){return"first"},after:function(e){return"after "+this.formatter.wrap(e)},collate:function(e){return e&&"collate '"+e+"'"}}),t.default=o,e.exports=t.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e,t){c.default.call(this,e,t)}t.__esModule=!0;var o=n(4),a=r(o),s=n(1),u=r(s),l=n(69),c=r(l);(0,u.default)(i,c.default),(0,a.default)(i.prototype,{renameTable:function(e,t){this.pushQuery("rename table "+this.formatter.wrap(e)+" to "+this.formatter.wrap(t))},hasTable:function(e){var t="select * from information_schema.tables where table_name = ?",n=[e];this.schema?(t+=" and table_schema = ?",n.push(this.schema)):t+=" and table_schema = database()",this.pushQuery({sql:t,bindings:n,output:function(e){return e.length>0}})},hasColumn:function(e,t){this.pushQuery({sql:"show columns from "+this.formatter.wrap(e)+" like "+this.formatter.parameter(t),output:function(e){return e.length>0}})}}),t.default=i,e.exports=t.default},function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}function o(){f.default.apply(this,arguments)}t.__esModule=!0;var a=n(4),s=i(a),u=n(1),l=i(u),c=n(70),f=i(c),h=n(6),p=r(h),d=n(13),m=i(d);(0,l.default)(o,f.default),(0,s.default)(o.prototype,{createQuery:function(e,t){var n=t?"create table if not exists ":"create table ",r=this.client,i={},o=n+this.tableName()+" ("+e.sql.join(", ")+")";r.connectionSettings&&(i=r.connectionSettings);var a=this.single.charset||i.charset||"",s=this.single.collate||i.collate||"",u=this.single.engine||"";if(a&&(o+=" default character set "+a),s&&(o+=" collate "+s),u&&(o+=" engine = "+u),this.single.comment){var l=this.single.comment||"";l.length>60&&p.warn("The max length for a table comment is 60 characters"),o+=" comment = '"+l+"'"}this.pushQuery(o)},addColumnsPrefix:"add ",alterColumnsPrefix:"modify ",dropColumnPrefix:"drop ",comment:function(e){this.pushQuery("alter table "+this.tableName()+" comment = '"+e+"'")},changeType:function(){},renameColumn:function(e,t){var n=this,r=this.tableName(),i=this.formatter.wrap(e)+" "+this.formatter.wrap(t);this.pushQuery({sql:"show fields from "+r+" where field = "+this.formatter.parameter(e),output:function(o){var a=o[0],s=this;return n.getFKRefs(s).get(0).then(function(o){return m.default.try(function(){if(o.length)return n.dropFKRefs(s,o)}).then(function(){var e="alter table "+r+" change "+i+" "+a.Type;return"YES"!==String(a.Null).toUpperCase()&&(e+=" NOT NULL"),void 0!==a.Default&&null!==a.Default&&(e+=" DEFAULT '"+a.Default+"'"),s.query({sql:e})}).then(function(){if(o.length)return n.createFKRefs(s,o.map(function(n){return n.REFERENCED_COLUMN_NAME===e&&(n.REFERENCED_COLUMN_NAME=t),n.COLUMN_NAME===e&&(n.COLUMN_NAME=t),n}))})})}})},getFKRefs:function(e){var t=this.client.formatter(),n="SELECT KCU.CONSTRAINT_NAME, KCU.TABLE_NAME, KCU.COLUMN_NAME, KCU.REFERENCED_TABLE_NAME, KCU.REFERENCED_COLUMN_NAME, RC.UPDATE_RULE, RC.DELETE_RULE FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE AS KCU JOIN INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS AS RC USING(CONSTRAINT_NAME)WHERE KCU.REFERENCED_TABLE_NAME = "+t.parameter(this.tableNameRaw)+" AND KCU.CONSTRAINT_SCHEMA = "+t.parameter(this.client.database())+" AND RC.CONSTRAINT_SCHEMA = "+t.parameter(this.client.database());return e.query({sql:n,bindings:t.bindings})},dropFKRefs:function(e,t){var n=this.client.formatter();return m.default.all(t.map(function(t){var r=n.wrap(t.CONSTRAINT_NAME),i=n.wrap(t.TABLE_NAME);return e.query({sql:"alter table "+i+" drop foreign key "+r})}))},createFKRefs:function(e,t){var n=this.client.formatter();return m.default.all(t.map(function(t){var r=n.wrap(t.TABLE_NAME),i=n.wrap(t.CONSTRAINT_NAME),o=n.columnize(t.COLUMN_NAME),a=n.columnize(t.REFERENCED_COLUMN_NAME),s=n.wrap(t.REFERENCED_TABLE_NAME),u=" ON UPDATE "+t.UPDATE_RULE,l=" ON DELETE "+t.DELETE_RULE;return e.query({sql:"alter table "+r+" add constraint "+i+" foreign key ("+o+") references "+s+" ("+a+")"+u+l})}))},index:function(e,t){t=t?this.formatter.wrap(t):this._indexCommand("index",this.tableNameRaw,e),this.pushQuery("alter table "+this.tableName()+" add index "+t+"("+this.formatter.columnize(e)+")")},primary:function(e,t){t=t?this.formatter.wrap(t):this.formatter.wrap(this.tableNameRaw+"_pkey"),this.pushQuery("alter table "+this.tableName()+" add primary key "+t+"("+this.formatter.columnize(e)+")")},unique:function(e,t){t=t?this.formatter.wrap(t):this._indexCommand("unique",this.tableNameRaw,e),this.pushQuery("alter table "+this.tableName()+" add unique "+t+"("+this.formatter.columnize(e)+")")},dropIndex:function(e,t){t=t?this.formatter.wrap(t):this._indexCommand("index",this.tableNameRaw,e),this.pushQuery("alter table "+this.tableName()+" drop index "+t)},dropForeign:function(e,t){t=t?this.formatter.wrap(t):this._indexCommand("foreign",this.tableNameRaw,e),this.pushQuery("alter table "+this.tableName()+" drop foreign key "+t)},dropPrimary:function(){this.pushQuery("alter table "+this.tableName()+" drop primary key")},dropUnique:function(e,t){t=t?this.formatter.wrap(t):this._indexCommand("unique",this.tableNameRaw,e),this.pushQuery("alter table "+this.tableName()+" drop index "+t)}}),t.default=o,e.exports=t.default},function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}function o(){f.default.apply(this,arguments)}t.__esModule=!0;var a=n(33),s=i(a),u=n(4),l=i(u),c=n(57),f=i(c),h=n(1),p=i(h),d=n(28),m=i(d),g=n(6),v=r(g),y=(0,m.default)("knex:tx");(0,p.default)(o,f.default),(0,l.default)(o.prototype,{query:function(e,t,n,r){var i=this,o=this.trxClient.query(e,t).catch(function(e){return 1305===e.errno},function(){v.warn("Transaction was implicitly committed, do not mix transactions and DDL with MySQL (#805)")}).catch(function(e){n=2,r=e,i._completed=!0,y("%s error running transaction query",i.txid)}).tap(function(){1===n&&i._resolver(r),2===n&&((0,s.default)(r)&&(r=new Error("Transaction rejected with non-error: "+r)),i._rejecter(r))});return 1!==n&&2!==n||(i._completed=!0),o}}),t.default=o,e.exports=t.default},function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}function o(e){p.default.call(this,e)}t.__esModule=!0;var a=n(4),s=i(a),u=n(18),l=i(u),c=n(1),f=i(c),h=n(178),p=i(h),d=n(13),m=i(d),g=n(6),v=r(g),y=n(558),_=i(y);(0,f.default)(o,p.default),(0,s.default)(o.prototype,{driverName:"mysql2",transaction:function(){return new(Function.prototype.bind.apply(_.default,[null].concat([this],Array.prototype.slice.call(arguments))))},_driver:function(){return n(846)},validateConnection:function(e){return e._fatalError?m.default.resolve(!1):m.default.resolve(!0)},acquireRawConnection:function(){var e=this.driver.createConnection(this.connectionSettings);return e.on("error",function(t){e.__knex__disposed=t}),new m.default(function(t,n){e.connect(function(r){return r?n(r):void t(e)})})},processResponse:function(e,t){var n=e.response,r=e.method,i=n[0],o=n[1];if(e.output)return e.output.call(t,i,o);switch(r){case"select":case"pluck":case"first":var a=v.skim(i);return"pluck"===r?(0,l.default)(a,e.pluck):"first"===r?a[0]:a;case"insert":return[i.insertId];case"del":case"update":case"counter":return i.affectedRows;default:return n}}}),t.default=o,e.exports=t.default},function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}function o(){f.default.apply(this,arguments)}t.__esModule=!0;var a=n(33),s=i(a),u=n(4),l=i(u),c=n(57),f=i(c),h=n(1),p=i(h),d=n(6),m=r(d),g=n(28)("knex:tx");(0,p.default)(o,f.default),(0,l.default)(o.prototype,{query:function(e,t,n,r){var i=this,o=this.trxClient.query(e,t).catch(function(e){return"ER_SP_DOES_NOT_EXIST"===e.code},function(){m.warn("Transaction was implicitly committed, do not mix transactions andDDL with MySQL (#805)")}).catch(function(e){n=2,r=e,i._completed=!0,g("%s error running transaction query",i.txid)}).tap(function(){1===n&&i._resolver(r),2===n&&((0,s.default)(r)&&(r=new Error("Transaction rejected with non-error: "+r)),i._rejecter(r))});return 1!==n&&2!==n||(i._completed=!0),o}}),t.default=o,e.exports=t.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(){c.default.apply(this,arguments)}t.__esModule=!0;var o=n(104),a=r(o),s=n(1),u=r(s),l=n(285),c=r(l);(0,u.default)(i,c.default),i.prototype.checkIn=function(){return this._modifiers.checkIn=(0,a.default)(arguments),this},t.default=i,e.exports=t.default},function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}function o(){l.default.apply(this,arguments)}t.__esModule=!0;var a=n(1),s=i(a),u=n(69),l=i(u),c=n(55),f=r(c),h=n(180),p=i(h);(0,s.default)(o,l.default),o.prototype.renameTable=function(e,t){var n=p.default.renameTableAndAutoIncrementTrigger(e,t);this.pushQuery(n)},o.prototype.hasTable=function(e){this.pushQuery({sql:"select TABLE_NAME from USER_TABLES where TABLE_NAME = "+this.formatter.parameter(e),output:function(e){return e.length>0}})},o.prototype.hasColumn=function(e,t){var n="select COLUMN_NAME from USER_TAB_COLUMNS "+("where TABLE_NAME = "+this.formatter.parameter(e)+" ")+("and COLUMN_NAME = "+this.formatter.parameter(t));this.pushQuery({sql:n,output:function(e){return e.length>0}})},o.prototype.dropSequenceIfExists=function(e){this.pushQuery(f.wrapSqlWithCatch("drop sequence "+this.formatter.wrap(e),-2289))},o.prototype._dropRelatedSequenceIfExists=function(e){var t=f.generateCombinedName("seq",e);this.dropSequenceIfExists(t)},o.prototype.dropTable=function(e){this.pushQuery("drop table "+this.formatter.wrap(e)),this._dropRelatedSequenceIfExists(e)},o.prototype.dropTableIfExists=function(e){this.pushQuery(f.wrapSqlWithCatch("drop table "+this.formatter.wrap(e),-942)),this._dropRelatedSequenceIfExists(e)},t.default=o,e.exports=t.default},function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}function o(){m.default.apply(this,arguments)}t.__esModule=!0;var a=n(18),s=i(a),u=n(4),l=i(u),c=n(1),f=i(c),h=n(55),p=r(h),d=n(70),m=i(d),g=n(6),v=r(g),y=n(180),_=i(y);(0,f.default)(o,m.default),(0,l.default)(o.prototype,{addColumns:function(e,t){if(e.sql.length>0){t=t||this.addColumnsPrefix;var n=(0,s.default)(e.sql,function(e){return e}),r=this.lowerCase?"alter table ":"ALTER TABLE ",i=""+r+this.tableName()+" "+t;i+=e.sql.length>1?"("+n.join(", ")+")":n.join(", "),this.pushQuery({sql:i,bindings:e.bindings})}},renameColumn:function(e,t){var n=this.tableName().slice(1,-1);return this.pushQuery(_.default.renameColumnTrigger(n,e,t))},compileAdd:function(e){var t=this.formatter.wrap(e),n=this.prefixArray("add column",this.getColumns(e));return this.pushQuery({sql:"alter table "+t+" "+n.join(", ")})},createQuery:function(e,t){var n="create table "+this.tableName()+" ("+e.sql.join(", ")+")";this.pushQuery({sql:t?p.wrapSqlWithCatch(n,-955):n,bindings:e.bindings}),this.single.comment&&this.comment(this.single.comment)},comment:function(e){this.pushQuery("comment on table "+this.tableName()+" is '"+e+"'")},addColumnsPrefix:"add ",alterColumnsPrefix:"modify ",dropColumn:function(){var e=v.normalizeArr.apply(null,arguments);this.pushQuery("alter table "+this.tableName()+" drop ("+this.formatter.columnize(e)+")")},changeType:function(){},_indexCommand:function(e,t,n){return this.formatter.wrap(p.generateCombinedName(e,t,n))},primary:function(e,t){t=t?this.formatter.wrap(t):this.formatter.wrap(this.tableNameRaw+"_pkey"),this.pushQuery("alter table "+this.tableName()+" add constraint "+t+" primary key ("+this.formatter.columnize(e)+")")},dropPrimary:function(e){e=e?this.formatter.wrap(e):this.formatter.wrap(this.tableNameRaw+"_pkey"),this.pushQuery("alter table "+this.tableName()+" drop constraint "+e)},index:function(e,t){t=t?this.formatter.wrap(t):this._indexCommand("index",this.tableNameRaw,e),this.pushQuery("create index "+t+" on "+this.tableName()+" ("+this.formatter.columnize(e)+")")},dropIndex:function(e,t){t=t?this.formatter.wrap(t):this._indexCommand("index",this.tableNameRaw,e),this.pushQuery("drop index "+t)},unique:function(e,t){t=t?this.formatter.wrap(t):this._indexCommand("unique",this.tableNameRaw,e),this.pushQuery("alter table "+this.tableName()+" add constraint "+t+" unique ("+this.formatter.columnize(e)+")")},dropUnique:function(e,t){t=t?this.formatter.wrap(t):this._indexCommand("unique",this.tableNameRaw,e),this.pushQuery("alter table "+this.tableName()+" drop constraint "+t)},dropForeign:function(e,t){t=t?this.formatter.wrap(t):this._indexCommand("foreign",this.tableNameRaw,e),this.pushQuery("alter table "+this.tableName()+" drop constraint "+t)}}),t.default=o,e.exports=t.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=n(3),o=r(i),a=n(11),s=r(a),u=n(10),l=r(u),c=n(33),f=r(c),h=n(13),p=r(h),d=n(57),m=r(d),g=n(28)("knex:tx"),v=function(e){function t(){return(0,o.default)(this,t),(0,s.default)(this,e.apply(this,arguments))}return(0,l.default)(t,e),t.prototype.begin=function(){return p.default.resolve()},t.prototype.commit=function(e,t){return this._completed=!0,e.commitAsync().return(t).then(this._resolver,this._rejecter)},t.prototype.release=function(e,t){return this._resolver(t)},t.prototype.rollback=function(e,t){var n=this;return this._completed=!0,g("%s: rolling back",this.txid),e.rollbackAsync().throw(t).catch(function(e){return(0,f.default)(e)&&(e=new Error("Transaction rejected with non-error: "+e)),n._rejecter(e)})},t.prototype.acquireConnection=function(e){var t=this;return p.default.try(function(){return e.connection||t.client.acquireConnection()}).tap(function(e){t.outerTx||e.setAutoCommit(!1)}).disposer(function(n){g("%s: releasing connection",t.txid),n.setAutoCommit(!0),e.connection?g("%s: not releasing external connection",t.txid):t.client.releaseConnection(n)})},t}(m.default);t.default=v,e.exports=t.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(){x.apply(this,arguments),this.driver&&({NODE_ENV:"production"}.UV_THREADPOOL_SIZE={NODE_ENV:"production"}.UV_THREADPOOL_SIZE||1,{NODE_ENV:"production"}.UV_THREADPOOL_SIZE+=this.driver.poolMax)}function o(e,t){var r=n(375),i="";e.iLob.type===r.CLOB?e.setEncoding("utf-8"):i=k.alloc(0),e.on("error",function(e){t(e)}),e.on("data",function(t){e.iLob.type===r.CLOB?i+=t:i=k.concat([i,t])}),e.on("end",function(){t(null,i)})}var a=n(3),s=r(a),u=n(11),l=r(u),c=n(10),f=r(c),h=n(336),p=n(1),d=n(564),m=n(565),g=n(122).BlobHelper,v=n(122).ReturningHelper,y=n(13),_=n(368),b=n(6),w=n(566),x=n(179),E=n(278),k=n(110).Buffer;p(i,x),i.prototype.driverName="oracledb",i.prototype._driver=function(){var e=this,t=n(375);return e.fetchAsString=[],this.config.fetchAsString&&h.isArray(this.config.fetchAsString)&&this.config.fetchAsString.forEach(function(n){h.isString(n)&&(n=n.toUpperCase(),t[n]&&("NUMBER"!==n&&"DATE"!==n&&"CLOB"!==n&&b.warn('Only "date", "number" and "clob" are supported for fetchAsString'),e.fetchAsString.push(t[n])))}),t},i.prototype.queryCompiler=function(){return new(Function.prototype.bind.apply(d,[null].concat([this],Array.prototype.slice.call(arguments))))},i.prototype.columnCompiler=function(){return new(Function.prototype.bind.apply(m,[null].concat([this],Array.prototype.slice.call(arguments))))},i.prototype.formatter=function(){return new C(this)},i.prototype.transaction=function(){return new(Function.prototype.bind.apply(w,[null].concat([this],Array.prototype.slice.call(arguments))))},i.prototype.prepBindings=function(e){var t=this;return h.map(e,function(e){return e instanceof g&&t.driver?{type:t.driver.BLOB,dir:t.driver.BIND_OUT}:e instanceof v&&t.driver?{type:t.driver.STRING,dir:t.driver.BIND_OUT}:"boolean"==typeof e?e?1:0:e})},i.prototype.acquireRawConnection=function(){var e=this,t=new y(function(t,n){var r=e.connectionSettings.externalAuth?{externalAuth:e.connectionSettings.externalAuth}:{user:e.connectionSettings.user,password:e.connectionSettings.password};r.connectString=e.connectionSettings.connectString||e.connectionSettings.host+"/"+e.connectionSettings.database,e.connectionSettings.prefetchRowCount&&(r.prefetchRows=e.connectionSettings.prefetchRowCount),h.isUndefined(e.connectionSettings.stmtCacheSize)||(r.stmtCacheSize=e.connectionSettings.stmtCacheSize),e.driver.fetchAsString=e.fetchAsString,e.driver.getConnection(r,function(r,i){if(r)return n(r);i.commitAsync=function(){var e=this;return new y(function(t,n){return i.isTransaction?t():void e.commit(function(e){return e?n(e):void t()})})},i.rollbackAsync=function(){var e=this;return new y(function(t,n){e.rollback(function(e){return e?n(e):void t()})})};var a=function(t,n,r,o){r=r||{},r.outFormat=e.driver.OBJECT,r.resultSet?i.execute(t,n||[],r,function(e,t){if(e)return o(e);var n={rows:[],resultSet:t.resultSet},r=100,a=function e(t,r,i){r.getRows(i,function(a,s){if(a)r.close(function(){return o(a)});else{if(0===s.length)return o(null,n);if(s.length>0){if(s.length!==i)return n.rows=n.rows.concat(s),o(null,n);n.rows=n.rows.concat(s),e(t,r,i)}}})};a(i,t.resultSet,r)}):i.execute(t,n||[],r,o)};i.executeAsync=function(e,t,n){return new y(function(r,i){a(e,t,n,function(e,t){if(e)return i(e);var n=[];if(t.rows&&Array.isArray(t.rows))for(var a=0;a=0&&(s[n].splice(l,1),e[a].returning=!0),s[n].push(e[a])}i.isUndefined(r)&&delete o[n][a]})}),r.returning=a,r.outBinding=s,r.values=o,r},update:function(){var e=this,t={},n=this._prepOutbindings(this.single.update,this.single.returning),r=n.outBinding,o=n.returning,a=this._prepUpdate(this.single.update),l=this.where(),c="",f="";return i.isEmpty(this.single.update)&&"function"!=typeof this.single.update?"":(i.each(r,function(t){i.each(t,function(t){var n=t.columnName||t;return c+='"'+n+'",',f+=" ?,",t instanceof u?e.formatter.bindings.push(t):void e.formatter.bindings.push(new s(n))})}),c=c.slice(0,-1),f=f.slice(0,-1),t.outBinding=r,t.returning=o,t.sql="update "+this.tableName+" set "+a.join(", ")+(l?" "+l:""),r.length&&!i.isEmpty(r[0])&&(t.sql+=" returning "+c+" into"+f), +"*"===o[0]&&(t.returningSql=function(){for(var t="select * from "+e.tableName,n=this.rowsAffected.length||this.rowsAffected,r=" where ROWID in (",i=") order by case ROWID ",o=0;o0&&(n+=",");var i=e[r];n+=null===i||"undefined"==typeof i?"NULL":Array.isArray(i)?a(i,t):"number"==typeof i?i:(0,c.default)("string"==typeof i?i:t(i))}return n+"}"}t.__esModule=!0;var s=n(27),u=i(s),l=n(151),c=i(l),f=n(719),h=i(f),p=n(41),d=i(p),m=n(9),g=i(m),v=n(208),y=i(v),_=n(18),b=i(_),w=n(4),x=i(w),E=n(1),k=i(E),C=n(66),S=i(C),T=n(13),N=i(T),A=n(6),R=n(568),O=i(R),M=n(569),j=i(M),I=n(571),P=i(I),q=n(570),B=i(q),L=n(124);(0,k.default)(o,S.default),(0,x.default)(o.prototype,{queryCompiler:function(){return new(Function.prototype.bind.apply(O.default,[null].concat([this],Array.prototype.slice.call(arguments))))},columnCompiler:function(){return new(Function.prototype.bind.apply(j.default,[null].concat([this],Array.prototype.slice.call(arguments))))},schemaCompiler:function(){return new(Function.prototype.bind.apply(B.default,[null].concat([this],Array.prototype.slice.call(arguments))))},tableCompiler:function(){return new(Function.prototype.bind.apply(P.default,[null].concat([this],Array.prototype.slice.call(arguments))))},dialect:"postgresql",driverName:"pg",_driver:function(){return n(848)},_escapeBinding:(0,L.makeEscape)({escapeArray:function(e,t){return t(a(e,t))},escapeString:function(e){for(var t=!1,n="'",r=0;r3&&void 0!==arguments[3]?arguments[3]:[];if(e&&"function"==typeof e.toPostgres){if(r=r||[],r.indexOf(e)!==-1)throw new Error('circular reference detected while preparing "'+e+'" for query');return r.push(e),t(e.toPostgres(t),r)}return(0,c.default)(e)}}),wrapIdentifierImpl:function(e){if("*"===e)return e;var t=e.match(/(.*?)(\[[0-9]\])/);return t?this.wrapIdentifierImpl(t[1])+t[2]:'"'+e.replace(/"/g,'""')+'"'},acquireRawConnection:function(){var e=this;return new N.default(function(t,n){var r=new e.driver.Client(e.connectionSettings);r.connect(function(r,i){return r?n(r):(i.on("error",function(e){i.__knex__disposed=e}),i.on("end",function(e){i.__knex__disposed=e||"Connection ended unexpectedly"}),e.version?void t(i):e.checkVersion(i).then(function(n){e.version=n,t(i)}))})}).tap(function(t){return e.setSchemaSearchPath(t)})},destroyRawConnection:function(e){return N.default.fromCallback(e.end.bind(e))},checkVersion:function(e){return new N.default(function(t,n){e.query("select version();",function(e,r){return e?n(e):void t(/^PostgreSQL (.*?)( |$)/.exec(r.rows[0].version)[1])})})},positionBindings:function(e){var t=0;return e.replace(/(\\*)(\?)/g,function(e,n){return n.length%2?"?":(t++,"$"+t)})},setSchemaSearchPath:function(e,t){var n=t||this.searchPath;if(!n)return N.default.resolve(!0);if(!(0,g.default)(n)&&!(0,d.default)(n))throw new TypeError("knex: Expected searchPath to be Array/String, got: "+("undefined"==typeof n?"undefined":(0,u.default)(n)));if((0,d.default)(n)){if((0,h.default)(n,",")){var r=n.split(","),i="["+(0,b.default)(r,function(e){return"'"+e+"'"}).join(", ")+"]";(0,A.warn)('Detected comma in searchPath "'+n+'".If you are trying to specify multiple schemas, use Array syntax: '+i)}n=[n]}return n=(0,b.default)(n,function(e){return'"'+e+'"'}).join(","),new N.default(function(t,r){e.query("set search_path to "+n,function(e){return e?r(e):void t(!0)})})},_stream:function(e,t,i,o){var a=r.browser?void 0:n(849),s=t.sql;return new N.default(function(n,r){var u=e.query(new a(s,t.bindings,o));u.on("error",function(e){i.emit("error",e)}),i.on("error",function(e){u.close(),r(e)}),i.on("end",n),u.pipe(i)})},_query:function(e,t){var n=t.sql;return t.options&&(n=(0,y.default)({text:n},t.options)),new N.default(function(r,i){e.query(n,t.bindings,function(e,n){return e?i(e):(t.response=n,void r(t))})})},processResponse:function(e,t){var n=e.response;if(e.output)return e.output.call(t,n);if("raw"===e.method)return n;var r=e.returning;if("SELECT"===n.command)return"first"===e.method?n.rows[0]:"pluck"===e.method?(0,b.default)(n.rows,e.pluck):n.rows;if(r){for(var i=[],o=0,a=n.rows.length;o=9.2?t?"jsonb":"json":"text"}t.__esModule=!0;var s=n(4),u=i(s),l=n(1),c=i(l),f=n(68),h=i(f),p=n(6),d=r(p);(0,c.default)(o,h.default),(0,u.default)(o.prototype,{bigincrements:"bigserial primary key",bigint:"bigint",binary:"bytea",bit:function(e){return e.length!==!1?"bit("+e.length+")":"bit"},bool:"boolean",enu:function(e){return"text check ("+this.formatter.wrap(this.args[0])+" in ('"+e.join("', '")+"'))"},double:"double precision",floating:"real",increments:"serial primary key",json:function(e){return e&&d.deprecate("json(true)","jsonb()"),a(this.client,e)},jsonb:function(){return a(this.client,!0)},smallint:"smallint",tinyint:"smallint",datetime:function(e){return e?"timestamp":"timestamptz"},timestamp:function(e){return e?"timestamp":"timestamptz"},uuid:"uuid",comment:function(e){var t=this.args[0]||this.defaults("columnName");this.pushAdditional(function(){this.pushQuery("comment on column "+this.tableCompiler.tableName()+"."+this.formatter.wrap(t)+" is "+(e?"'"+e+"'":"NULL"))},e)}}),t.default=o,e.exports=t.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(){u.default.apply(this,arguments)}t.__esModule=!0;var o=n(1),a=r(o),s=n(69),u=r(s);(0,a.default)(i,u.default),i.prototype.hasTable=function(e){var t="select * from information_schema.tables where table_name = ?",n=[e];this.schema?(t+=" and table_schema = ?",n.push(this.schema)):t+=" and table_schema = current_schema",this.pushQuery({sql:t,bindings:n,output:function(e){return e.rows.length>0}})},i.prototype.hasColumn=function(e,t){var n="select * from information_schema.columns where table_name = ? and column_name = ?",r=[e,t];this.schema?(n+=" and table_schema = ?",r.push(this.schema)):n+=" and table_schema = current_schema",this.pushQuery({sql:n,bindings:r,output:function(e){return e.rows.length>0}})},i.prototype.qualifiedTableName=function(e){var t=this.schema?this.schema+"."+e:e;return this.formatter.wrap(t)},i.prototype.renameTable=function(e,t){this.pushQuery("alter table "+this.qualifiedTableName(e)+" rename to "+this.formatter.wrap(t))},i.prototype.createSchema=function(e){this.pushQuery("create schema "+this.formatter.wrap(e))},i.prototype.createSchemaIfNotExists=function(e){this.pushQuery("create schema if not exists "+this.formatter.wrap(e))},i.prototype.dropSchema=function(e){this.pushQuery("drop schema "+this.formatter.wrap(e))},i.prototype.dropSchemaIfExists=function(e){this.pushQuery("drop schema if exists "+this.formatter.wrap(e))},i.prototype.dropExtension=function(e){this.pushQuery("drop extension "+this.formatter.wrap(e))},i.prototype.dropExtensionIfExists=function(e){this.pushQuery("drop extension if exists "+this.formatter.wrap(e))},i.prototype.createExtension=function(e){this.pushQuery("create extension "+this.formatter.wrap(e))},i.prototype.createExtensionIfNotExists=function(e){this.pushQuery("create extension if not exists "+this.formatter.wrap(e))},t.default=i,e.exports=t.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(){h.default.apply(this,arguments)}t.__esModule=!0;var o=n(63),a=r(o),s=n(334),u=r(s),l=n(1),c=r(l),f=n(70),h=r(f);(0,c.default)(i,h.default),i.prototype.renameColumn=function(e,t){return this.pushQuery({sql:"alter table "+this.tableName()+" rename "+this.formatter.wrap(e)+" to "+this.formatter.wrap(t)})},i.prototype.compileAdd=function(e){var t=this.formatter.wrap(e),n=this.prefixArray("add column",this.getColumns(e));return this.pushQuery({sql:"alter table "+t+" "+n.join(", ")})},i.prototype.createQuery=function(e,t){var n=t?"create table if not exists ":"create table ",r=n+this.tableName()+" ("+e.sql.join(", ")+")";this.single.inherits&&(r+=" inherits ("+this.formatter.wrap(this.single.inherits)+")"),this.pushQuery({sql:r,bindings:e.bindings});var i=(0,u.default)(this.single,"comment");i&&this.comment(this.single.comment)},i.prototype.addColumns=function(e,t,n){if(t===this.alterColumnsPrefix)for(var r=n,i=Array.isArray(r),o=0,r=i?r:(0,a.default)(r);;){var s;if(i){if(o>=r.length)break;s=r[o++]}else{if(o=r.next(),o.done)break;s=o.value}var u=s,l=this.tableName(),c=u.getColumnName(),f=u.getColumnType();this.pushQuery({sql:"alter table "+l+' alter column "'+c+'" drop default',bindings:[]}),this.pushQuery({sql:"alter table "+l+' alter column "'+c+'" drop not null',bindings:[]}),this.pushQuery({sql:"alter table "+l+' alter column "'+c+'" type '+f+' using ("'+c+'"::'+f+")",bindings:[]});var p=u.modified.defaultTo;if(p){var d=u.defaultTo.apply(u,p);this.pushQuery({sql:"alter table "+l+' alter column "'+c+'" set '+d,bindings:[]})}var m=u.modified.nullable;m&&m[0]===!1&&this.pushQuery({sql:"alter table "+l+' alter column "'+c+'" set not null',bindings:[]})}else h.default.prototype.addColumns.call(this,e,t)},i.prototype.comment=function(e){this.pushQuery("comment on table "+this.tableName()+" is '"+this.single.comment+"'")},i.prototype.primary=function(e,t){t=t?this.formatter.wrap(t):this.formatter.wrap(this.tableNameRaw+"_pkey"),this.pushQuery("alter table "+this.tableName()+" add constraint "+t+" primary key ("+this.formatter.columnize(e)+")")},i.prototype.unique=function(e,t){t=t?this.formatter.wrap(t):this._indexCommand("unique",this.tableNameRaw,e),this.pushQuery("alter table "+this.tableName()+" add constraint "+t+" unique ("+this.formatter.columnize(e)+")")},i.prototype.index=function(e,t,n){t=t?this.formatter.wrap(t):this._indexCommand("index",this.tableNameRaw,e),this.pushQuery("create index "+t+" on "+this.tableName()+(n&&" using "+n||"")+" ("+this.formatter.columnize(e)+")")},i.prototype.dropPrimary=function(e){e=e?this.formatter.wrap(e):this.formatter.wrap(this.tableNameRaw+"_pkey"),this.pushQuery("alter table "+this.tableName()+" drop constraint "+e)},i.prototype.dropIndex=function(e,t){t=t?this.formatter.wrap(t):this._indexCommand("index",this.tableNameRaw,e),t=this.schemaNameRaw?this.formatter.wrap(this.schemaNameRaw)+"."+t:t,this.pushQuery("drop index "+t)},i.prototype.dropUnique=function(e,t){t=t?this.formatter.wrap(t):this._indexCommand("unique",this.tableNameRaw,e),this.pushQuery("alter table "+this.tableName()+" drop constraint "+t)},i.prototype.dropForeign=function(e,t){t=t?this.formatter.wrap(t):this._indexCommand("foreign",this.tableNameRaw,e),this.pushQuery("alter table "+this.tableName()+" drop constraint "+t)},t.default=i,e.exports=t.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e,t){E.default.call(this,e,t)}function o(){return""}t.__esModule=!0;var a=n(27),s=r(a),u=n(79),l=r(u),c=n(213),f=r(c),h=n(41),p=r(h),d=n(77),m=r(d),g=n(75),v=r(g),y=n(4),_=r(y),b=n(1),w=r(b),x=n(67),E=r(x);(0,w.default)(i,E.default),(0,_.default)(i.prototype,{forShare:o,forUpdate:o,insert:function(){var e=this.single.insert||[],t=this.with()+("insert into "+this.tableName+" ");if(Array.isArray(e)){if(0===e.length)return"";if(1===e.length&&e[0]&&(0,m.default)(e[0]))return t+this._emptyInsertValue}else if("object"===("undefined"==typeof e?"undefined":(0,s.default)(e))&&(0,m.default)(e))return t+this._emptyInsertValue;var n=this._prepInsert(e);if((0,p.default)(n))return t+n;if(0===n.columns.length)return"";if(t+="("+this.formatter.columnize(n.columns)+")",null!==this.client.valueForUndefined&&(0,v.default)(n.values,function(e){(0,v.default)(e,function(e){if(void 0===e)throw new TypeError("`sqlite` does not support inserting default values. Specify values explicitly or use the `useNullAsDefault` config flag. (see docs http://knexjs.org/#Builder-insert).")})}),1===n.values.length){var r=this.formatter.parameterize(n.values[0],this.client.valueForUndefined);return t+(" values ("+r+")")}for(var i=[],o=-1;++o0}})},i.prototype.hasColumn=function(e,t){this.pushQuery({sql:"PRAGMA table_info("+this.formatter.wrap(e)+")",output:function(e){return(0,a.default)(e,{name:t})}})},i.prototype.renameTable=function(e,t){this.pushQuery("alter table "+this.formatter.wrap(e)+" rename to "+this.formatter.wrap(t))},t.default=i,e.exports=t.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e,t,n,r){this.client=e,this.tableCompiler=t,this.pragma=n,this.tableName=this.tableCompiler.tableNameRaw,this.alteredName=(0,d.default)("_knex_temp_alter"),this.connection=r}t.__esModule=!0;var o=n(724),a=r(o),s=n(18),u=r(s),l=n(76),c=r(l),f=n(715),h=r(f),p=n(143),d=r(p),m=n(4),g=r(m),v=n(13),y=r(v);(0,g.default)(i.prototype,{getColumn:y.default.method(function(e){var t=(0,h.default)(this.pragma,{name:e});if(!t)throw new Error("The column "+e+" is not in the "+this.tableName+" table");return t}),getTableSql:function(){return this.trx.raw('SELECT name, sql FROM sqlite_master WHERE type="table" AND name="'+this.tableName+'"')},renameTable:y.default.method(function(){return this.trx.raw('ALTER TABLE "'+this.tableName+'" RENAME TO "'+this.alteredName+'"')}),dropOriginal:function(){return this.trx.raw('DROP TABLE "'+this.tableName+'"')},dropTempTable:function(){return this.trx.raw('DROP TABLE "'+this.alteredName+'"')},copyData:function(){return this.trx.raw('SELECT * FROM "'+this.tableName+'"').bind(this).then(this.insertChunked(20,this.alteredName))},reinsertData:function(e){return function(){return this.trx.raw('SELECT * FROM "'+this.alteredName+'"').bind(this).then(this.insertChunked(20,this.tableName,e))}},insertChunked:function(e,t,n){return n=n||c.default,function(e){var r=[],i=this;return y.default.reduce(e,function(o,a){return o++,r.push(a),o%20===0||o===e.length?i.trx.queryBuilder().table(t).insert((0,u.default)(r,n)).then(function(){r=[]}).thenReturn(o):o},0)}},createTempTable:function(e){return function(){return this.trx.raw(e.sql.replace(this.tableName,this.alteredName))}},_doReplace:function(e,t,n){var r=e.match(/^CREATE TABLE (\S+) \((.*)\)/),i=r[1],o=r[2];if(!o)throw new Error("No column definitions in this statement!");var a=0,s=[],u=0,l=0,c=o.length;for(l=0;l0&&e[0].args.length>0){var t=Array.isArray(e[0].args[0])?e[0].args[0]:e[0].args;return", primary key ("+this.formatter.columnize(t)+")"}},o.prototype.foreignKeys=function(){for(var e="",t=(0,l.default)(this.grouped.alterTable||[],{method:"foreign"}),n=0,r=t.length;n3&&void 0!==arguments[3]?arguments[3]:1e3,i=void 0,o=!0,s=null,l=function(){return new y.default(function(t,n){return s?(o=!1,t(s)):(o=!0,void e.transaction(t).catch(n))})},f=(0,u.default)(new y.default(function(e,s){var u=(0,h.default)(n,r);return!(0,g.default)(r)||r<1?s(new TypeError("Invalid chunkSize: "+r)):(0,d.default)(n)?y.default.delay(1).then(l).then(function(e){return y.default.mapSeries(u,function(n){return e(t).insert(n,i)}).then(function(t){return t=(0,c.default)(t||[]),o?(e.commit(t)||y.default.resolve()).then(function(){return t}):t}).catch(function(t){return o?e.rollback(t).then(function(){return y.default.reject(t)}):y.default.reject(t)})}).then(e).catch(s):s(new TypeError("Invalid batch: Expected array, got "+("undefined"==typeof n?"undefined":(0,a.default)(n))))}),{returning:function(e){return i=e,this},transacting:function(e){return s=e,this}});return f}t.__esModule=!0;var o=n(27),a=r(o),s=n(4),u=r(s),l=n(138),c=r(l),f=n(711),h=r(f),p=n(9),d=r(p),m=n(211),g=r(m);t.default=i;var v=n(13),y=r(v);e.exports=t.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function i(e){var t=s.default.parse(e),n=t.protocol;return n&&0===n.indexOf("maria")&&(n="maria"),null===n?{client:"sqlite3",connection:{filename:e}}:(":"===n.slice(-1)&&(n=n.slice(0,-1)),{client:n,connection:"postgres"===n?(0,u.parse)(e):o(t)})}function o(e){var t={},n=e.pathname;if("/"===n[0]&&(n=n.slice(1)),0===e.protocol.indexOf("maria")?t.db=n:t.database=n,e.hostname&&(0===e.protocol.indexOf("mssql")?t.server=e.hostname:t.host=e.hostname),e.port&&(t.port=e.port),e.auth){var r=e.auth.indexOf(":");r!==-1?(t.user=e.auth.slice(0,r),r100)){var t=/^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(e);if(t){var n=parseFloat(t[1]),r=(t[2]||"ms").toLowerCase();switch(r){case"years":case"year":case"yrs":case"yr":case"y":return n*c;case"days":case"day":case"d":return n*l;case"hours":case"hour":case"hrs":case"hr":case"h":return n*u;case"minutes":case"minute":case"mins":case"min":case"m":return n*s;case"seconds":case"second":case"secs":case"sec":case"s":return n*a;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return n;default:return}}}}function r(e){return e>=l?Math.round(e/l)+"d":e>=u?Math.round(e/u)+"h":e>=s?Math.round(e/s)+"m":e>=a?Math.round(e/a)+"s":e+"ms"}function i(e){return o(e,l,"day")||o(e,u,"hour")||o(e,s,"minute")||o(e,a,"second")||e+" ms"}function o(e,t,n){if(!(e0)return n(e);if("number"===o&&isNaN(e)===!1)return t.long?i(e):r(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))}},function(e,t,n){"use strict";function r(e){return this instanceof r?void i.call(this,e):new r(e)}e.exports=r;var i=n(288),o=n(35);o.inherits=n(1),o.inherits(r,i),r.prototype._transform=function(e,t,n){n(null,e)}},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t,n){e.copy(t,n)}var o=n(110).Buffer;e.exports=function(){function e(){r(this,e),this.head=null,this.tail=null,this.length=0}return e.prototype.push=function(e){var t={data:e,next:null};this.length>0?this.tail.next=t:this.head=t,this.tail=t,++this.length},e.prototype.unshift=function(e){var t={data:e,next:this.head};0===this.length&&(this.tail=t),this.head=t,++this.length},e.prototype.shift=function(){if(0!==this.length){var e=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,e}},e.prototype.clear=function(){this.head=this.tail=null,this.length=0},e.prototype.join=function(e){if(0===this.length)return"";for(var t=this.head,n=""+t.data;t=t.next;)n+=e+t.data;return n},e.prototype.concat=function(e){if(0===this.length)return o.alloc(0);if(1===this.length)return this.head.data;for(var t=o.allocUnsafe(e>>>0),n=this.head,r=0;n;)i(n.data,t,r),r+=n.data.length,n=n.next;return t},e}()},function(e,t,n){t=e.exports=n(287),t.Stream=t,t.Readable=t,t.Writable=n(289),t.Duplex=n(71),t.Transform=n(288),t.PassThrough=n(589)},function(e,t){"use strict";e.exports=!1},function(e,t,n){var r=n(59),i=n(24),o=r(i,"DataView");e.exports=o},function(e,t,n){function r(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t0&&n(c)?t>1?r(c,t-1,n,a,s):i(s,c):a||(s[s.length]=c)}return s}var i=n(189),o=n(671);e.exports=r},function(e,t,n){var r=n(645),i=r();e.exports=i},function(e,t){function n(e,t){return null!=e&&i.call(e,t)}var r=Object.prototype,i=r.hasOwnProperty;e.exports=n},function(e,t){function n(e,t){return null!=e&&t in Object(e)}e.exports=n},function(e,t,n){function r(e){return o(e)&&i(e)==a}var i=n(40),o=n(37),a="[object Arguments]";e.exports=r},function(e,t,n){function r(e,t,n,r,g,y){var _=l(e),b=l(t),w=_?d:u(e),x=b?d:u(t);w=w==p?m:w,x=x==p?m:x;var E=w==m,k=x==m,C=w==x;if(C&&c(e)){if(!c(t))return!1;_=!0,E=!1}if(C&&!E)return y||(y=new i),_||f(e)?o(e,t,n,r,g,y):a(e,t,w,n,r,g,y);if(!(n&h)){var S=E&&v.call(e,"__wrapped__"),T=k&&v.call(t,"__wrapped__");if(S||T){var N=S?e.value():e,A=T?t.value():t;return y||(y=new i),g(N,A,n,r,y)}}return!!C&&(y||(y=new i),s(e,t,n,r,g,y))}var i=n(187),o=n(315),a=n(654),s=n(655),u=n(135),l=n(9),c=n(102),f=n(103),h=1,p="[object Arguments]",d="[object Array]",m="[object Object]",g=Object.prototype,v=g.hasOwnProperty;e.exports=r},function(e,t,n){function r(e,t,n,r){var u=n.length,l=u,c=!r;if(null==e)return!l;for(e=Object(e);u--;){var f=n[u];if(c&&f[2]?f[1]!==e[f[0]]:!(f[0]in e))return!1}for(;++u=c){var g=t?null:u(e);if(g)return l(g);p=!1,f=s,m=new i}else m=t?[]:d;e:for(;++r-1?s[u?t[l]:l]:void 0}}var i=n(32),o=n(36),a=n(42);e.exports=r},function(e,t,n){function r(e,t,n,r){function u(){for(var t=-1,o=arguments.length,s=-1,f=r.length,h=Array(f+o),p=this&&this!==a&&this instanceof u?c:e;++s1?"& ":"")+t[i],t=t.join(n>2?", ":" "),e.replace(r,"{\n/* [wrapped with "+t+"] */\n")}var r=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/;e.exports=n},function(e,t,n){function r(e){return a(e)||o(e)||!!(s&&e&&e[s])}var i=n(58),o=n(139),a=n(9),s=i?i.isConcatSpreadable:void 0;e.exports=r},function(e,t){function n(e){var t=typeof e;return"string"==t||"number"==t||"symbol"==t||"boolean"==t?"__proto__"!==e:null===e}e.exports=n},function(e,t,n){function r(e){var t=a(e),n=s[t];if("function"!=typeof n||!(t in i.prototype))return!1;if(e===n)return!0;var r=o(n);return!!r&&e===r[0]}var i=n(184),o=n(319),a=n(656),s=n(736);e.exports=r},function(e,t,n){function r(e){return!!o&&o in e}var i=n(641),o=function(){var e=/[^.]+$/.exec(i&&i.keys&&i.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();e.exports=r},function(e,t){function n(e){for(var t,n=[];!(t=e.next()).done;)n.push(t.value);return n}e.exports=n},function(e,t){function n(){this.__data__=[],this.size=0}e.exports=n},function(e,t,n){function r(e){var t=this.__data__,n=i(t,e);if(n<0)return!1;var r=t.length-1;return n==r?t.pop():a.call(t,n,1),--this.size,!0}var i=n(129),o=Array.prototype,a=o.splice;e.exports=r},function(e,t,n){function r(e){var t=this.__data__,n=i(t,e);return n<0?void 0:t[n][1]}var i=n(129);e.exports=r},function(e,t,n){function r(e){return i(this.__data__,e)>-1}var i=n(129);e.exports=r},function(e,t,n){function r(e,t){var n=this.__data__,r=i(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this}var i=n(129);e.exports=r},function(e,t,n){function r(){this.size=0,this.__data__={hash:new i,map:new(a||o),string:new i}}var i=n(594),o=n(125),a=n(185);e.exports=r},function(e,t,n){function r(e){var t=i(this,e).delete(e);return this.size-=t?1:0,t}var i=n(133);e.exports=r},function(e,t,n){function r(e){return i(this,e).get(e)}var i=n(133);e.exports=r},function(e,t,n){function r(e){return i(this,e).has(e)}var i=n(133);e.exports=r},function(e,t,n){function r(e,t){var n=i(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this}var i=n(133);e.exports=r},function(e,t,n){function r(e){var t=i(e,function(e){return n.size===o&&n.clear(),e}),n=t.cache;return t}var i=n(723),o=500;e.exports=r},function(e,t,n){function r(e,t){var n=e[1],r=t[1],m=n|r,g=m<(u|l|h),v=r==h&&n==f||r==h&&n==p&&e[7].length<=t[8]||r==(h|p)&&t[7].length<=t[8]&&n==f;if(!g&&!v)return e;r&u&&(e[2]=t[2],m|=n&u?0:c);var y=t[3];if(y){var _=e[3];e[3]=_?i(_,y,t[4]):y,e[4]=_?a(e[3],s):t[4]}return y=t[5],y&&(_=e[5],e[5]=_?o(_,y,t[6]):y,e[6]=_?a(e[5],s):t[6]),y=t[7],y&&(e[7]=y),r&h&&(e[8]=null==e[8]?t[8]:d(e[8],t[8])),null==e[9]&&(e[9]=t[9]),e[0]=t[0],e[1]=m,e}var i=n(310),o=n(311),a=n(137),s="__lodash_placeholder__",u=1,l=2,c=4,f=8,h=128,p=256,d=Math.min;e.exports=r},function(e,t,n){var r=n(325),i=r(Object.keys,Object);e.exports=i},function(e,t){function n(e){var t=[];if(null!=e)for(var n in Object(e))t.push(n);return t}e.exports=n},function(e,t,n){(function(e){var r=n(317),i="object"==typeof t&&t&&!t.nodeType&&t,o=i&&"object"==typeof e&&e&&!e.nodeType&&e,a=o&&o.exports===i,s=a&&r.process,u=function(){try{return s&&s.binding&&s.binding("util")}catch(e){}}();e.exports=u}).call(t,n(86)(e))},function(e,t){function n(e){return i.call(e)}var r=Object.prototype,i=r.toString;e.exports=n},function(e,t,n){function r(e,t){return t.length<2?e:i(e,o(t,0,-1))}var i=n(130),o=n(196);e.exports=r},function(e,t){var n={};e.exports=n},function(e,t,n){function r(e,t){for(var n=e.length,r=a(t.length,n),s=i(e);r--;){var u=t[r];e[r]=o(u,n)?s[u]:void 0}return e}var i=n(131),o=n(98),a=Math.min;e.exports=r},function(e,t){function n(e){return this.__data__.set(e,r),this}var r="__lodash_hash_undefined__";e.exports=n},function(e,t){function n(e){return this.__data__.has(e)}e.exports=n},function(e,t,n){function r(){this.__data__=new i,this.size=0}var i=n(125);e.exports=r},function(e,t){function n(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n}e.exports=n},function(e,t){function n(e){return this.__data__.get(e)}e.exports=n},function(e,t){function n(e){return this.__data__.has(e)}e.exports=n},function(e,t,n){function r(e,t){var n=this.__data__;if(n instanceof i){var r=n.__data__;if(!o||r.length-1:!!c&&i(e,t,n)>-1}var i=n(193),o=n(36),a=n(41),s=n(105),u=n(144),l=Math.max;e.exports=r},function(e,t,n){function r(e,t,n){var r=null==e?0:e.length;if(!r)return-1;var s=null==n?0:o(n);return s<0&&(s=a(r+s,0)),i(e,t,s)}var i=n(193),o=n(105),a=Math.max;e.exports=r},function(e,t,n){function r(e){return e===!0||e===!1||o(e)&&i(e)==a}var i=n(40),o=n(37),a="[object Boolean]";e.exports=r},function(e,t){function n(e){var t=null==e?0:e.length;return t?e[t-1]:void 0}e.exports=n},function(e,t,n){function r(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new TypeError(o);var n=function(){var r=arguments,i=t?t.apply(this,r):r[0],o=n.cache;if(o.has(i))return o.get(i);var a=e.apply(this,r);return n.cache=o.set(i,a)||o,a};return n.cache=new(r.Cache||i),n}var i=n(186),o="Expected a function";r.Cache=i,e.exports=r},function(e,t,n){var r=n(96),i=n(192),o=n(629),a=n(73),s=n(50),u=n(653),l=n(316),c=n(199),f=1,h=2,p=4,d=l(function(e,t){var n={};if(null==e)return n;var l=!1;t=r(t,function(t){return t=a(t,e),l||(l=t.length>1),t}),s(e,c(e),n),l&&(n=i(n,f|h|p,u));for(var d=t.length;d--;)o(n,t[d]);return n});e.exports=d},function(e,t,n){function r(e,t){return a(e,o(i(t)))}var i=n(32),o=n(337),a=n(727);e.exports=r},function(e,t,n){var r=n(618),i=n(316),o=i(function(e,t){return null==e?{}:r(e,t)});e.exports=o},function(e,t,n){function r(e,t){if(null==e)return{};var n=i(s(e),function(e){return[e]});return t=o(t),a(e,n,function(e,n){return t(e,n[0])})}var i=n(96),o=n(32),a=n(307),s=n(199);e.exports=r},function(e,t,n){function r(e){return a(e)?i(s(e)):o(e)}var i=n(619),o=n(620),a=n(203),s=n(74);e.exports=r},function(e,t,n){function r(e,t){var n=s(e)?i:o;return n(e,u(a(t,3)))}var i=n(188),o=n(301),a=n(32),s=n(9),u=n(337);e.exports=r},function(e,t,n){function r(e,t,n){var r=s(e)?i:a;return n&&u(e,t,n)&&(t=void 0),r(e,o(t,3))}var i=n(300),o=n(32),a=n(624),s=n(9),u=n(202);e.exports=r},function(e,t){function n(){return!1}e.exports=n},function(e,t,n){function r(e){if(!e)return 0===e?e:0;if(e=i(e),e===o||e===-o){var t=e<0?-1:1;return t*a}return e===e?e:0}var i=n(733),o=1/0,a=1.7976931348623157e308;e.exports=r},function(e,t,n){function r(e){if("number"==typeof e)return e;if(o(e))return a;if(i(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=i(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(s,"");var n=l.test(e);return n||c.test(e)?f(e.slice(2),n?2:8):u.test(e)?a:+e}var i=n(19),o=n(140),a=NaN,s=/^\s+|\s+$/g,u=/^[-+]0x[0-9a-f]+$/i,l=/^0b[01]+$/i,c=/^0o[0-7]+$/i,f=parseInt;e.exports=r},function(e,t,n){function r(e,t,n){var r=l(e),d=r||c(e)||p(e);if(t=s(t,4),null==n){var m=e&&e.constructor;n=d?r?new m:[]:h(e)&&f(m)?o(u(e)):{}}return(d?i:a)(e,function(e,r,i){return t(n,e,r,i)}),n}var i=n(127),o=n(97),a=n(303),s=n(32),u=n(134),l=n(9),c=n(102),f=n(78),h=n(19),p=n(103);e.exports=r},function(e,t,n){function r(e){return e&&e.length?i(e):[]}var i=n(628);e.exports=r},function(e,t,n){function r(e){if(u(e)&&!s(e)&&!(e instanceof i)){if(e instanceof o)return e;if(f.call(e,"__wrapped__"))return l(e)}return new o(e)}var i=n(184),o=n(293),a=n(194),s=n(9),u=n(37),l=n(707),c=Object.prototype,f=c.hasOwnProperty;r.prototype=a.prototype,r.prototype.constructor=r,e.exports=r},function(e,t,n){(function(t){e.exports=function(e){function n(e,t,n,i,o,a){if("function"==typeof o&&(a=o,o=void 0),"function"!=typeof a)throw new Error("No callback provided to pbkdf2");setTimeout(function(){var s;try{s=r(e,t,n,i,o)}catch(e){return a(e)}a(void 0,s)})}function r(n,r,i,o,a){if("number"!=typeof i)throw new TypeError("Iterations not a number");if(i<0)throw new TypeError("Bad iterations");if("number"!=typeof o)throw new TypeError("Key length not a number");if(o<0)throw new TypeError("Bad key length");a=a||"sha1",t.isBuffer(n)||(n=new t(n)),t.isBuffer(r)||(r=new t(r));var s,u,l,c=1,f=new t(o),h=new t(r.length+4);r.copy(h,0,0,r.length);for(var p=1;p<=c;p++){h.writeUInt32BE(p,r.length);var d=e.createHmac(a,n).update(h).digest();if(!s&&(s=d.length,l=new t(s),c=Math.ceil(o/s),u=o-(c-1)*s,o>(Math.pow(2,32)-1)*s))throw new TypeError("keylen exceeds maximum length");d.copy(l,0,0,s);for(var m=1;m0&&u>s&&(u=s);for(var l=0;l=0?(c=d.substr(0,m),f=d.substr(m+1)):(c=d,f=""),h=decodeURIComponent(c),p=decodeURIComponent(f),n(o,h)?Array.isArray(o[h])?o[h].push(p):o[h]=[o[h],p]:o[h]=p}return o}},function(e,t){"use strict";var n=function(e){switch(typeof e){case"string":return e;case"boolean":return e?"true":"false";case"number":return isFinite(e)?e:"";default:return""}};e.exports=function(e,t,r,i){return t=t||"&",r=r||"=",null===e&&(e=void 0),"object"==typeof e?Object.keys(e).map(function(i){var o=encodeURIComponent(n(i))+r;return Array.isArray(e[i])?e[i].map(function(e){return o+encodeURIComponent(n(e))}).join(t):o+encodeURIComponent(n(e[i]))}).join(t):i?encodeURIComponent(n(i))+r+encodeURIComponent(n(e)):""}},function(e,t,n){"use strict";t.decode=t.parse=n(742),t.encode=t.stringify=n(743)},function(e,t){e.exports='\n# Master (Unreleased)\n\n# 0.14.2 - 24 Nov, 2017\n\n### Bug fixes:\n\n- Fix sqlite3 truncate method to work again #2348\n\n# 0.14.1 - 19 Nov, 2017\n\n### Bug fixes:\n\n- Fix support for multiple schema names in in postgres `searchPath` #2340\n- Fix create new connection to pass errors to query instead of retry loop #2336\n- Fix recognition of connections closed by server #2341\n\n# 0.14.0 - 6 Nov, 2017\n\n### Breaking Changes:\n\n- Remove sorting of statements from update queries #2171\n- Updated allowed operator list with some missing operators and make all to lower case #2239\n- Use node-mssql 4.0.0 #2029\n- Support for enum columns to SQlite3 dialect #2055\n- Better identifier quoting in Sqlite3 #2087\n- Migration Errors - Display filename of of failed migration #2272\n\n### Other Features:\n\n- Post processing hook for query result #2261\n- Build native SQL where binding parameters are dialect specific #2237\n- Configuration option to allow override identifier wrapping #2217\n- Implemented select syntax: select({ alias: \'column\' }) #2227\n- Allows to filter seeds and migrations by extensions #2168\n- Reconnecting after database server disconnect/reconnect + tests #2017\n- Removed filering from allowed configuration settings of mysql2 #2040\n- Allow raw expressions in query builder aggregate methods #2257\n- Throw error on non-string table comment #2126\n- Support for mysql stream query options #2301\n\n### Bug fixes:\n\n- Allow update queries and passing query builder to with statements #2298\n- Fix escape table name in SQLite columnInfo call #2281\n- Preventing containsUndefined from going to recursion loop #1711\n- Fix error caused by call to knex.migrate.currentVersion #2123\n- Upgraded generic-pool to 3.1.7 (did resolve some memory issues) #2208\n- Allow using NOT ILIKE operator #2195\n- Fix postgres searchPath to be case-sensitive #2172\n- Fix drop of multiple columns in sqlite3 #2107\n- Fix adding multiple columns in Oracle #2115\n- Use selected schema when dropping indices in Postgres. #2105\n- Fix hasTable for MySQL to not do partial matches #2097\n- Fix setting autoTransaction in batchInsert #2113\n- Fix connection error propagation when streaming #2199\n- Fix comments not being applied to increments columns #2243\n- Fix mssql wrong binding order of queries that combine a limit with select raw or update #2066\n- Fixed mysql alter table attributes order #2062\n\n### Test / internal changes\n\n- Update each out-of-date dependency according to david-dm.org #2297\n- Update v8flags to version 3.0.0 #2288\n- Update interpret version #2283\n- Fix debug output typo #2187\n- Docker CI tests #2164\n- Unit test for right/rightOuterJoin combination #2117\n- Unit test for fullOuterJoin #2118\n- Unit tests for table comment #2098\n- Test referencing non-existent column with sqlite3 #2104\n- Unit test for renaming column in postgresql #2099\n- Unit test for cross-join #2102\n- Fix incorrect parameter name #2068\n\n# 0.13.0 - 29 Apr, 2017\n\n### Breaking Changes:\n- Multiple concurrent migration runners blocks instead of throwing error when possible #1962\n- Fixed transaction promise mutation issue #1991\n\n### Other Changes:\n- Allow passing version of connected db in configuration file #1993\n- Bugfixes on batchInsert and transactions for mysql/maria #1992\n- Add fetchAsString optional parameter to oracledb dialect #1998\n- fix: escapeObject parameter order for Postgres dialect. #2003\n\n# 0.12.9 - 23 Mar, 2017\n- Fixed unhandled exception in batchInsert when the rows to be inserted resulted in duplicate key violation #1880\n\n# 0.12.8 - 15 Mar, 2017\n- Added clearSelect and clearWhere to query builder #1912\n- Properly close Postgres query streams on error #1935\n- Transactions should never reject with undefined #1970\n- Clear acquireConnectionTimeout if an error occurs when acquiring a connection #1973\n\n# 0.12.7 - 17 Feb, 2017\n\n### Accidental Breaking Change:\n- Ensure that \'client\' is provided in knex config object #1822\n\n### Other Changes:\n- Support custom foreign key names #1311, #1726\n- Fixed named bindings to work with queries containing `:`-chars #1890\n- Exposed more promise functions #1896\n- Pass rollback errors to transaction promise in mssql #1885\n- ONLY keyword support for PostgreSQL (for table inheritance) #1874\n- Fixed Mssql update with join syntax #1777\n- Replace migrations and seed for react-native packager #1813\n- Support knexfile, migration and seeds in TypeScript #1769\n- Fix float to integer conversion of decimal fields in MSSQL #1781\n- External authentication capability when using oracledb driver #1716\n- Fixed MSSQL incorect query build when locks are used #1707\n- Allow to use `first` method as aliased select #1784\n- Alter column for nullability, type and default value #46, #1759\n- Add more having* methods / join clause on* methods #1674\n- Compatibility fixes and cleanups #1788, #1792, #1794, #1814, #1857, #1649\n\n# 0.12.6 - 19 Oct, 2016\n- Address warnings mentioned in #1388 (#1740)\n- Remove postinstall script (#1746)\n\n# 0.12.5 - 12 Oct, 2016\n- Fix broken 0.12.4 build (removed from npm)\n- Fix #1733, #920, incorrect postgres array bindings\n\n# 0.12.3 - 9 Oct, 2016\n- Fix #1703, #1694 - connections should be returned to pool if acquireConnectionTimeout is triggered\n- Fix #1710 regression in postgres array escaping\n\n# 0.12.2 - 27 Sep, 2016\n- Restore pool min: 1 for sqlite3, #1701\n- Fix for connection error after it\'s closed / released, #1691\n- Fix oracle prefetchRowCount setting, #1675\n\n# 0.12.1 - 16 Sep, 2016\n- Fix MSSQL sql execution error, #1669\n- Added DEBUG=knex:bindings for debugging query bindings, #1557\n\n# 0.12.0 - 13 Sep, 2016\n\n- Remove build / built files, #1616\n- Upgrade to Babel 6, #1617\n- Reference Bluebird module directly, remove deprecated .exec method, #1618\n- Remove documentation files from main repo\n- Fix broken behavior on WebSQL build, #1638\n- Oracle id sequence now handles manual inserts, #906\n- Cleanup PG escaping, fix #1602, #1548\n- Added [`with`](#Builder-with) to builder for [common table expressions](https://www.postgresql.org/docs/9.4/static/queries-with.html), #1599\n- Fix #1619, pluck with explicit column names\n- Switching back to [generic-pool](https://github.com/coopernurse/node-pool) for pooling resource management\n- Removed index.html, please direct all PR\'s for docs against the files in [knex/documentation](https://github.com/knex/documentation)\n\n# 0.11.10 - 9 Aug, 2016\n\n- Added CHANGELOG.md for a [new documentation](https://github.com/knex/documentation) builder coming soon, #1615\n- Minor documentation tweaks\n- PG: Fix Uint8Array being considered undefined, #1601\n- MSSQL: Make columnInfo schema dynamic, #1585\n\n# 0.11.9 - 21 Jul, 2016\n\n- Reverted knex client breaking change (commit b74cd69e906), fixes #1587\n\n# 0.11.8 - 21 Jul, 2016\n\n- Oracledb dialect #990\n- Documentation fix #1532\n- Allow named bindings to be escaped. #1576\n- Several bugs with MS SQL schema creation and installing from gihub fix #1577\n- Fix incorrect escaping of backslashes in SqlString.escape #1545\n\n# 0.11.7 - 19 Jun, 2016\n\n- Add missing dependency. #1516\n\n# 0.11.6 - 18 Jun, 2016\n\n- Allow cancellation on timeout (MySQL) #1454\n- Better bigint support. (MSSQL) #1445\n- More consistent handling of `undefined` values in `QueryBuilder#where` and `Raw`. #1459\n- Fix Webpack build. #1447\n- Fix code that triggered Bluebird warnings. #1460, #1489\n- Fix `ping` function. (Oracle) #1486\n- Fix `columnInfo`. (MSSQL) #1464\n- Fix `ColumnCompiler#binary`. (MSSQL) #1464\n- Allow connection strings that do not contain a password. #1473\n- Fix race condition in seed stubs. #1493\n- Give each query a UUID. #1510\n\n# 0.11.5 - 26 May, 2016\n\n- Bugfix: Using `Raw` or `QueryBuilder` as a binding to `Raw` now works as intended\n\n# 0.11.4 - 22 May, 2016\n\n- Bugfix: Inconsistency of `.primary()` and `.dropPrimary()` between dialects #1430\n- Feature: Allow using custom Client/Dialect (you can pass your own client in knex config) #1428\n- Docs: Add documentation for .dropTimestamps #1432\n- Bugfix: Fixed passing undefined fields for insert/update inside transaction #1423\n- Feature: `batchInsert` with existing transaction #1354\n- Build: eslint instead of jshint #1416\n- Bugfix: Pooled connections not releasing #1382\n- Bugfix: Support passing `knex.raw` to `.whereNot` #1402\n- Docs: Fixed list of dialects which supports `.returning` #1398\n- Bugfix: rename table does not fail anymore even with schema defined #1403\n\n# 0.11.3 - 14 May, 2016\n\n- Support nested joins. #1397\n\n# 0.11.2 - 14 May, 2016\n\n- Prevent crash on `knex seed:make`. #1389\n- Improvements to `batchInsert`. #1391\n- Improvements to inserting `DEFAULT` with `undefined` binding. #1396\n- Correct generated code for adding/dropping multiple columns. (MSSQL) #1401\n\n# 0.11.1 - 6 May, 2016\n\n- Fix error in CLI command `migrate:make`. #1386\n\n# 0.11.0 - 5 May, 2016\n\n### Breaking Changes:\n\n- `QueryBuilder#orWhere` joins multiple arguments with `AND`. #1164\n\n### Other Changes:\n\n- Collate for columns. (MySQL) #1147\n- Add `QueryBuilder#timeout`, `Raw#timeout`. #1201 #1260\n- Exit with error code when appropriate. #1238\n- MSSQL connection accepts `host` as an alias for `server` in accordance with other dialects. #1239\n- Add `query-response` event. #1231\n- Correct behaviour of sibling nested transactions. #1226\n- Support `RETURNING` with `UPDATE`. (Oracle) #1253\n- Throwing callbacks from transactions automatically rolls them back. #1257\n- Fixes to named `Raw` bindings. #1251\n- `timestamps` accepts an argument to set `NOT NULL` and default to current timestamp.\n- Add `TableBuilder#inherits` for PostgreSQL. #601\n- Wrap index names. #1289\n- Restore coffeescript knexfiles and configurations. #1292\n- Add `andWhereBetween` and `andWhereNotBetween` #1132\n- Fix `valueForUndefined` failure. #1269\n- `renameColumn` no longer drops default value or nullability. #1326\n- Correct MySQL2 error handling. #1315\n- Fix MSSQL `createTableIfNotExists`. #1362\n- Fix MSSQL URL parsing. #1342\n- Update Lodash to 4.6.0 #1242\n- Update Bluebird to 3.3.4 #1279\n\n# 0.10.0 - 15 Feb, 2016\n\n### Breaking Changes:\n\n- `insert` and `update` now ignore `undefined` values. Back compatibility is provided through the option `useNullAsDefault`. #1174, #1043\n\n### Other Changes:\n\n- Add [`countDistinct`](#Builder-countDistinct), [`avgDistinct`](#Builder-avgDistinct) and [`sumDistinct`](#Builder-sumDistinct). #1046\n- Add [`schema.jsonb`](#Schema-jsonb). Deprecated `schema.json(column, true)`. #991\n- Support binding identifiers with `??`. #1103\n- Restore `query` event when triggered by transactions. #855\n- Correct question mark escaping in rendered queries. #519, #1058\n- Add per-dialect escaping, allowing quotes to be escaped correctly. #886, #1095\n- Add MSSQL support. #1090\n- Add migration locking. #1094\n- Allow column aliases to contain `.`. #1181\n- Add `batchInsert`. #1182\n- Support non-array arguments to [`knex.raw`](#Raw-Bindings).\n- Global `query-error` event. #1163\n- Add `batchInsert`. #1182\n- Better support for Mysql2 dialect options. #980\n- Support for `acquireConnectionTimeout` default 60 seconds preventing #1040 from happening. #1177\n- Fixed constraint name escaping when dropping a constraint. #1177\n- Show also `.raw` queries in debug output. #1169\n- Support for `cli` to use basic configuration without specific environment set. #1101\n\n# 0.9.0 - Nov 2, 2015\n\n- Fix error when merging `knex.raw` instances without arguments. #853\n- Fix error that caused the connection to time out while streaming. #849\n- Correctly parse SSL query parameter for PostgreSQL. #852\n- Pass `compress` option to MySQL2. #843\n- Schema: Use `timestamp with timezone` by default for `time`, `datetime` and `timestamp` for Oracle. #876\n- Add [`QueryBuilder#modify`](#Builder-modify) #881\n- Add LiveScript and Early Gray support for seeds and migrations.\n- Add [`QueryBuilder#withSchema`](#Builder-withSchema) #518\n- Allow escaping of `?` in `knex.raw` queries. #946\n- Allow `0` in join clause. #953\n- Add migration config to allow disabling/enabling transactions per migration. #834\n\n# 0.8.6 - May 20, 2015\n\n- Fix for several transaction / migration issues, #832, #833, #834, #835\n\n# 0.8.5 - May 14, 2015\n\n- Pool should be initialized if no pool options are specified\n\n# 0.8.4 - May 13, 2015\n\n- Pool should not be initialized if {max: 0} is sent in config options\n\n# 0.8.3 - May 2, 2015\n\n- Alias postgresql -> postgres in connection config options\n\n# 0.8.2 - May 1, 2015\n\n- Fix regression in using query string in connection config\n\n# 0.8.1 - May 1, 2015\n\n- Warn rather than error when implicit commits wipe out savepoints in mysql / mariadb, #805.\n- Fix for incorrect seed config reference, #804\n\n# 0.8.0 - Apr 30, 2015\n\n### New Features:\n\n- Fixes several major outstanding bugs with the connection pool, switching to [Pool2](https://github.com/myndzi/pool2) in place of generic-pool-redux\n- strong-oracle module support\n- Nested transactions automatically become savepoints, with `commit` & `rollback` releasing or rolling back the current savepoint.\n- Database seed file support, #391\n- Improved support for sub-raw queries within raw statements\n- Migrations are now wrapped in transactions where possible\n- Subqueries supported in insert statements, #627\n- Support for nested having, #572\n- Support object syntax for joins, similar to "where" #743\n\n### Major Changes:\n\n- Transactions are immediately invoked as A+ promises, #470 (this is a feature and should not actually break anything in practice)\n- Heavy refactoring internal APIs (public APIs should not be affected)\n\n### "Other Changes:\n- Allow mysql2 to use non-default port, #588\n- Support creating & dropping extensions in PostgreSQL, #540\n- CLI support for knexfiles that do not provide environment keys, #527\n- Added sqlite3 dialect version of whereRaw/andWhereRaw (#477)\n\n# 0.7.5 - Mar 9, 2015\n\n- Fix bug in validateMigrationList, (#697)\n\n# 0.7.4 - Feb 25, 2015\n\n- Fix incorrect order of query parameters when using subqueries, #704\n- Properly handle limit 0, (#655)\n- Apply promise args from then instead of [explicitly passing](https://github.com/petkaantonov/bluebird/issues/482).\n- Respect union parameter as last argument (#660).\n- Added sqlite3 dialect version of whereRaw/andWhereRaw (#477).\n- Fix SQLite dropColumn doesn\'t work for last column (#544).\n- Add POSIX operator support for Postgres (#562)\n- Sample seed files now correctly (#391)\n\n# 0.7.3 - Oct 3, 2014\n\n- Support for `join(table, rawOrBuilder)` syntax.\n- Fix for regression in PostgreSQL connection (#516)\n\n# 0.7.2 - Oct 1, 2014\n\n- Fix for regression in migrations\n\n# 0.7.1 - Oct 1, 2014\n\n- Better disconnect handling & pool removal for MySQL clients, #452\n\n# 0.7.0 - Oct 1, 2014\n\n### New Features\n\n- Oracle support, #419\n- Database seed file support, #391\n- Improved support for sub-raw queries within raw statements\n\n### Breaking Changes\n\n- "collate nocase" no longer used by default in sqlite3 #396\n\n### Other Changes\n\n- Bumping Bluebird to ^2.x\n- Transactions in websql are now a no-op (unsupported) #375\n- Improved test suite\n- knex.fn namespace as function helper (knex.fn.now), #372\n- Better handling of disconnect errors\n- Support for offset without limit, #446\n- Chainable first method for mysql schema, #406\n- Support for empty array in `whereIn`\n- Create/drop schema for postgres, #511\n- Inserting multiple rows with default values, #468\n- Join columns are optional for cross-join, #508\n- Flag for creating jsonb columns in Postgresql, #500\n\n# 0.6.22 - July 10, 2014\n\n- Bug fix for properly binding postgresql streaming queries, (#363)\n\n# 0.6.21 - July 9, 2014\n\n- Bug fix for raw queries not being transaction context aware, (#351).\n- Properly forward stream errors in sqlite3 runner, (#359)\n\n# 0.6.20 - June 30, 2014\n\n- Allow case insensitive operators in sql clauses, (#344)\n\n# 0.6.19 - June 27, 2014\n\n- Add `groupByRaw` / `orderByRaw` methods, better support for raw statements in group / order (#282).\n- Support more config options for node-mysql2 dialect (#341).\n- CLI help text fix, (#342)\n\n# 0.6.18 - June 25, 2014\n\n- Patch for the method, calling without a handler should return the stream, not a promise (#337)\n\n# 0.6.17 - June 23, 2014\n\n- Adding missing map / reduce proxies to bluebird\'s implementation\n\n# 0.6.16 - June 18, 2014\n\n- Increment / decrement returns the number of affectedRows (#330).\n- Allow --cwd option flag to be passed to CLI tool (#326)\n\n# 0.6.15 - June 14, 2014\n\n- Added the as method for aliasing subqueries\n\n# 0.6.14 - June 14, 2014\n\n- whereExists / whereNotExists may now take a query builder instance as well as a callback\n\n# 0.6.13 - June 12, 2014\n\n- Fix regression with onUpdate / onDelete in PostgreSQL, (#308).\n- Add missing `Promise` require to knex.js, unit test for knex.destroy (#314)\n\n# 0.6.12 - June 10, 2014\n\n- Fix for regression with boolean default types in PostgreSQL\n\n# 0.6.11 - June 10, 2014\n\n- Fix for regression with queries containing multiple order by statements in sqlite3\n\n# 0.6.10 - June 10, 2014\n\n- Fix for big regression in memoization of column names from 0.5 -> 0.6\n\n# 0.6.9 - June 9, 2014\n\n- Fix for regression in specificType method\n\n# 0.6.8 - June 9, 2014\n\n- Package.json fix for CLI\n\n# 0.6.7 - June 9, 2014\n\n- Adds support for [node-mysql2](https://github.com/sidorares/node-mysql2) library.\n- Bundles CLI with the knex install, various related migrate CLI fixes\n\n# 0.6.6 - June 9, 2014\n\n- console.warn rather than throw when adding foreignKeys in SQLite3.\n- Add support for dropColumn in SQLite3.\n- Document `raw.wrap`\n\n# 0.6.5 - June 9, 2014\n\n- Add missing _ require to WebSQL builds\n\n# 0.6.4 - June 9, 2014\n\n- Fix & document schema.raw method\n\n# 0.6.3 - June 6, 2014\n\n- Schema methods on transaction object are now transaction aware (#301).\n- Fix for resolved value from transactions, (#298).\n- Undefined columns are not added to builder\n\n# 0.6.2 - June 4, 2014\n\n- Fix regression in raw query output, (#297).\n- Fix regression in "pluck" method (#296).\n- Document [first](#Builder-first) method\n\n# 0.6.1 - June 4, 2014\n\n- Reverting to using .npmignore, the "files" syntax forgot the knex.js file\n\n# 0.6.0 - June 4, 2014\n\n### Major Library refactor:\n\n- Major internal overhaul to clean up the various dialect code.\n- Improved unit test suite.\n- Support for the [mariasql](https://github.com/mscdex/node-mariasql) driver.\n- More consistent use of raw query bindings throughout the library.\n- Queries are more composable, may be injected in various points throughout the builder.\n- Added [streaming](#Interfaces-Streams) interface\n- Deprecated 5 argument [join](#Builder-join) in favor of additional join methods.\n- The wrapValue function to allow for array column operations in PostgreSQL (#287).\n- An explicit connection can be passed for any query (#56).\n- Drop column support for sqlite3\n- All schema actions are run sequentially on the same connection if chained.\n- Schema actions can now be wrapped in a transaction\n- `.references(tableName.columnName)` as shorthand for `.references(columnName).inTable(tableName)`\n- `.join(\'table.column\', \'otherTable.column\')` as shorthand for .join(\'table.column\', \'=\', \'otherTable.column\')\n- Streams are supported for selects, passing through to the streaming capabilities of node-mysql and node-postgres\n- For More information, see this [pull-request](https://github.com/tgriesser/knex/pull/252)\n\n\n# 0.5.15 - June 4, 2014\n\n- Dropped indexes feature now functions correctly, (#278)\n\n# 0.5.14 - May 6, 2014\n\n- Remove the charset encoding if it\'s utf8 for mysql, as it\'s the default but also currently causes some issues in recent versions of node-mysql\n\n# 0.5.13 - April 2, 2014\n\n- Fix regression in array bindings for postgresql (#228)\n\n# 0.5.12 - Mar 31, 2014\n\n- Add more operators for where clauses, including && (#226)\n\n# 0.5.11 - Mar 25, 2014\n\n- `.where(col, \'is\', null)` or `.where(col, \'is not\', null)` are not supported (#221).\n- Case insensitive `where` operators now allowed (#212).\n- Fix bug in increment/decrement truncating to an integer (#210).\n- Disconnected connections are now properly handled & removed from the pool (#206).\n- Internal tweaks to binding concatenations for performance (#207)\n\n# 0.5.10 - Mar 19, 2014\n\n- Add the .exec method to the internal promise shim\n\n# 0.5.9 - Mar 18, 2014\n\n- Remove error\'ed connections from the connection pool (#206), added support for node-postgres-pure (pg.js) (#200)\n\n# 0.5.8 - Feb 27, 2014\n\n- Fix for chaining on forUpdate / forShare, adding map & reduce from bluebird\n\n# 0.5.7 - Feb 18, 2014\n\n- Fix for a null limit / offset breaking query chain (#182)\n\n# 0.5.6 - Feb 5, 2014\n\n- Bump bluebird dependency to ~1.0.0, fixing regression in Bluebird 1.0.2 (#176)\n\n# 0.5.5 - Jan 28, 2014\n\n- Fix for the exit code on the migrations cli (#151).\n- The `init` method in `knex.migrate` now uses `this.config` if one isn\'t passed in (#156)\n\n# 0.5.4 - Jan 7, 2014\n\n- Fix for using raw statements in defaultTo schema builder methods (#146)\n\n# 0.5.3 - Jan 2, 2014\n\n- Fix for incorrectly formed sql when aggregates are used with columns (#144)\n\n# 0.5.2 - Dec 18, 2013\n\n- Adding passthrough "catch", "finally" to bluebird implementations, use bluebird\'s "nodeify" internally for exec\n\n# 0.5.1 - Dec 12, 2013\n\n- The [returning](#Builder-returning) in PostgreSQL may now accept * or an array of columns to return. If either of these are passed, the response will be an array of objects rather than an array of values. Updates may also now use a `returning` value. (#132)\n- Added `bigint` and `bigserial` type to PostgreSQL. (#111)\n- Fix for the [specificType](#Schema-specificType) schema call (#118)\n- Several fixes for migrations, including migration file path fixes, passing a Promise constructor to the migration `up` and `down` methods, allowing the "knex" module to be used globally, file ordering on migrations, and other small improvements. (#112-115, #125, #135)\n\n# 0.5.0 - Nov 25, 2013\n\n- Initial pass at a [migration](#Migrations) api.\n- Aggregate methods are no longer aliased as "aggregate", but may now be aliased and have more than one aggregate in a query (#108, #110).\n- Adding bigint and bigserial to PostgreSQL (#111).\n- Bugfix on increment/decrement values (#100).\n- Bugfix with having method (#107).\n- Switched from when.js to [bluebird](https://github.com/petkaantonov/bluebird) for promise implementation, with shim for backward compatibility.\n- Switched from underscore to lodash, for semver reliability\n\n# 0.4.13 - Oct 31, 2013\n\n- Fix for aggregate methods on toString and clone, (#98)\n\n# 0.4.12 - Oct 29, 2013\n\n- Fix incorrect values passed to float in MySQL and decimal in PostgreSQL\n\n# 0.4.11 - Oct 15, 2013\n\n- Fix potential sql injection vulnerability in orderBy, thanks to @sebgie\n\n# 0.4.10 - Oct 14, 2013\n\n- Added [forUpdate](#Builder-forUpdate) and [forShare](#Builder-forShare) for select modes in transactions. (#84)\n- Fix bug where current query chain type is not copied on [clone](#Builder-clone). (#90)\n- Charset and collate are now added as methods on the schema builder. (#89)\n- Added `into` as an alias of [from](#Builder-from), for builder syntax of: `insert(value).into(tableName)`\n- Internal pool fixes. (#90)\n\n# 0.4.9 - Oct 7, 2013\n\n- Fix for documentation of [hasColumn](#Schema-hasColumn), ensure that `hasColumn` works with MySQL (#87).\n- More cleanup of error messages, showing the original error message concatenated with the sql and bindings\n\n# 0.4.8 - Oct 2, 2013\n\n- Connections are no longer pushed back into the pool if they never existed to begin with (#85)\n\n# 0.4.7 - Sep 27, 2013\n\n- The column is now a documented method on the builder api, and takes either an individual column or an array of columns to select\n\n# 0.4.6 - Sep 25, 2013\n\n- Standardizing handling of errors for easier debugging, as noted in (#39)\n\n# 0.4.5 - Sep 24, 2013\n\n- Fix for hasTable always returning true in MySQL (#82), fix where sql queries were duplicated with multiple calls on toSql with the schema builder\n\n# 0.4.4 - Sep 22, 2013\n\n- Fix for debug method not properly debugging individual queries\n\n# 0.4.3 - Sep 18, 2013\n\n- Fix for underscore not being defined in various grammar files\n\n# 0.4.2 - Sep 17, 2013\n\n- Fix for an error being thrown when an initialized ClientBase instance was passed into Knex.initialize. pool.destroy now optionally accepts a callback to notify when it has completed draining and destroying all connections\n\n# 0.4.1 - Sep 16, 2013\n\n- Cleanup from the 0.4.0 release, fix a potential exploit in "where" clauses pointed out by Andri Möll, fix for clients not being properly released from the pool #70, fix for where("foo", "<>", null) doing an "IS NULL" statement\n\n# 0.4.0 - Sep 13, 2013\n\n### Breaking Changes:\n\n- Global state is no longer stored in the library, an instance is returned from `Knex.initialize`, so you will need to call this once and then reference this `knex` client elsewhere in your application.\n- Lowercasing of `knex.raw`, `knex.transaction`, and `knex.schema`.\n- Created columns are now nullable by default, unless `notNullable` is chained as an option.\n- Keys created with `increments` are now assumed to be unsigned (MySQL) by default.\n- The `destroyAllNow` is no longer called by the library on `process.exit` event. If you need to call it explicitly yourself, you may use `knex.client.destroyPool`\n\n# 0.2.6 - Aug 29, 2013\n\n- Reject the transaction promise if the transaction "commit" fails, (#50)\n\n# 0.2.5 - Aug 25, 2013\n\n- Fix error if a callback isn\'t specified for exec, (#49)\n\n# 0.2.4 - Aug 22, 2013\n\n- Fix SQLite3 delete not returning affected row count, (#45)\n\n# 0.2.3 - Aug 22, 2013\n\n- Fix insert with default values in PostgreSQL and SQLite3, (#44)\n\n# 0.2.2 - Aug 20, 2013\n\n- Allowing Raw queries to be passed as the primary table names\n\n# 0.2.1 - Aug 13, 2013\n\n- Fix for an array passed to insert being mutated\n\n# 0.2.0 - Aug 7, 2013\n\n### Breaking changes:\n\n- [hasTable](#Schema-hasTable) now returns a boolean rather than a failed promise.\n- Changed syntax for insert in postgresql, where the `id` is not assumed on inserts (#18). The second parameter of [insert](#Builder-insert) is now required to return an array of insert id\'s for the last insert.\n- The [timestamp](#Schema-timestamp) method on the schema builder now uses a `dateTime` rather than a `timestamp`\n\n# 0.1.8 - July 7, 2013\n\n- Somehow missing the != operator. Using _.find rather than _.where in getCommandsByName(#22)\n\n# 0.1.7 - June 12, 2013\n\n- Ensures unhandled errors in the exec callback interface are re-thrown\n\n# 0.1.6 - June 9, 2013\n\n- Renaming beforeCreate to afterCreate. Better handling of errors in the connection pooling\n\n# 0.1.5 - June 9, 2013\n\n- Added the ability to specify beforeCreate and beforeDestroy hooks on the initialize\'s options.pool to perform any necessary database setup/teardown on connections before use (#14). where and having may now accept Knex.Raw instances, for consistency (#15). Added an orHaving method to the builder. The ability to specify bindings on Raw queries has been removed\n\n# 0.1.4 - May 22, 2013\n\n- defaultTo now accepts "false" for boolean columns, allows for empty strings as default values\n\n# 0.1.3 - May 18, 2013\n\n- Enabling table aliases (#11). Fix for issues with transactions not functioning (#12)\n\n# 0.1.2 - May 15, 2013\n\n- Bug fixes for groupBy (#7). Mysql using collation, charset config settings in createTable. Added engine on schemaBuilder specifier (#6). Other doc fixes, tests\n\n# 0.1.1 - May 14, 2013\n\n- Bug fixes for sub-queries, minor changes to initializing "main" instance, adding "pg" as a valid parameter for the client name in the connection settings\n\n# 0.1.0 - May 13, 2013\n\n- Initial Knex release\n'; +},function(e,t,n){"use strict";e.exports=n(760)},function(e,t){"use strict";var n={Properties:{"aria-current":0,"aria-details":0,"aria-disabled":0,"aria-hidden":0,"aria-invalid":0,"aria-keyshortcuts":0,"aria-label":0,"aria-roledescription":0,"aria-autocomplete":0,"aria-checked":0,"aria-expanded":0,"aria-haspopup":0,"aria-level":0,"aria-modal":0,"aria-multiline":0,"aria-multiselectable":0,"aria-orientation":0,"aria-placeholder":0,"aria-pressed":0,"aria-readonly":0,"aria-required":0,"aria-selected":0,"aria-sort":0,"aria-valuemax":0,"aria-valuemin":0,"aria-valuenow":0,"aria-valuetext":0,"aria-atomic":0,"aria-busy":0,"aria-live":0,"aria-relevant":0,"aria-dropeffect":0,"aria-grabbed":0,"aria-activedescendant":0,"aria-colcount":0,"aria-colindex":0,"aria-colspan":0,"aria-controls":0,"aria-describedby":0,"aria-errormessage":0,"aria-flowto":0,"aria-labelledby":0,"aria-owns":0,"aria-posinset":0,"aria-rowcount":0,"aria-rowindex":0,"aria-rowspan":0,"aria-setsize":0},DOMAttributeNames:{},DOMPropertyNames:{}};e.exports=n},function(e,t,n){"use strict";var r=n(16),i=n(276),o={focusDOMComponent:function(){i(r.getNodeFromInstance(this))}};e.exports=o},function(e,t,n){"use strict";function r(){var e=window.opera;return"object"==typeof e&&"function"==typeof e.version&&parseInt(e.version(),10)<=12}function i(e){return(e.ctrlKey||e.altKey||e.metaKey)&&!(e.ctrlKey&&e.altKey)}function o(e){switch(e){case"topCompositionStart":return S.compositionStart;case"topCompositionEnd":return S.compositionEnd;case"topCompositionUpdate":return S.compositionUpdate}}function a(e,t){return"topKeyDown"===e&&t.keyCode===_}function s(e,t){switch(e){case"topKeyUp":return y.indexOf(t.keyCode)!==-1;case"topKeyDown":return t.keyCode!==_;case"topKeyPress":case"topMouseDown":case"topBlur":return!0;default:return!1}}function u(e){var t=e.detail;return"object"==typeof t&&"data"in t?t.data:null}function l(e,t,n,r){var i,l;if(b?i=o(e):N?s(e,n)&&(i=S.compositionEnd):a(e,n)&&(i=S.compositionStart),!i)return null;E&&(N||i!==S.compositionStart?i===S.compositionEnd&&N&&(l=N.getData()):N=m.getPooled(r));var c=g.getPooled(i,t,n,r);if(l)c.data=l;else{var f=u(n);null!==f&&(c.data=f)}return p.accumulateTwoPhaseDispatches(c),c}function c(e,t){switch(e){case"topCompositionEnd":return u(t);case"topKeyPress":var n=t.which;return n!==k?null:(T=!0,C);case"topTextInput":var r=t.data;return r===C&&T?null:r;default:return null}}function f(e,t){if(N){if("topCompositionEnd"===e||!b&&s(e,t)){var n=N.getData();return m.release(N),N=null,n}return null}switch(e){case"topPaste":return null;case"topKeyPress":return t.which&&!i(t)?String.fromCharCode(t.which):null;case"topCompositionEnd":return E?null:t.data;default:return null}}function h(e,t,n,r){var i;if(i=x?c(e,n):f(e,n),!i)return null;var o=v.getPooled(S.beforeInput,t,n,r);return o.data=i,p.accumulateTwoPhaseDispatches(o),o}var p=n(107),d=n(23),m=n(755),g=n(792),v=n(795),y=[9,13,27,32],_=229,b=d.canUseDOM&&"CompositionEvent"in window,w=null;d.canUseDOM&&"documentMode"in document&&(w=document.documentMode);var x=d.canUseDOM&&"TextEvent"in window&&!w&&!r(),E=d.canUseDOM&&(!b||w&&w>8&&w<=11),k=32,C=String.fromCharCode(k),S={beforeInput:{phasedRegistrationNames:{bubbled:"onBeforeInput",captured:"onBeforeInputCapture"},dependencies:["topCompositionEnd","topKeyPress","topTextInput","topPaste"]},compositionEnd:{phasedRegistrationNames:{bubbled:"onCompositionEnd",captured:"onCompositionEndCapture"},dependencies:["topBlur","topCompositionEnd","topKeyDown","topKeyPress","topKeyUp","topMouseDown"]},compositionStart:{phasedRegistrationNames:{bubbled:"onCompositionStart",captured:"onCompositionStartCapture"},dependencies:["topBlur","topCompositionStart","topKeyDown","topKeyPress","topKeyUp","topMouseDown"]},compositionUpdate:{phasedRegistrationNames:{bubbled:"onCompositionUpdate",captured:"onCompositionUpdateCapture"},dependencies:["topBlur","topCompositionUpdate","topKeyDown","topKeyPress","topKeyUp","topMouseDown"]}},T=!1,N=null,A={eventTypes:S,extractEvents:function(e,t,n,r){return[l(e,t,n,r),h(e,t,n,r)]}};e.exports=A},function(e,t,n){"use strict";var r=n(342),i=n(23),o=(n(34),n(527),n(801)),a=n(534),s=n(537),u=(n(5),s(function(e){return a(e)})),l=!1,c="cssFloat";if(i.canUseDOM){var f=document.createElement("div").style;try{f.font=""}catch(e){l=!0}void 0===document.documentElement.style.cssFloat&&(c="styleFloat")}var h={createMarkupForStyles:function(e,t){var n="";for(var r in e)if(e.hasOwnProperty(r)){var i=e[r];null!=i&&(n+=u(r)+":",n+=o(r,i,t)+";")}return n||null},setValueForStyles:function(e,t,n){var i=e.style;for(var a in t)if(t.hasOwnProperty(a)){var s=o(a,t[a],n);if("float"!==a&&"cssFloat"!==a||(a=c),s)i[a]=s;else{var u=l&&r.shorthandPropertyExpansions[a];if(u)for(var f in u)i[f]="";else i[a]=""}}}};e.exports=h},function(e,t,n){"use strict";function r(e){var t=e.nodeName&&e.nodeName.toLowerCase();return"select"===t||"input"===t&&"file"===e.type}function i(e){var t=k.getPooled(N.change,R,e,C(e));b.accumulateTwoPhaseDispatches(t),E.batchedUpdates(o,t)}function o(e){_.enqueueEvents(e),_.processEventQueue(!1)}function a(e,t){A=e,R=t,A.attachEvent("onchange",i)}function s(){A&&(A.detachEvent("onchange",i),A=null,R=null)}function u(e,t){if("topChange"===e)return t}function l(e,t,n){"topFocus"===e?(s(),a(t,n)):"topBlur"===e&&s()}function c(e,t){A=e,R=t,O=e.value,M=Object.getOwnPropertyDescriptor(e.constructor.prototype,"value"),Object.defineProperty(A,"value",P),A.attachEvent?A.attachEvent("onpropertychange",h):A.addEventListener("propertychange",h,!1)}function f(){A&&(delete A.value,A.detachEvent?A.detachEvent("onpropertychange",h):A.removeEventListener("propertychange",h,!1),A=null,R=null,O=null,M=null)}function h(e){if("value"===e.propertyName){var t=e.srcElement.value;t!==O&&(O=t,i(e))}}function p(e,t){if("topInput"===e)return t}function d(e,t,n){"topFocus"===e?(f(),c(t,n)):"topBlur"===e&&f()}function m(e,t){if(("topSelectionChange"===e||"topKeyUp"===e||"topKeyDown"===e)&&A&&A.value!==O)return O=A.value,R}function g(e){return e.nodeName&&"input"===e.nodeName.toLowerCase()&&("checkbox"===e.type||"radio"===e.type)}function v(e,t){if("topClick"===e)return t}function y(e,t){if(null!=e){var n=e._wrapperState||t._wrapperState;if(n&&n.controlled&&"number"===t.type){var r=""+t.value;t.getAttribute("value")!==r&&t.setAttribute("value",r)}}}var _=n(106),b=n(107),w=n(23),x=n(16),E=n(38),k=n(43),C=n(226),S=n(227),T=n(359),N={change:{phasedRegistrationNames:{bubbled:"onChange",captured:"onChangeCapture"},dependencies:["topBlur","topChange","topClick","topFocus","topInput","topKeyDown","topKeyUp","topSelectionChange"]}},A=null,R=null,O=null,M=null,j=!1;w.canUseDOM&&(j=S("change")&&(!document.documentMode||document.documentMode>8));var I=!1;w.canUseDOM&&(I=S("input")&&(!document.documentMode||document.documentMode>11));var P={get:function(){return M.get.call(this)},set:function(e){O=""+e,M.set.call(this,e)}},q={eventTypes:N,extractEvents:function(e,t,n,i){var o,a,s=t?x.getNodeFromInstance(t):window;if(r(s)?j?o=u:a=l:T(s)?I?o=p:(o=m,a=d):g(s)&&(o=v),o){var c=o(e,t);if(c){var f=k.getPooled(N.change,c,n,i);return f.type="change",b.accumulateTwoPhaseDispatches(f),f}}a&&a(e,s,t),"topBlur"===e&&y(t,s)}};e.exports=q},function(e,t,n){"use strict";var r=n(7),i=n(80),o=n(23),a=n(530),s=n(31),u=(n(2),{dangerouslyReplaceNodeWithMarkup:function(e,t){if(o.canUseDOM?void 0:r("56"),t?void 0:r("57"),"HTML"===e.nodeName?r("58"):void 0,"string"==typeof t){var n=a(t,s)[0];e.parentNode.replaceChild(n,e)}else i.replaceChildWithTree(e,t)}});e.exports=u},function(e,t){"use strict";var n=["ResponderEventPlugin","SimpleEventPlugin","TapEventPlugin","EnterLeaveEventPlugin","ChangeEventPlugin","SelectEventPlugin","BeforeInputEventPlugin"];e.exports=n},function(e,t,n){"use strict";var r=n(107),i=n(16),o=n(146),a={mouseEnter:{registrationName:"onMouseEnter",dependencies:["topMouseOut","topMouseOver"]},mouseLeave:{registrationName:"onMouseLeave",dependencies:["topMouseOut","topMouseOver"]}},s={eventTypes:a,extractEvents:function(e,t,n,s){if("topMouseOver"===e&&(n.relatedTarget||n.fromElement))return null;if("topMouseOut"!==e&&"topMouseOver"!==e)return null;var u;if(s.window===s)u=s;else{var l=s.ownerDocument;u=l?l.defaultView||l.parentWindow:window}var c,f;if("topMouseOut"===e){c=t;var h=n.relatedTarget||n.toElement;f=h?i.getClosestInstanceFromNode(h):null}else c=null,f=t;if(c===f)return null;var p=null==c?u:i.getNodeFromInstance(c),d=null==f?u:i.getNodeFromInstance(f),m=o.getPooled(a.mouseLeave,c,n,s);m.type="mouseleave",m.target=p,m.relatedTarget=d;var g=o.getPooled(a.mouseEnter,f,n,s);return g.type="mouseenter",g.target=d,g.relatedTarget=p,r.accumulateEnterLeaveDispatches(m,g,c,f),[m,g]}};e.exports=s},function(e,t,n){"use strict";function r(e){this._root=e,this._startText=this.getText(),this._fallbackText=null}var i=n(14),o=n(61),a=n(357);i(r.prototype,{destructor:function(){this._root=null,this._startText=null,this._fallbackText=null},getText:function(){return"value"in this._root?this._root.value:this._root[a()]},getData:function(){if(this._fallbackText)return this._fallbackText;var e,t,n=this._startText,r=n.length,i=this.getText(),o=i.length;for(e=0;e1?1-t:void 0;return this._fallbackText=i.slice(e,s),this._fallbackText}}),o.addPoolingTo(r),e.exports=r},function(e,t,n){"use strict";var r=n(81),i=r.injection.MUST_USE_PROPERTY,o=r.injection.HAS_BOOLEAN_VALUE,a=r.injection.HAS_NUMERIC_VALUE,s=r.injection.HAS_POSITIVE_NUMERIC_VALUE,u=r.injection.HAS_OVERLOADED_BOOLEAN_VALUE,l={isCustomAttribute:RegExp.prototype.test.bind(new RegExp("^(data|aria)-["+r.ATTRIBUTE_NAME_CHAR+"]*$")),Properties:{accept:0,acceptCharset:0,accessKey:0,action:0,allowFullScreen:o,allowTransparency:0,alt:0,as:0,async:o,autoComplete:0,autoPlay:o,capture:o,cellPadding:0,cellSpacing:0,charSet:0,challenge:0,checked:i|o,cite:0,classID:0,className:0,cols:s,colSpan:0,content:0,contentEditable:0,contextMenu:0,controls:o,coords:0,crossOrigin:0,data:0,dateTime:0,default:o,defer:o,dir:0,disabled:o,download:u,draggable:0,encType:0,form:0,formAction:0,formEncType:0,formMethod:0,formNoValidate:o,formTarget:0,frameBorder:0,headers:0,height:0,hidden:o,high:0,href:0,hrefLang:0,htmlFor:0,httpEquiv:0,icon:0,id:0,inputMode:0,integrity:0,is:0,keyParams:0,keyType:0,kind:0,label:0,lang:0,list:0,loop:o,low:0,manifest:0,marginHeight:0,marginWidth:0,max:0,maxLength:0,media:0,mediaGroup:0,method:0,min:0,minLength:0,multiple:i|o,muted:i|o,name:0,nonce:0,noValidate:o,open:o,optimum:0,pattern:0,placeholder:0,playsInline:o,poster:0,preload:0,profile:0,radioGroup:0,readOnly:o,referrerPolicy:0,rel:0,required:o,reversed:o,role:0,rows:s,rowSpan:a,sandbox:0,scope:0,scoped:o,scrolling:0,seamless:o,selected:i|o,shape:0,size:s,sizes:0,span:s,spellCheck:0,src:0,srcDoc:0,srcLang:0,srcSet:0,start:a,step:0,style:0,summary:0,tabIndex:0,target:0,title:0,type:0,useMap:0,value:0,width:0,wmode:0,wrap:0,about:0,datatype:0,inlist:0,prefix:0,property:0,resource:0,typeof:0,vocab:0,autoCapitalize:0,autoCorrect:0,autoSave:0,color:0,itemProp:0,itemScope:o,itemType:0,itemID:0,itemRef:0,results:0,security:0,unselectable:0},DOMAttributeNames:{acceptCharset:"accept-charset",className:"class",htmlFor:"for",httpEquiv:"http-equiv"},DOMPropertyNames:{},DOMMutationMethods:{value:function(e,t){return null==t?e.removeAttribute("value"):void("number"!==e.type||e.hasAttribute("value")===!1?e.setAttribute("value",""+t):e.validity&&!e.validity.badInput&&e.ownerDocument.activeElement!==e&&e.setAttribute("value",""+t))}}};e.exports=l},function(e,t,n){(function(t){"use strict";function r(e,t,n,r){var i=void 0===e[n];null!=t&&i&&(e[n]=o(t,!0))}var i=n(82),o=n(358),a=(n(218),n(228)),s=n(361),u=(n(5),{instantiateChildren:function(e,t,n,i){if(null==e)return null;var o={};return s(e,r,o),o},updateChildren:function(e,t,n,r,s,u,l,c,f){if(t||e){var h,p;for(h in t)if(t.hasOwnProperty(h)){p=e&&e[h];var d=p&&p._currentElement,m=t[h];if(null!=p&&a(d,m))i.receiveComponent(p,m,s,c),t[h]=p;else{p&&(r[h]=i.getHostNode(p),i.unmountComponent(p,!1));var g=o(m,!0);t[h]=g;var v=i.mountComponent(g,s,u,l,c,f);n.push(v)}}for(h in e)!e.hasOwnProperty(h)||t&&t.hasOwnProperty(h)||(p=e[h],r[h]=i.getHostNode(p),i.unmountComponent(p,!1))}},unmountChildren:function(e,t){for(var n in e)if(e.hasOwnProperty(n)){var r=e[n];i.unmountComponent(r,t)}}});e.exports=u}).call(t,n(17))},function(e,t,n){"use strict";var r=n(214),i=n(765),o={processChildrenUpdates:i.dangerouslyProcessChildrenUpdates,replaceNodeWithMarkup:r.dangerouslyReplaceNodeWithMarkup};e.exports=o},function(e,t,n){"use strict";function r(e){}function i(e,t){}function o(e){return!(!e.prototype||!e.prototype.isReactComponent)}function a(e){return!(!e.prototype||!e.prototype.isPureReactComponent)}var s=n(7),u=n(14),l=n(83),c=n(220),f=n(44),h=n(221),p=n(108),d=(n(34),n(352)),m=n(82),g=n(95),v=(n(2),n(176)),y=n(228),_=(n(5),{ImpureClass:0,PureClass:1,StatelessFunctional:2});r.prototype.render=function(){var e=p.get(this)._currentElement.type,t=e(this.props,this.context,this.updater);return i(e,t),t};var b=1,w={construct:function(e){this._currentElement=e,this._rootNodeID=0,this._compositeType=null,this._instance=null,this._hostParent=null,this._hostContainerInfo=null,this._updateBatchNumber=null,this._pendingElement=null,this._pendingStateQueue=null,this._pendingReplaceState=!1,this._pendingForceUpdate=!1,this._renderedNodeType=null,this._renderedComponent=null,this._context=null,this._mountOrder=0,this._topLevelWrapper=null,this._pendingCallbacks=null,this._calledComponentWillUnmount=!1},mountComponent:function(e,t,n,u){this._context=u,this._mountOrder=b++,this._hostParent=t,this._hostContainerInfo=n;var c,f=this._currentElement.props,h=this._processContext(u),d=this._currentElement.type,m=e.getUpdateQueue(),v=o(d),y=this._constructComponent(v,f,h,m);v||null!=y&&null!=y.render?a(d)?this._compositeType=_.PureClass:this._compositeType=_.ImpureClass:(c=y,i(d,c),null===y||y===!1||l.isValidElement(y)?void 0:s("105",d.displayName||d.name||"Component"),y=new r(d),this._compositeType=_.StatelessFunctional);y.props=f,y.context=h,y.refs=g,y.updater=m,this._instance=y,p.set(y,this);var w=y.state;void 0===w&&(y.state=w=null),"object"!=typeof w||Array.isArray(w)?s("106",this.getName()||"ReactCompositeComponent"):void 0,this._pendingStateQueue=null,this._pendingReplaceState=!1,this._pendingForceUpdate=!1;var x;return x=y.unstable_handleError?this.performInitialMountWithErrorHandling(c,t,n,e,u):this.performInitialMount(c,t,n,e,u),y.componentDidMount&&e.getReactMountReady().enqueue(y.componentDidMount,y),x},_constructComponent:function(e,t,n,r){return this._constructComponentWithoutOwner(e,t,n,r)},_constructComponentWithoutOwner:function(e,t,n,r){var i=this._currentElement.type;return e?new i(t,n,r):i(t,n,r)},performInitialMountWithErrorHandling:function(e,t,n,r,i){var o,a=r.checkpoint();try{o=this.performInitialMount(e,t,n,r,i)}catch(s){r.rollback(a),this._instance.unstable_handleError(s),this._pendingStateQueue&&(this._instance.state=this._processPendingState(this._instance.props,this._instance.context)),a=r.checkpoint(),this._renderedComponent.unmountComponent(!0),r.rollback(a),o=this.performInitialMount(e,t,n,r,i)}return o},performInitialMount:function(e,t,n,r,i){var o=this._instance,a=0;o.componentWillMount&&(o.componentWillMount(),this._pendingStateQueue&&(o.state=this._processPendingState(o.props,o.context))),void 0===e&&(e=this._renderValidatedComponent());var s=d.getType(e);this._renderedNodeType=s;var u=this._instantiateReactComponent(e,s!==d.EMPTY);this._renderedComponent=u;var l=m.mountComponent(u,r,t,n,this._processChildContext(i),a);return l},getHostNode:function(){return m.getHostNode(this._renderedComponent)},unmountComponent:function(e){if(this._renderedComponent){var t=this._instance;if(t.componentWillUnmount&&!t._calledComponentWillUnmount)if(t._calledComponentWillUnmount=!0,e){var n=this.getName()+".componentWillUnmount()";h.invokeGuardedCallback(n,t.componentWillUnmount.bind(t))}else t.componentWillUnmount();this._renderedComponent&&(m.unmountComponent(this._renderedComponent,e),this._renderedNodeType=null,this._renderedComponent=null,this._instance=null),this._pendingStateQueue=null,this._pendingReplaceState=!1,this._pendingForceUpdate=!1,this._pendingCallbacks=null,this._pendingElement=null,this._context=null,this._rootNodeID=0,this._topLevelWrapper=null,p.remove(t)}},_maskContext:function(e){var t=this._currentElement.type,n=t.contextTypes;if(!n)return g;var r={};for(var i in n)r[i]=e[i];return r},_processContext:function(e){var t=this._maskContext(e);return t},_processChildContext:function(e){var t,n=this._currentElement.type,r=this._instance;if(r.getChildContext&&(t=r.getChildContext()),t){"object"!=typeof n.childContextTypes?s("107",this.getName()||"ReactCompositeComponent"):void 0;for(var i in t)i in n.childContextTypes?void 0:s("108",this.getName()||"ReactCompositeComponent",i);return u({},e,t)}return e},_checkContextTypes:function(e,t,n){},receiveComponent:function(e,t,n){var r=this._currentElement,i=this._context;this._pendingElement=null,this.updateComponent(t,r,e,i,n)},performUpdateIfNecessary:function(e){null!=this._pendingElement?m.receiveComponent(this,this._pendingElement,e,this._context):null!==this._pendingStateQueue||this._pendingForceUpdate?this.updateComponent(e,this._currentElement,this._currentElement,this._context,this._context):this._updateBatchNumber=null},updateComponent:function(e,t,n,r,i){var o=this._instance;null==o?s("136",this.getName()||"ReactCompositeComponent"):void 0;var a,u=!1;this._context===i?a=o.context:(a=this._processContext(i),u=!0);var l=t.props,c=n.props;t!==n&&(u=!0),u&&o.componentWillReceiveProps&&o.componentWillReceiveProps(c,a);var f=this._processPendingState(c,a),h=!0;this._pendingForceUpdate||(o.shouldComponentUpdate?h=o.shouldComponentUpdate(c,f,a):this._compositeType===_.PureClass&&(h=!v(l,c)||!v(o.state,f))),this._updateBatchNumber=null,h?(this._pendingForceUpdate=!1,this._performComponentUpdate(n,c,f,a,e,i)):(this._currentElement=n,this._context=i,o.props=c,o.state=f,o.context=a)},_processPendingState:function(e,t){var n=this._instance,r=this._pendingStateQueue,i=this._pendingReplaceState;if(this._pendingReplaceState=!1,this._pendingStateQueue=null,!r)return n.state;if(i&&1===r.length)return r[0];for(var o=u({},i?r[0]:n.state),a=i?1:0;a=0||null!=t.is}function d(e){var t=e.type;h(t),this._currentElement=e,this._tag=t.toLowerCase(),this._namespaceURI=null,this._renderedChildren=null,this._previousStyle=null,this._previousStyleCopy=null,this._hostNode=null,this._hostParent=null,this._rootNodeID=0,this._domID=0,this._hostContainerInfo=null,this._wrapperState=null,this._topLevelWrapper=null,this._flags=0}var m=n(7),g=n(14),v=n(748),y=n(750),_=n(80),b=n(215),w=n(81),x=n(344),E=n(106),k=n(216),C=n(145),S=n(345),T=n(16),N=n(766),A=n(767),R=n(346),O=n(770),M=(n(34),n(779)),j=n(784),I=(n(31),n(148)),P=(n(2),n(227),n(176),n(229),n(5),S),q=E.deleteListener,B=T.getNodeFromInstance,L=C.listenTo,F=k.registrationNameModules,D={string:!0,number:!0},U="style",z="__html",W={children:null,dangerouslySetInnerHTML:null,suppressContentEditableWarning:null},Q=11,H={topAbort:"abort",topCanPlay:"canplay",topCanPlayThrough:"canplaythrough",topDurationChange:"durationchange",topEmptied:"emptied",topEncrypted:"encrypted",topEnded:"ended",topError:"error",topLoadedData:"loadeddata",topLoadedMetadata:"loadedmetadata",topLoadStart:"loadstart",topPause:"pause",topPlay:"play",topPlaying:"playing",topProgress:"progress",topRateChange:"ratechange",topSeeked:"seeked",topSeeking:"seeking",topStalled:"stalled",topSuspend:"suspend",topTimeUpdate:"timeupdate",topVolumeChange:"volumechange",topWaiting:"waiting"},V={area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0},K={listing:!0,pre:!0,textarea:!0},$=g({menuitem:!0},V),G=/^[a-zA-Z][a-zA-Z:_\.\-\d]*$/,J={},Y={}.hasOwnProperty,X=1;d.displayName="ReactDOMComponent",d.Mixin={mountComponent:function(e,t,n,r){this._rootNodeID=X++,this._domID=n._idCounter++,this._hostParent=t,this._hostContainerInfo=n;var o=this._currentElement.props;switch(this._tag){case"audio":case"form":case"iframe":case"img":case"link":case"object":case"source":case"video":this._wrapperState={listeners:null},e.getReactMountReady().enqueue(c,this);break;case"input":N.mountWrapper(this,o,t),o=N.getHostProps(this,o),e.getReactMountReady().enqueue(c,this);break;case"option":A.mountWrapper(this,o,t),o=A.getHostProps(this,o);break;case"select":R.mountWrapper(this,o,t),o=R.getHostProps(this,o),e.getReactMountReady().enqueue(c,this);break;case"textarea":O.mountWrapper(this,o,t),o=O.getHostProps(this,o),e.getReactMountReady().enqueue(c,this)}i(this,o);var a,f;null!=t?(a=t._namespaceURI,f=t._tag):n._tag&&(a=n._namespaceURI,f=n._tag),(null==a||a===b.svg&&"foreignobject"===f)&&(a=b.html),a===b.html&&("svg"===this._tag?a=b.svg:"math"===this._tag&&(a=b.mathml)),this._namespaceURI=a;var h;if(e.useCreateElement){var p,d=n._ownerDocument;if(a===b.html)if("script"===this._tag){var m=d.createElement("div"),g=this._currentElement.type;m.innerHTML="<"+g+">",p=m.removeChild(m.firstChild)}else p=o.is?d.createElement(this._currentElement.type,o.is):d.createElement(this._currentElement.type);else p=d.createElementNS(a,this._currentElement.type);T.precacheNode(this,p),this._flags|=P.hasCachedChildNodes,this._hostParent||x.setAttributeForRoot(p),this._updateDOMProperties(null,o,e);var y=_(p);this._createInitialChildren(e,o,r,y),h=y}else{var w=this._createOpenTagMarkupAndPutListeners(e,o),E=this._createContentMarkup(e,o,r);h=!E&&V[this._tag]?w+"/>":w+">"+E+""}switch(this._tag){case"input":e.getReactMountReady().enqueue(s,this),o.autoFocus&&e.getReactMountReady().enqueue(v.focusDOMComponent,this);break;case"textarea":e.getReactMountReady().enqueue(u,this),o.autoFocus&&e.getReactMountReady().enqueue(v.focusDOMComponent,this);break;case"select":o.autoFocus&&e.getReactMountReady().enqueue(v.focusDOMComponent,this);break;case"button":o.autoFocus&&e.getReactMountReady().enqueue(v.focusDOMComponent,this);break;case"option":e.getReactMountReady().enqueue(l,this)}return h},_createOpenTagMarkupAndPutListeners:function(e,t){var n="<"+this._currentElement.type;for(var r in t)if(t.hasOwnProperty(r)){var i=t[r];if(null!=i)if(F.hasOwnProperty(r))i&&o(this,r,i,e);else{r===U&&(i&&(i=this._previousStyleCopy=g({},t.style)),i=y.createMarkupForStyles(i,this));var a=null;null!=this._tag&&p(this._tag,t)?W.hasOwnProperty(r)||(a=x.createMarkupForCustomAttribute(r,i)):a=x.createMarkupForProperty(r,i),a&&(n+=" "+a)}}return e.renderToStaticMarkup?n:(this._hostParent||(n+=" "+x.createMarkupForRoot()),n+=" "+x.createMarkupForID(this._domID))},_createContentMarkup:function(e,t,n){var r="",i=t.dangerouslySetInnerHTML;if(null!=i)null!=i.__html&&(r=i.__html);else{var o=D[typeof t.children]?t.children:null,a=null!=o?null:t.children;if(null!=o)r=I(o);else if(null!=a){var s=this.mountChildren(a,e,n);r=s.join("")}}return K[this._tag]&&"\n"===r.charAt(0)?"\n"+r:r},_createInitialChildren:function(e,t,n,r){var i=t.dangerouslySetInnerHTML;if(null!=i)null!=i.__html&&_.queueHTML(r,i.__html);else{var o=D[typeof t.children]?t.children:null,a=null!=o?null:t.children;if(null!=o)""!==o&&_.queueText(r,o);else if(null!=a)for(var s=this.mountChildren(a,e,n),u=0;u"},receiveComponent:function(){},getHostNode:function(){return o.getNodeFromInstance(this)},unmountComponent:function(){o.uncacheNode(this)}}),e.exports=a},function(e,t){"use strict";var n={useCreateElement:!0,useFiber:!1};e.exports=n},function(e,t,n){"use strict";var r=n(214),i=n(16),o={ +dangerouslyProcessChildrenUpdates:function(e,t){var n=i.getNodeFromInstance(e);r.processUpdates(n,t)}};e.exports=o},function(e,t,n){"use strict";function r(){this._rootNodeID&&h.updateWrapper(this)}function i(e){var t="checkbox"===e.type||"radio"===e.type;return t?null!=e.checked:null!=e.value}function o(e){var t=this._currentElement.props,n=l.executeOnChange(t,e);f.asap(r,this);var i=t.name;if("radio"===t.type&&null!=i){for(var o=c.getNodeFromInstance(this),s=o;s.parentNode;)s=s.parentNode;for(var u=s.querySelectorAll("input[name="+JSON.stringify(""+i)+'][type="radio"]'),h=0;ht.end?(n=t.end,r=t.start):(n=t.start,r=t.end),i.moveToElementText(e),i.moveStart("character",n),i.setEndPoint("EndToStart",i),i.moveEnd("character",r-n),i.select()}function s(e,t){if(window.getSelection){var n=window.getSelection(),r=e[c()].length,i=Math.min(t.start,r),o=void 0===t.end?i:Math.min(t.end,r);if(!n.extend&&i>o){var a=o;o=i,i=a}var s=l(e,i),u=l(e,o);if(s&&u){var f=document.createRange();f.setStart(s.node,s.offset),n.removeAllRanges(),i>o?(n.addRange(f),n.extend(u.node,u.offset)):(f.setEnd(u.node,u.offset),n.addRange(f))}}}var u=n(23),l=n(806),c=n(357),f=u.canUseDOM&&"selection"in document&&!("getSelection"in window),h={getOffsets:f?i:o,setOffsets:f?a:s};e.exports=h},function(e,t,n){"use strict";var r=n(7),i=n(14),o=n(214),a=n(80),s=n(16),u=n(148),l=(n(2),n(229),function(e){this._currentElement=e,this._stringText=""+e,this._hostNode=null,this._hostParent=null,this._domID=0,this._mountIndex=0,this._closingComment=null,this._commentNodes=null});i(l.prototype,{mountComponent:function(e,t,n,r){var i=n._idCounter++,o=" react-text: "+i+" ",l=" /react-text ";if(this._domID=i,this._hostParent=t,e.useCreateElement){var c=n._ownerDocument,f=c.createComment(o),h=c.createComment(l),p=a(c.createDocumentFragment());return a.queueChild(p,a(f)),this._stringText&&a.queueChild(p,a(c.createTextNode(this._stringText))),a.queueChild(p,a(h)),s.precacheNode(this,f),this._closingComment=h,p}var d=u(this._stringText);return e.renderToStaticMarkup?d:""+d+""},receiveComponent:function(e,t){if(e!==this._currentElement){this._currentElement=e;var n=""+e;if(n!==this._stringText){this._stringText=n;var r=this.getHostNode();o.replaceDelimitedText(r[0],r[1],n)}}},getHostNode:function(){var e=this._commentNodes;if(e)return e;if(!this._closingComment)for(var t=s.getNodeFromInstance(this),n=t.nextSibling;;){if(null==n?r("67",this._domID):void 0,8===n.nodeType&&" /react-text "===n.nodeValue){this._closingComment=n;break}n=n.nextSibling}return e=[this._hostNode,this._closingComment],this._commentNodes=e,e},unmountComponent:function(){this._closingComment=null,this._commentNodes=null,s.uncacheNode(this)}}),e.exports=l},function(e,t,n){"use strict";function r(){this._rootNodeID&&c.updateWrapper(this)}function i(e){var t=this._currentElement.props,n=s.executeOnChange(t,e);return l.asap(r,this),n}var o=n(7),a=n(14),s=n(219),u=n(16),l=n(38),c=(n(2),n(5),{getHostProps:function(e,t){null!=t.dangerouslySetInnerHTML?o("91"):void 0;var n=a({},t,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue,onChange:e._wrapperState.onChange});return n},mountWrapper:function(e,t){var n=s.getValue(t),r=n;if(null==n){var a=t.defaultValue,u=t.children;null!=u&&(null!=a?o("92"):void 0,Array.isArray(u)&&(u.length<=1?void 0:o("93"),u=u[0]),a=""+u),null==a&&(a=""),r=a}e._wrapperState={initialValue:""+r,listeners:null,onChange:i.bind(e)}},updateWrapper:function(e){var t=e._currentElement.props,n=u.getNodeFromInstance(e),r=s.getValue(t);if(null!=r){var i=""+r;i!==n.value&&(n.value=i),null==t.defaultValue&&(n.defaultValue=i)}null!=t.defaultValue&&(n.defaultValue=t.defaultValue)},postMountWrapper:function(e){var t=u.getNodeFromInstance(e),n=t.textContent;n===e._wrapperState.initialValue&&(t.value=n)}});e.exports=c},function(e,t,n){"use strict";function r(e,t){"_hostNode"in e?void 0:u("33"),"_hostNode"in t?void 0:u("33");for(var n=0,r=e;r;r=r._hostParent)n++;for(var i=0,o=t;o;o=o._hostParent)i++;for(;n-i>0;)e=e._hostParent,n--;for(;i-n>0;)t=t._hostParent,i--;for(var a=n;a--;){if(e===t)return e;e=e._hostParent,t=t._hostParent}return null}function i(e,t){"_hostNode"in e?void 0:u("35"),"_hostNode"in t?void 0:u("35");for(;t;){if(t===e)return!0;t=t._hostParent}return!1}function o(e){return"_hostNode"in e?void 0:u("36"),e._hostParent}function a(e,t,n){for(var r=[];e;)r.push(e),e=e._hostParent;var i;for(i=r.length;i-- >0;)t(r[i],"captured",n);for(i=0;i0;)n(u[l],"captured",o)}var u=n(7);n(2);e.exports={isAncestor:i,getLowestCommonAncestor:r,getParentInstance:o,traverseTwoPhase:a,traverseEnterLeave:s}},function(e,t,n){"use strict";function r(){this.reinitializeTransaction()}var i=n(14),o=n(38),a=n(147),s=n(31),u={initialize:s,close:function(){h.isBatchingUpdates=!1}},l={initialize:s,close:o.flushBatchedUpdates.bind(o)},c=[l,u];i(r.prototype,a,{getTransactionWrappers:function(){return c}});var f=new r,h={isBatchingUpdates:!1,batchedUpdates:function(e,t,n,r,i,o){var a=h.isBatchingUpdates;return h.isBatchingUpdates=!0,a?e(t,n,r,i,o):f.perform(e,null,t,n,r,i,o)}};e.exports=h},function(e,t,n){"use strict";function r(){E||(E=!0,y.EventEmitter.injectReactEventListener(v),y.EventPluginHub.injectEventPluginOrder(s),y.EventPluginUtils.injectComponentTree(h),y.EventPluginUtils.injectTreeTraversal(d),y.EventPluginHub.injectEventPluginsByName({SimpleEventPlugin:x,EnterLeaveEventPlugin:u,ChangeEventPlugin:a,SelectEventPlugin:w,BeforeInputEventPlugin:o}),y.HostComponent.injectGenericComponentClass(f),y.HostComponent.injectTextComponentClass(m),y.DOMProperty.injectDOMPropertyConfig(i),y.DOMProperty.injectDOMPropertyConfig(l),y.DOMProperty.injectDOMPropertyConfig(b),y.EmptyComponent.injectEmptyComponentFactory(function(e){return new p(e)}),y.Updates.injectReconcileTransaction(_),y.Updates.injectBatchingStrategy(g),y.Component.injectEnvironment(c))}var i=n(747),o=n(749),a=n(751),s=n(753),u=n(754),l=n(756),c=n(758),f=n(761),h=n(16),p=n(763),d=n(771),m=n(769),g=n(772),v=n(776),y=n(777),_=n(782),b=n(787),w=n(788),x=n(789),E=!1;e.exports={inject:r}},function(e,t){"use strict";var n="function"==typeof Symbol&&Symbol.for&&Symbol.for("react.element")||60103;e.exports=n},function(e,t,n){"use strict";function r(e){i.enqueueEvents(e),i.processEventQueue(!1)}var i=n(106),o={handleTopLevel:function(e,t,n,o){var a=i.extractEvents(e,t,n,o);r(a)}};e.exports=o},function(e,t,n){"use strict";function r(e){for(;e._hostParent;)e=e._hostParent;var t=f.getNodeFromInstance(e),n=t.parentNode;return f.getClosestInstanceFromNode(n)}function i(e,t){this.topLevelType=e,this.nativeEvent=t,this.ancestors=[]}function o(e){var t=p(e.nativeEvent),n=f.getClosestInstanceFromNode(t),i=n;do e.ancestors.push(i),i=i&&r(i);while(i);for(var o=0;o/,o=/^<\!\-\-/,a={CHECKSUM_ATTR_NAME:"data-react-checksum",addChecksumToMarkup:function(e){var t=r(e);return o.test(e)?e:e.replace(i," "+a.CHECKSUM_ATTR_NAME+'="'+t+'"$&')},canReuseMarkup:function(e,t){var n=t.getAttribute(a.CHECKSUM_ATTR_NAME);n=n&&parseInt(n,10);var i=r(e);return i===n}};e.exports=a},function(e,t,n){"use strict";function r(e,t,n){return{type:"INSERT_MARKUP",content:e,fromIndex:null,fromNode:null,toIndex:n,afterNode:t}}function i(e,t,n){return{type:"MOVE_EXISTING",content:null,fromIndex:e._mountIndex,fromNode:h.getHostNode(e),toIndex:n,afterNode:t}}function o(e,t){return{type:"REMOVE_NODE",content:null,fromIndex:e._mountIndex,fromNode:t,toIndex:null,afterNode:null}}function a(e){return{type:"SET_MARKUP",content:e,fromIndex:null,fromNode:null,toIndex:null,afterNode:null}}function s(e){return{type:"TEXT_CONTENT",content:e,fromIndex:null,fromNode:null,toIndex:null,afterNode:null}}function u(e,t){return t&&(e=e||[],e.push(t)),e}function l(e,t){f.processChildrenUpdates(e,t)}var c=n(7),f=n(220),h=(n(108),n(34),n(44),n(82)),p=n(757),d=(n(31),n(803)),m=(n(2),{Mixin:{_reconcilerInstantiateChildren:function(e,t,n){return p.instantiateChildren(e,t,n)},_reconcilerUpdateChildren:function(e,t,n,r,i,o){var a,s=0;return a=d(t,s),p.updateChildren(e,a,n,r,i,this,this._hostContainerInfo,o,s),a},mountChildren:function(e,t,n){var r=this._reconcilerInstantiateChildren(e,t,n);this._renderedChildren=r;var i=[],o=0;for(var a in r)if(r.hasOwnProperty(a)){var s=r[a],u=0,l=h.mountComponent(s,t,this,this._hostContainerInfo,n,u);s._mountIndex=o++,i.push(l)}return i},updateTextContent:function(e){var t=this._renderedChildren;p.unmountChildren(t,!1);for(var n in t)t.hasOwnProperty(n)&&c("118");var r=[s(e)];l(this,r)},updateMarkup:function(e){var t=this._renderedChildren;p.unmountChildren(t,!1);for(var n in t)t.hasOwnProperty(n)&&c("118");var r=[a(e)];l(this,r)},updateChildren:function(e,t,n){this._updateChildren(e,t,n)},_updateChildren:function(e,t,n){var r=this._renderedChildren,i={},o=[],a=this._reconcilerUpdateChildren(r,e,o,i,t,n);if(a||r){var s,c=null,f=0,p=0,d=0,m=null;for(s in a)if(a.hasOwnProperty(s)){var g=r&&r[s],v=a[s];g===v?(c=u(c,this.moveChild(g,m,f,p)),p=Math.max(g._mountIndex,p),g._mountIndex=f):(g&&(p=Math.max(g._mountIndex,p)),c=u(c,this._mountChildAtIndex(v,o[d],m,f,t,n)),d++),f++,m=h.getHostNode(v)}for(s in i)i.hasOwnProperty(s)&&(c=u(c,this._unmountChild(r[s],i[s])));c&&l(this,c),this._renderedChildren=a}},unmountChildren:function(e){var t=this._renderedChildren;p.unmountChildren(t,e),this._renderedChildren=null},moveChild:function(e,t,n,r){if(e._mountIndex=t)return{node:i,offset:t-o};o=a}i=n(r(i))}}e.exports=i},function(e,t,n){"use strict";function r(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n["ms"+e]="MS"+t,n["O"+e]="o"+t.toLowerCase(),n}function i(e){if(s[e])return s[e];if(!a[e])return e;var t=a[e];for(var n in t)if(t.hasOwnProperty(n)&&n in u)return s[e]=t[n];return""}var o=n(23),a={animationend:r("Animation","AnimationEnd"),animationiteration:r("Animation","AnimationIteration"),animationstart:r("Animation","AnimationStart"),transitionend:r("Transition","TransitionEnd")},s={},u={};o.canUseDOM&&(u=document.createElement("div").style,"AnimationEvent"in window||(delete a.animationend.animation,delete a.animationiteration.animation,delete a.animationstart.animation),"TransitionEvent"in window||delete a.transitionend.transition),e.exports=i},function(e,t,n){"use strict";function r(e){return'"'+i(e)+'"'}var i=n(148);e.exports=r},function(e,t,n){"use strict";var r=n(351);e.exports=r.renderSubtreeIntoContainer},function(e,t){"use strict";function n(e){var t=/[=:]/g,n={"=":"=0",":":"=2"},r=(""+e).replace(t,function(e){return n[e]});return"$"+r}function r(e){var t=/(=0|=2)/g,n={"=0":"=","=2":":"},r="."===e[0]&&"$"===e[1]?e.substring(2):e.substring(1);return(""+r).replace(t,function(e){return n[e]})}var i={escape:n,unescape:r};e.exports=i},function(e,t,n){"use strict";var r=n(85),i=(n(2),function(e){var t=this;if(t.instancePool.length){var n=t.instancePool.pop();return t.call(n,e),n}return new t(e)}),o=function(e,t){var n=this;if(n.instancePool.length){var r=n.instancePool.pop();return n.call(r,e,t),r}return new n(e,t)},a=function(e,t,n){var r=this;if(r.instancePool.length){var i=r.instancePool.pop();return r.call(i,e,t,n),i}return new r(e,t,n)},s=function(e,t,n,r){var i=this;if(i.instancePool.length){var o=i.instancePool.pop();return i.call(o,e,t,n,r),o}return new i(e,t,n,r)},u=function(e){var t=this;e instanceof t?void 0:r("25"),e.destructor(),t.instancePool.length0?this.tail.next=t:this.head=t,this.tail=t,++this.length},r.prototype.unshift=function(e){var t={data:e,next:this.head};0===this.length&&(this.tail=t),this.head=t,++this.length},r.prototype.shift=function(){if(0!==this.length){var e=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,e}},r.prototype.clear=function(){this.head=this.tail=null,this.length=0},r.prototype.join=function(e){if(0===this.length)return"";for(var t=this.head,n=""+t.data;t=t.next;)n+=e+t.data;return n},r.prototype.concat=function(e){if(0===this.length)return i.alloc(0);if(1===this.length)return this.head.data;for(var t=i.allocUnsafe(e>>>0),n=this.head,r=0;n;)n.data.copy(t,r),r+=n.data.length,n=n.next;return t}},function(e,t,n){e.exports=n(233).PassThrough},function(e,t,n){e.exports=n(233).Transform},function(e,t,n){e.exports=n(232)},function(e,t,n){(function(t){function n(e,t,n){return e^t^n}function r(e,t,n){return e&t|~e&n}function i(e,t,n){return(e|~t)^n}function o(e,t,n){return e&n|t&~n}function a(e,t,n){return e^(t|~n)}function s(e,t){return e<>>32-t}function u(e){var n=[1732584193,4023233417,2562383102,271733878,3285377520];"string"==typeof e&&(e=new t(e,"utf8"));var r=m(e),i=8*e.length,o=8*e.length;r[i>>>5]|=128<<24-i%32,r[(i+64>>>9<<4)+14]=16711935&(o<<8|o>>>24)|4278255360&(o<<24|o>>>8);for(var a=0;a>>24)|4278255360&(s<<24|s>>>8)}var u=g(n);return new t(u)}e.exports=u;/** @preserve + (c) 2012 by Cédric Mesnil. All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + + - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. + - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +var l=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],c=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],f=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],h=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11],p=[0,1518500249,1859775393,2400959708,2840853838],d=[1352829926,1548603684,1836072691,2053994217,0],m=function(e){for(var t=[],n=0,r=0;n>>5]|=e[n]<<24-r%32;return t},g=function(e){for(var t=[],n=0;n<32*e.length;n+=8)t.push(e[n>>>5]>>>24-n%32&255);return t},v=function(e,t,u){for(var m=0;m<16;m++){var g=u+m,v=t[g];t[g]=16711935&(v<<8|v>>>24)|4278255360&(v<<24|v>>>8)}var y,_,b,w,x,E,k,C,S,T;E=y=e[0],k=_=e[1],C=b=e[2],S=w=e[3],T=x=e[4];for(var N,m=0;m<80;m+=1)N=y+t[u+l[m]]|0,N+=m<16?n(_,b,w)+p[0]:m<32?r(_,b,w)+p[1]:m<48?i(_,b,w)+p[2]:m<64?o(_,b,w)+p[3]:a(_,b,w)+p[4],N|=0,N=s(N,f[m]),N=N+x|0,y=x,x=w,w=s(b,10),b=_,_=N,N=E+t[u+c[m]]|0,N+=m<16?a(k,C,S)+d[0]:m<32?o(k,C,S)+d[1]:m<48?i(k,C,S)+d[2]:m<64?r(k,C,S)+d[3]:n(k,C,S)+d[4],N|=0,N=s(N,h[m]),N=N+T|0,E=T,T=S,S=s(C,10),C=k,k=N;N=e[1]+b+S|0,e[1]=e[2]+w+T|0,e[2]=e[3]+x+E|0,e[3]=e[4]+y+k|0,e[4]=e[0]+_+C|0,e[0]=N}}).call(t,n(8).Buffer)},function(e,t,n){(function(e,t){!function(e,n){"use strict";function r(e){"function"!=typeof e&&(e=new Function(""+e));for(var t=new Array(arguments.length-1),n=0;n=8*this._finalSize&&(this._update(this._block),this._block.fill(0)),this._block.writeInt32BE(t,this._blockSize-4);var n=this._update(this._block)||this._hash();return e?n.toString(e):n},t.prototype._update=function(){throw new Error("_update must be implemented by subclass")},t}},function(e,t,n){var t=e.exports=function(e){var n=t[e];if(!n)throw new Error(e+" is not supported (we accept pull requests)");return new n},r=n(8).Buffer,i=n(831)(r);t.sha1=n(833)(r,i),t.sha256=n(834)(r,i),t.sha512=n(835)(r,i)},function(e,t,n){var r=n(150).inherits;e.exports=function(e,t){function n(){return d.length?d.pop().init():this instanceof n?(this._w=p,t.call(this,64,56),this._h=null,void this.init()):new n}function i(e,t,n,r){return e<20?t&n|~t&r:e<40?t^n^r:e<60?t&n|t&r|n&r:t^n^r}function o(e){return e<20?1518500249:e<40?1859775393:e<60?-1894007588:-899497514}function a(e,t){return e+t|0}function s(e,t){return e<>>32-t}var u=0,l=4,c=8,f=12,h=16,p=new("undefined"==typeof Int32Array?Array:Int32Array)(80),d=[];return r(n,t),n.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,t.prototype.init.call(this),this},n.prototype._POOL=d,n.prototype._update=function(e){var t,n,r,u,l,c,f,h,p,d;t=c=this._a,n=f=this._b,r=h=this._c,u=p=this._d,l=d=this._e;for(var m=this._w,g=0;g<80;g++){var v=m[g]=g<16?e.readInt32BE(4*g):s(m[g-3]^m[g-8]^m[g-14]^m[g-16],1),y=a(a(s(t,5),i(g,n,r,u)),a(a(l,v),o(g)));l=u,u=r,r=s(n,30),n=t,t=y}this._a=a(t,c),this._b=a(n,f),this._c=a(r,h),this._d=a(u,p),this._e=a(l,d)},n.prototype._hash=function(){d.length<100&&d.push(this);var t=new e(20);return t.writeInt32BE(0|this._a,u),t.writeInt32BE(0|this._b,l),t.writeInt32BE(0|this._c,c),t.writeInt32BE(0|this._d,f),t.writeInt32BE(0|this._e,h),t},n}},function(e,t,n){var r=n(150).inherits;e.exports=function(e,t){function n(){this.init(),this._w=p,t.call(this,64,56)}function i(e,t){return e>>>t|e<<32-t}function o(e,t){return e>>>t}function a(e,t,n){return e&t^~e&n}function s(e,t,n){return e&t^e&n^t&n}function u(e){return i(e,2)^i(e,13)^i(e,22)}function l(e){return i(e,6)^i(e,11)^i(e,25)}function c(e){return i(e,7)^i(e,18)^o(e,3)}function f(e){return i(e,17)^i(e,19)^o(e,10)}var h=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],p=new Array(64);return r(n,t),n.prototype.init=function(){return this._a=1779033703,this._b=-1150833019,this._c=1013904242,this._d=-1521486534,this._e=1359893119,this._f=-1694144372,this._g=528734635,this._h=1541459225,this._len=this._s=0,this},n.prototype._update=function(e){var t,n,r,i,o,p,d,m,g,v,y=this._w;t=0|this._a,n=0|this._b,r=0|this._c,i=0|this._d,o=0|this._e,p=0|this._f,d=0|this._g,m=0|this._h;for(var _=0;_<64;_++){var b=y[_]=_<16?e.readInt32BE(4*_):f(y[_-2])+y[_-7]+c(y[_-15])+y[_-16];g=m+l(o)+a(o,p,d)+h[_]+b,v=u(t)+s(t,n,r),m=d,d=p,p=o,o=i+g,i=r,r=n,n=t,t=g+v}this._a=t+this._a|0,this._b=n+this._b|0,this._c=r+this._c|0,this._d=i+this._d|0,this._e=o+this._e|0,this._f=p+this._f|0,this._g=d+this._g|0,this._h=m+this._h|0},n.prototype._hash=function(){var t=new e(32);return t.writeInt32BE(this._a,0),t.writeInt32BE(this._b,4),t.writeInt32BE(this._c,8),t.writeInt32BE(this._d,12),t.writeInt32BE(this._e,16),t.writeInt32BE(this._f,20),t.writeInt32BE(this._g,24),t.writeInt32BE(this._h,28),t},n}},function(e,t,n){var r=n(150).inherits;e.exports=function(e,t){function n(){this.init(),this._w=u,t.call(this,128,112)}function i(e,t,n){return e>>>n|t<<32-n}function o(e,t,n){return e&t^~e&n}function a(e,t,n){return e&t^e&n^t&n}var s=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591],u=new Array(160);return r(n,t),n.prototype.init=function(){return this._a=1779033703,this._b=-1150833019,this._c=1013904242,this._d=-1521486534,this._e=1359893119,this._f=-1694144372,this._g=528734635,this._h=1541459225,this._al=-205731576,this._bl=-2067093701,this._cl=-23791573,this._dl=1595750129,this._el=-1377402159,this._fl=725511199,this._gl=-79577749,this._hl=327033209,this._len=this._s=0,this},n.prototype._update=function(e){var t,n,r,u,l,c,f,h,p,d,m,g,v,y,_,b,w=this._w;t=0|this._a,n=0|this._b,r=0|this._c,u=0|this._d,l=0|this._e,c=0|this._f,f=0|this._g,h=0|this._h,p=0|this._al,d=0|this._bl,m=0|this._cl,g=0|this._dl,v=0|this._el,y=0|this._fl,_=0|this._gl,b=0|this._hl;for(var x=0;x<80;x++){var E,k,C=2*x;if(x<16)E=w[C]=e.readInt32BE(4*C),k=w[C+1]=e.readInt32BE(4*C+4);else{var S=w[C-30],T=w[C-30+1],N=i(S,T,1)^i(S,T,8)^S>>>7,A=i(T,S,1)^i(T,S,8)^i(T,S,7);S=w[C-4],T=w[C-4+1];var R=i(S,T,19)^i(T,S,29)^S>>>6,O=i(T,S,19)^i(S,T,29)^i(T,S,6),M=w[C-14],j=w[C-14+1],I=w[C-32],P=w[C-32+1];k=A+j,E=N+M+(k>>>0>>0?1:0),k+=O,E=E+R+(k>>>0>>0?1:0),k+=P,E=E+I+(k>>>0

    >>0?1:0),w[C]=E,w[C+1]=k}var q=a(t,n,r),B=a(p,d,m),L=i(t,p,28)^i(p,t,2)^i(p,t,7),F=i(p,t,28)^i(t,p,2)^i(t,p,7),D=i(l,v,14)^i(l,v,18)^i(v,l,9),U=i(v,l,14)^i(v,l,18)^i(l,v,9),z=s[C],W=s[C+1],Q=o(l,c,f),H=o(v,y,_),V=b+U,K=h+D+(V>>>0>>0?1:0);V+=H,K=K+Q+(V>>>0>>0?1:0),V+=W,K=K+z+(V>>>0>>0?1:0),V+=k,K=K+E+(V>>>0>>0?1:0);var $=F+B,G=L+q+($>>>0>>0?1:0);h=f,b=_,f=c,_=y,c=l,y=v,v=g+V|0,l=u+K+(v>>>0>>0?1:0)|0,u=r,g=m,r=n,m=d,n=t,d=p,p=V+$|0,t=K+G+(p>>>0>>0?1:0)|0}this._al=this._al+p|0,this._bl=this._bl+d|0,this._cl=this._cl+m|0,this._dl=this._dl+g|0,this._el=this._el+v|0,this._fl=this._fl+y|0,this._gl=this._gl+_|0,this._hl=this._hl+b|0,this._a=this._a+t+(this._al>>>0

    >>0?1:0)|0,this._b=this._b+n+(this._bl>>>0>>0?1:0)|0,this._c=this._c+r+(this._cl>>>0>>0?1:0)|0,this._d=this._d+u+(this._dl>>>0>>0?1:0)|0,this._e=this._e+l+(this._el>>>0>>0?1:0)|0,this._f=this._f+c+(this._fl>>>0>>0?1:0)|0,this._g=this._g+f+(this._gl>>>0<_>>>0?1:0)|0,this._h=this._h+h+(this._hl>>>0>>0?1:0)|0},n.prototype._hash=function(){function t(e,t,r){n.writeInt32BE(e,r),n.writeInt32BE(t,r+4)}var n=new e(64);return t(this._a,this._al,0),t(this._b,this._bl,8),t(this._c,this._cl,16),t(this._d,this._dl,24),t(this._e,this._el,32),t(this._f,this._fl,40),t(this._g,this._gl,48),t(this._h,this._hl,56),n},n}},function(e,t,n){var r;(function(e,i){!function(o){function a(e){throw RangeError(M[e])}function s(e,t){for(var n=e.length,r=[];n--;)r[n]=t(e[n]);return r}function u(e,t){var n=e.split("@"),r="";n.length>1&&(r=n[0]+"@",e=n[1]),e=e.replace(O,".");var i=e.split("."),o=s(i,t).join(".");return r+o}function l(e){for(var t,n,r=[],i=0,o=e.length;i=55296&&t<=56319&&i65535&&(e-=65536,t+=P(e>>>10&1023|55296),e=56320|1023&e),t+=P(e)}).join("")}function f(e){return e-48<10?e-22:e-65<26?e-65:e-97<26?e-97:w}function h(e,t){return e+22+75*(e<26)-((0!=t)<<5)}function p(e,t,n){var r=0;for(e=n?I(e/C):e>>1,e+=I(e/t);e>j*E>>1;r+=w)e=I(e/j);return I(r+(j+1)*e/(e+k))}function d(e){var t,n,r,i,o,s,u,l,h,d,m=[],g=e.length,v=0,y=T,_=S;for(n=e.lastIndexOf(N),n<0&&(n=0),r=0;r=128&&a("not-basic"),m.push(e.charCodeAt(r));for(i=n>0?n+1:0;i=g&&a("invalid-input"),l=f(e.charCodeAt(i++)),(l>=w||l>I((b-v)/s))&&a("overflow"),v+=l*s,h=u<=_?x:u>=_+E?E:u-_,!(lI(b/d)&&a("overflow"),s*=d;t=m.length+1,_=p(v-o,t,0==o),I(v/t)>b-y&&a("overflow"),y+=I(v/t),v%=t,m.splice(v++,0,y)}return c(m)}function m(e){var t,n,r,i,o,s,u,c,f,d,m,g,v,y,_,k=[];for(e=l(e),g=e.length,t=T,n=0,o=S,s=0;s=t&&mI((b-n)/v)&&a("overflow"),n+=(u-t)*v,t=u,s=0;sb&&a("overflow"),m==t){for(c=n,f=w;d=f<=o?x:f>=o+E?E:f-o,!(c= 0x80 (not a basic code point)","invalid-input":"Invalid input"},j=w-x,I=Math.floor,P=String.fromCharCode;_={version:"1.3.2",ucs2:{decode:l,encode:c},decode:d,encode:m,toASCII:v,toUnicode:g},r=function(){return _}.call(t,n,t,e),!(void 0!==r&&(e.exports=r))}(this)}).call(t,n(86)(e),function(){return this}())},function(e,t){"use strict";e.exports={isString:function(e){return"string"==typeof e},isObject:function(e){return"object"==typeof e&&null!==e},isNull:function(e){return null===e},isNullOrUndefined:function(e){return null==e}}},function(e,t){"function"==typeof Object.create?e.exports=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}:e.exports=function(e,t){e.super_=t;var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e}},function(e,t){e.exports=function(e){return e&&"object"==typeof e&&"function"==typeof e.copy&&"function"==typeof e.fill&&"function"==typeof e.readUInt8}},function(e,t,n){function r(e,t,n){var r=t&&n||0,i=t||[];e=e||{};var a=void 0!==e.clockseq?e.clockseq:u,f=void 0!==e.msecs?e.msecs:(new Date).getTime(),h=void 0!==e.nsecs?e.nsecs:c+1,p=f-l+(h-c)/1e4;if(p<0&&void 0===e.clockseq&&(a=a+1&16383),(p<0||f>l)&&void 0===e.nsecs&&(h=0),h>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");l=f,c=h,u=a,f+=122192928e5;var d=(1e4*(268435455&f)+h)%4294967296;i[r++]=d>>>24&255,i[r++]=d>>>16&255,i[r++]=d>>>8&255,i[r++]=255&d;var m=f/4294967296*1e4&268435455;i[r++]=m>>>8&255,i[r++]=255&m,i[r++]=m>>>24&15|16,i[r++]=m>>>16&255,i[r++]=a>>>8|128,i[r++]=255&a;for(var g=e.node||s,v=0;v<6;++v)i[r+v]=g[v];return t?t:o(i)}var i=n(374),o=n(373),a=i(),s=[1|a[0],a[1],a[2],a[3],a[4],a[5]],u=16383&(a[6]<<8|a[7]),l=0,c=0;e.exports=r},function(e,t,n){function r(e,t,n){var r=t&&n||0;"string"==typeof e&&(t="binary"==e?new Array(16):null,e=null),e=e||{};var a=e.random||(e.rng||i)();if(a[6]=15&a[6]|64,a[8]=63&a[8]|128,t)for(var s=0;s<16;++s)t[r+s]=a[s];return t||o(a)}var i=n(374),o=n(373);e.exports=r},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){}]); +//# sourceMappingURL=bundle.js.map \ No newline at end of file diff --git a/configuration/sources/knex-mirror/knexjs.org/index.html b/configuration/sources/knex-mirror/knexjs.org/index.html new file mode 100644 index 0000000..bc9c915 --- /dev/null +++ b/configuration/sources/knex-mirror/knexjs.org/index.html @@ -0,0 +1,669 @@ + + + + + + + + + + + + + + + + + Knex.js - A SQL Query Builder for Javascript + + +

    Show example query output as:
    Fork me on GitHub

    Knex.js is a "batteries included" SQL query builder for Postgres, MSSQL, MySQL, MariaDB, SQLite3, and Oracle designed to be flexible, portable, and fun to use. It features both traditional node style callbacks as well as a promise interface for cleaner async flow control, a stream interface, full featured query and schema builders, transaction support (with savepoints), connection pooling and standardized responses between different query clients and dialects.

    The project is hosted on GitHub, and has a comprehensive test suite.

    Knex is available for use under the MIT software license.

    You can report bugs and discuss features on the GitHub issues page, add pages to the wiki or send tweets to @tgriesser.

    Thanks to all of the great contributions to the project.

    Special thanks to Taylor Otwell and his work on the Laravel Query Builder, from which much of the builder's code and syntax was originally derived.

    Latest Release: 0.14.2 - Change Log

    Current Develop — Travis Badge

    Upgrading 0.13 -> 0.14

    generic-pool was upgraded to v3. If you have specified idleTimeoutMillis or softIdleTimeoutMillis in the pool config then you will need to add evictionRunIntervalMillis: 1000 when upgrading to 0.14.

    See original issue #2322 for details.

    Installation

    Knex can be used as an SQL query builder in both Node.JS and the browser, limited to WebSQL's constraints (like the inability to drop tables or read schemas). Composing SQL queries in the browser for execution on the server is highly discouraged, as this can be the cause of serious security vulnerabilities. The browser builds outside of WebSQL are primarily for learning purposes - for example, you can pop open the console and build queries on this page using the knex object.

    Node.js

    The primary target environment for Knex is Node.js, you will need to install the knex library, and then install the appropriate database library: pg for PostgreSQL, mysql for MySQL or MariaDB, sqlite3 for SQLite3, or mssql for MSSQL.

    $ npm install knex --save
    +
    +# Then add one of the following (adding a --save) flag:
    +$ npm install pg
    +$ npm install sqlite3
    +$ npm install mysql
    +$ npm install mysql2
    +$ npm install mariasql
    +$ npm install strong-oracle
    +$ npm install oracle
    +$ npm install mssql

    Browser

    Knex can be built using a JavaScript build tool such as browserify or webpack. In fact, this documentation uses a webpack build which includes knex. View source on this page to see the browser build in-action (the global knex variable).

    Initializing the Library

    The knex module is itself a function which takes a configuration object for Knex, accepting a few parameters. The client parameter is required and determines which client adapter will be used with the library.

    var knex = require('knex')({
    +  client: 'mysql',
    +  connection: {
    +    host : '127.0.0.1',
    +    user : 'your_database_user',
    +    password : 'your_database_password',
    +    database : 'myapp_test'
    +  }
    +});

    The connection options are passed directly to the appropriate database client to create the connection, and may be either an object, or a connection string:

    Note: Knex's PostgreSQL client allows you to set the initial search path for each connection automatically using an additional option "searchPath" as shown below.

    var pg = require('knex')({
    +  client: 'pg',
    +  connection: process.env.PG_CONNECTION_STRING,
    +  searchPath: ['knex', 'public'],
    +});

    Note: When you use the SQLite3 adapter, there is a filename required, not a network connection. For example:

    var knex = require('knex')({
    +  client: 'sqlite3',
    +  connection: {
    +    filename: "./mydb.sqlite"
    +  }
    +});

    Note: The database version can be added in knex configuration, when you use the PostgreSQL adapter to connect a non-standard database.

    var knex = require('knex')({
    +  client: 'pg',
    +  version: '7.2',
    +  connection: {
    +    host : '127.0.0.1',
    +    user : 'your_database_user',
    +    password : 'your_database_password',
    +    database : 'myapp_test'
    +  }
    +});

    You can also connect via an unix domain socket, which will ignore host and port.

    var knex = require('knex')({
    +  client: 'mysql',
    +  connection: {
    +    socketPath : '/path/to/socket.sock',
    +    user : 'your_database_user',
    +    password : 'your_database_password',
    +    database : 'myapp_test'
    +  }
    +});

    Initializing the library should normally only ever happen once in your application, as it creates a connection pool for the current database, you should use the instance returned from the initialize call throughout your library.

    Specify the client for the particular flavour of SQL you are interested in.

    var pg = require('knex')({client: 'pg'});
    +knex('table').insert({a: 'b'}).returning('*').toString();
    +// "insert into "table" ("a") values ('b')"
    +
    +pg('table').insert({a: 'b'}).returning('*').toString();
    +// "insert into "table" ("a") values ('b') returning *"

    Debugging

    Passing a debug: true flag on your initialization object will turn on debugging for all queries.

    Pooling

    The client created by the configuration initializes a connection pool, using the generic-pool library. This connection pool has a default setting of a min: 2, max: 10 for the MySQL and PG libraries, and a single connection for sqlite3 (due to issues with utilizing multiple connections on a single file). To change the config settings for the pool, pass a pool option as one of the keys in the initialize block.

    Checkout the generic-pool library for more information.

    var knex = require('knex')({
    +  client: 'mysql',
    +  connection: {
    +    host : '127.0.0.1',
    +    user : 'your_database_user',
    +    password : 'your_database_password',
    +    database : 'myapp_test'
    +  },
    +  pool: { min: 0, max: 7 }
    +});

    If you ever need to explicitly teardown the connection pool, you may use knex.destroy([callback]). You may use knex.destroy by passing a callback, or by chaining as a promise, just not both.

    afterCreate

    afterCreate callback (rawDriverConnection, done) is called when the pool aquires a new connection from the database server. done(err, connection) callback must be called for knex to be able to decide if the connection is ok or if it should be discarded right away from the pool.

    var knex = require('knex')({
    +  client: 'pg',
    +  connection: {...},
    +  pool: {
    +    afterCreate: function (conn, done) {
    +      // in this example we use pg driver's connection API
    +      conn.query('SET timezone="UTC";', function (err) {
    +        if (err) {
    +          // first query failed, return error and don't try to make next query
    +          done(err, conn);
    +        } else {
    +          // do the second query...
    +          conn.query('SELECT set_limit(0.01);', function (err) {
    +            // if err is not falsy, connection is discarded from pool
    +            // if connection aquire was triggered by a query the error is passed to query promise
    +            done(err, conn);
    +          });
    +        }
    +      });
    +    }
    +  }
    +});

    acquireConnectionTimeout

    acquireConnectionTimeout defaults to 60000ms and is used to determine how long knex should wait before throwing a timeout error when acquiring a connection is not possible. The most common cause for this is using up all the pool for transaction connections and then attempting to run queries outside of transactions while the pool is still full. The error thrown will provide information on the query the connection was for to simplify the job of locating the culprit.

    var knex = require('knex')({
    +  client: 'pg',
    +  connection: {...},
    +  pool: {...},
    +  acquireConnectionTimeout: 10000
    +});

    fetchAsString

    Utilized by Oracledb. An array of types. The valid types are 'DATE', 'NUMBER' and 'CLOB'. When any column having one of the specified types is queried, the column data is returned as a string instead of the default representation.

    var knex = require('knex')({
    +  client: 'oracledb',
    +  connection: {...},
    +  fetchAsString: [ 'number', 'clob' ]
    +});

    Migrations

    For convenience, the any migration configuration may be specified when initializing the library. Read the Migrations section for more information and a full list of configuration options.

    var knex = require('knex')({
    +  client: 'mysql',
    +  connection: {
    +    host : '127.0.0.1',
    +    user : 'your_database_user',
    +    password : 'your_database_password',
    +    database : 'myapp_test'
    +  },
    +  migrations: {
    +    tableName: 'migrations'
    +  }
    +});

    postProcessResponse

    Hook for modifying returned rows, before passing them forward to user. One can do for example snake_case -> camelCase conversion for returned columns with this hook.

    var knex = require('knex')({
    +  client: 'mysql',
    +  // overly simplified snake_case -> camelCase converter
    +  postProcessResponse: (result) => {
    +    // TODO: add special case for raw results (depends on dialect)
    +    if (Array.isArray(result)) {
    +      return result.map(row => convertToCamel(row));
    +    } else {
    +      return convertToCamel(result);
    +    }
    +  }
    +});

    wrapIdentifier

    Knex supports transforming identifier names automatically to quoted versions for each dialect. For example 'Table.columnName as foo' for PostgreSQL is converted to "Table"."columnName" as "foo".

    With wrapIdentifier one may override the way how identifiers are transformed. It can be used to override default functionality and for example to help doing camelCase -> snake_case conversion.

    Conversion function wrapIdentifier(value, dialectImpl): string gets each part of the identifier as a single value and the second parameter is the original conversion function from the dialect implementation. For example knex('table').withSchema('foo').select('table.field as otherName').where('id', 1) will call wrapIdentifier converter for following values 'table', 'foo', 'table', 'field', 'otherName' and 'id'.

    var knex = require('knex')({
    +  client: 'mysql',
    +  // overly simplified camelCase -> snake_case converter
    +  wrapIdentifier: (value, origImpl) => origImpl(convertToSnakeCase(value))
    +});

    Knex Query Builder

    The heart of the library, the knex query builder is the interface used for building and executing standard SQL queries, such as select, insert, update, delete.

    Identifier Syntax

    In many places in APIs identifiers like table name or column name can be passed to methods.

    Most commonly one needs just plain tableName.columnName, tableName or columnName, but in many cases one also needs to pass an alias how that identifier is referred later on in the query.

    There are two ways to declare an alias for identifier. One can directly give as aliasName prefix for the identifier or oen can pass an object { aliasName: 'identifierName' }.

    If in the object has multiple aliases { alias1: 'identifier1', alias2: 'identifier2' }, then all the aliased identifiers are expanded to comma separated list.

    NOTE: identifier syntax has no place for selecting schema, so if you are doing schemaName.tableName, query might be rendered wrong. Use .withSchema('schemaName') instead.

    knex({ a: 'table', b: 'table' })
    +.select({
    +  aTitle: 'a.title',
    +  bTitle: 'b.title'
    +})
    +.whereRaw('?? = ??', ['a.column_1', 'b.column_2'])
    Outputs:
    select `a`.`title` as `aTitle`, `b`.`title` as `bTitle` from `table` as `a`, `table` as `b` where `a`.`column_1` = `b`.`column_2`
    knexknex(tableName, options={only: boolean}) / knex.[methodName]

    The query builder starts off either by specifying a tableName you wish to query against, or by calling any method directly on the knex object. This kicks off a jQuery-like chain, with which you can call additional query builder methods as needed to construct the query, eventually calling any of the interface methods, to either convert toString, or execute the query with a promise, callback, or stream. Optional second argument for passing options: only: if true, the ONLY keyword is used before the tableName to discard inheriting tables' data. *NOTE: only supported in PostgreSQL for now.

    timeout.timeout(ms, options={cancel: boolean})

    Sets a timeout for the query and will throw a TimeoutError if the timeout is exceeded. The error contains information about the query, bindings, and the timeout that was set. Useful for complex queries that you want to make sure are not taking too long to execute. Optional second argument for passing options: cancel: if true, cancel query if timeout is reached. *NOTE: only supported in MySQL and MariaDB for now.

    knex.select().from('books').timeout(1000)
    Outputs:
    select * from `books`
    knex.select().from('books').timeout(1000, {cancel: true}) // MySQL and MariaDB only
    Outputs:
    select * from `books`
    select.select([*columns])

    Creates a select query, taking an optional array of columns for the query, eventually defaulting to * if none are specified when the query is built. The response of a select call will resolve with an array of objects selected from the database.

    knex.select('title', 'author', 'year').from('books')
    Outputs:
    select `title`, `author`, `year` from `books`
    knex.select().table('books')
    Outputs:
    select * from `books`
    as.as(name)

    Allows for aliasing a subquery, taking the string you wish to name the current query. If the query is not a sub-query, it will be ignored.

    knex.avg('sum_column1').from(function() {
    +  this.sum('column1 as sum_column1').from('t1').groupBy('column1').as('t1')
    +}).as('ignored_alias')
    Outputs:
    select avg(`sum_column1`) from (select sum(`column1`) as `sum_column1` from `t1` group by `column1`) as `t1`
    column.column(columns)

    Specifically set the columns to be selected on a select query, taking an array, an object or a list of column names. Passing an object will automatically alias the columns with the given keys.

    knex.column('title', 'author', 'year').select().from('books')
    Outputs:
    select `title`, `author`, `year` from `books`
    knex.column(['title', 'author', 'year']).select().from('books')
    Outputs:
    select `title`, `author`, `year` from `books`
    knex.column('title', {by: 'author'}, 'year').select().from('books')
    Outputs:
    select `title`, `author` as `by`, `year` from `books`
    from.from([tableName], options={only: boolean})

    Specifies the table used in the current query, replacing the current table name if one has already been specified. This is typically used in the sub-queries performed in the advanced where or union methods. Optional second argument for passing options: only: if true, the ONLY keyword is used before the tableName to discard inheriting tables' data. *NOTE: only supported in PostgreSQL for now.

    knex.select('*').from('users')
    Outputs:
    select * from `users`
    with.with(alias, function|raw)

    Add a "with" clause to the query. "With" clauses are supported by PostgreSQL, Oracle, SQLite3 and MSSQL.

    knex.with('with_alias', knex.raw('select * from "books" where "author" = ?', 'Test')).select('*').from('with_alias')
    Outputs:
    with `with_alias` as (select * from "books" where "author" = 'Test') select * from `with_alias`
    knex.with('with_alias', (qb) => {
    +  qb.select('*').from('books').where('author', 'Test')
    +}).select('*').from('with_alias')
    Outputs:
    with `with_alias` as (select * from `books` where `author` = 'Test') select * from `with_alias`
    withSchema.withSchema([schemaName])

    Specifies the schema to be used as prefix of table name.

    knex.withSchema('public').select('*').from('users')
    Outputs:
    select * from `public`.`users`

    Where Clauses

    Several methods exist to assist in dynamic where clauses. In many places functions may be used in place of values, constructing subqueries. In most places existing knex queries may be used to compose sub-queries, etc. Take a look at a few of the examples for each method for instruction on use:

    Important: Supplying knex with an undefined value to any of the where functions will cause knex to throw an error during sql compilation. This is both for yours and our sake. Knex cannot know what to do with undefined values in a where clause, and generally it would be a programmatic error to supply one to begin with. The error will throw a message containing the type of query and the compiled query-string. Example:

    knex('accounts')
    +.where('login', undefined)
    +.select()
    +.toSQL()
    Error:
    Undefined binding(s) detected when compiling SELECT query: select * from `accounts` where `login` = ?
    where.where(~mixed~)

    Object Syntax:

    knex('users').where({
    +  first_name: 'Test',
    +  last_name:  'User'
    +}).select('id')
    Outputs:
    select `id` from `users` where `first_name` = 'Test' and `last_name` = 'User'

    Key, Value:

    knex('users').where('id', 1)
    Outputs:
    select * from `users` where `id` = 1

    Grouped Chain:

    knex('users').where(function() {
    +  this.where('id', 1).orWhere('id', '>', 10)
    +}).orWhere({name: 'Tester'})
    Outputs:
    select * from `users` where (`id` = 1 or `id` > 10) or (`name` = 'Tester')

    Operator:

    knex('users').where('columnName', 'like', '%rowlikeme%')
    Outputs:
    select * from `users` where `columnName` like '%rowlikeme%'

    The above query demonstrates the common use case of returning all users for which a specific pattern appears within a designated column.

    knex('users').where('votes', '>', 100)
    Outputs:
    select * from `users` where `votes` > 100
    var subquery = knex('users').where('votes', '>', 100).andWhere('status', 'active').orWhere('name', 'John').select('id');
    +
    +knex('accounts').where('id', 'in', subquery)
    Outputs:
    select * from `accounts` where `id` in (select `id` from `users` where `votes` > 100 and `status` = 'active' or `name` = 'John')

    .orWhere with an object automatically wraps the statement and creates an or (and - and - and) clause

    knex('users').where('id', 1).orWhere({votes: 100, user: 'knex'})
    Outputs:
    select * from `users` where `id` = 1 or (`votes` = 100 and `user` = 'knex')
    whereNot.whereNot(~mixed~)

    Object Syntax:

    knex('users').whereNot({
    +  first_name: 'Test',
    +  last_name:  'User'
    +}).select('id')
    Outputs:
    select `id` from `users` where not `first_name` = 'Test' and not `last_name` = 'User'

    Key, Value:

    knex('users').whereNot('id', 1)
    Outputs:
    select * from `users` where not `id` = 1

    Grouped Chain:

    knex('users').whereNot(function() {
    +  this.where('id', 1).orWhereNot('id', '>', 10)
    +}).orWhereNot({name: 'Tester'})
    Outputs:
    select * from `users` where not (`id` = 1 or not `id` > 10) or not `name` = 'Tester'

    Operator:

    knex('users').whereNot('votes', '>', 100)
    Outputs:
    select * from `users` where not `votes` > 100

    CAVEAT: WhereNot is not suitable for "in" and "between" type subqueries. You should use "not in" and "not between" instead.

    var subquery = knex('users')
    +  .whereNot('votes', '>', 100)
    +  .andWhere('status', 'active')
    +  .orWhere('name', 'John')
    +  .select('id');
    +
    +knex('accounts').where('id', 'not in', subquery)
    Outputs:
    select * from `accounts` where `id` not in (select `id` from `users` where not `votes` > 100 and `status` = 'active' or `name` = 'John')
    whereIn.whereIn(column, array|callback|builder) / .orWhereIn

    Shorthand for .where('id', 'in', obj), the .whereIn and .orWhereIn methods add a "where in" clause to the query.

    knex.select('name').from('users')
    +.whereIn('id', [1, 2, 3])
    +.orWhereIn('id', [4, 5, 6])
    Outputs:
    select `name` from `users` where `id` in (1, 2, 3) or `id` in (4, 5, 6)
    knex.select('name').from('users')
    +.whereIn('account_id', function() {
    +  this.select('id').from('accounts');
    +})
    Outputs:
    select `name` from `users` where `account_id` in (select `id` from `accounts`)
    var subquery = knex.select('id').from('accounts');
    +
    +knex.select('name').from('users')
    +  .whereIn('account_id', subquery)
    Outputs:
    select `name` from `users` where `account_id` in (select `id` from `accounts`)
    whereNotIn.whereNotIn(column, array|callback|builder) / .orWhereNotIn
    knex('users').whereNotIn('id', [1, 2, 3])
    Outputs:
    select * from `users` where `id` not in (1, 2, 3)
    knex('users').where('name', 'like', '%Test%').orWhereNotIn('id', [1, 2, 3])
    Outputs:
    select * from `users` where `name` like '%Test%' or `id` not in (1, 2, 3)
    whereNull.whereNull(column) / .orWhereNull
    knex('users').whereNull('updated_at')
    Outputs:
    select * from `users` where `updated_at` is null
    whereNotNull.whereNotNull(column) / .orWhereNotNull
    knex('users').whereNotNull('created_at')
    Outputs:
    select * from `users` where `created_at` is not null
    whereExists.whereExists(builder | callback) / .orWhereExists
    knex('users').whereExists(function() {
    +  this.select('*').from('accounts').whereRaw('users.account_id = accounts.id');
    +})
    Outputs:
    select * from `users` where exists (select * from `accounts` where users.account_id = accounts.id)
    knex('users').whereExists(knex.select('*').from('accounts').whereRaw('users.account_id = accounts.id'))
    Outputs:
    select * from `users` where exists (select * from `accounts` where users.account_id = accounts.id)
    whereNotExists.whereNotExists(builder | callback) / .orWhereNotExists
    knex('users').whereNotExists(function() {
    +  this.select('*').from('accounts').whereRaw('users.account_id = accounts.id');
    +})
    Outputs:
    select * from `users` where not exists (select * from `accounts` where users.account_id = accounts.id)
    knex('users').whereNotExists(knex.select('*').from('accounts').whereRaw('users.account_id = accounts.id'))
    Outputs:
    select * from `users` where not exists (select * from `accounts` where users.account_id = accounts.id)
    whereBetween.whereBetween(column, range) / .orWhereBetween
    knex('users').whereBetween('votes', [1, 100])
    Outputs:
    select * from `users` where `votes` between 1 and 100
    whereNotBetween.whereNotBetween(column, range) / .orWhereNotBetween
    knex('users').whereNotBetween('votes', [1, 100])
    Outputs:
    select * from `users` where `votes` not between 1 and 100
    whereRaw.whereRaw(query, [bindings])

    Convenience helper for .where(knex.raw(query)).

    knex('users').whereRaw('id = ?', [1])
    Outputs:
    select * from `users` where id = 1

    Join Methods

    Several methods are provided which assist in building joins.

    join.join(table, first, [operator], second)

    The join builder can be used to specify joins between tables, with the first argument being the joining table, the next three arguments being the first join column, the join operator and the second join column, respectively.

    knex('users')
    +.join('contacts', 'users.id', '=', 'contacts.user_id')
    +.select('users.id', 'contacts.phone')
    Outputs:
    select `users`.`id`, `contacts`.`phone` from `users` inner join `contacts` on `users`.`id` = `contacts`.`user_id`
    knex('users')
    +.join('contacts', 'users.id', 'contacts.user_id')
    +.select('users.id', 'contacts.phone')
    Outputs:
    select `users`.`id`, `contacts`.`phone` from `users` inner join `contacts` on `users`.`id` = `contacts`.`user_id`

    For grouped joins, specify a function as the second argument for the join query, and use on with orOn or andOn to create joins that are grouped with parentheses.

    knex.select('*').from('users').join('accounts', function() {
    +  this.on('accounts.id', '=', 'users.account_id').orOn('accounts.owner_id', '=', 'users.id')
    +})
    Outputs:
    select * from `users` inner join `accounts` on `accounts`.`id` = `users`.`account_id` or `accounts`.`owner_id` = `users`.`id`

    For nested join statements, specify a function as first argument of on, orOn or andOn

    knex.select('*').from('users').join('accounts', function() {
    +  this.on(function() {
    +    this.on('accounts.id', '=', 'users.account_id')
    +    this.orOn('accounts.owner_id', '=', 'users.id')
    +  })
    +})
    Outputs:
    select * from `users` inner join `accounts` on (`accounts`.`id` = `users`.`account_id` or `accounts`.`owner_id` = `users`.`id`)

    It is also possible to use an object to represent the join syntax.

    knex.select('*').from('users').join('accounts', {'accounts.id': 'users.account_id'})
    Outputs:
    select * from `users` inner join `accounts` on `accounts`.`id` = `users`.`account_id`

    If you need to use a literal value (string, number, or boolean) in a join instead of a column, use knex.raw.

    knex.select('*').from('users').join('accounts', 'accounts.type', knex.raw('?', ['admin']))
    Outputs:
    select * from `users` inner join `accounts` on `accounts`.`type` = 'admin'
    innerJoin.innerJoin(table, ~mixed~)
    knex.from('users').innerJoin('accounts', 'users.id', 'accounts.user_id')
    Outputs:
    select * from `users` inner join `accounts` on `users`.`id` = `accounts`.`user_id`
    knex.table('users').innerJoin('accounts', 'users.id', '=', 'accounts.user_id')
    Outputs:
    select * from `users` inner join `accounts` on `users`.`id` = `accounts`.`user_id`
    knex('users').innerJoin('accounts', function() {
    +  this.on('accounts.id', '=', 'users.account_id').orOn('accounts.owner_id', '=', 'users.id')
    +})
    Outputs:
    select * from `users` inner join `accounts` on `accounts`.`id` = `users`.`account_id` or `accounts`.`owner_id` = `users`.`id`
    leftJoin.leftJoin(table, ~mixed~)
    knex.select('*').from('users').leftJoin('accounts', 'users.id', 'accounts.user_id')
    Outputs:
    select * from `users` left join `accounts` on `users`.`id` = `accounts`.`user_id`
    knex.select('*').from('users').leftJoin('accounts', function() {
    +  this.on('accounts.id', '=', 'users.account_id').orOn('accounts.owner_id', '=', 'users.id')
    +})
    Outputs:
    select * from `users` left join `accounts` on `accounts`.`id` = `users`.`account_id` or `accounts`.`owner_id` = `users`.`id`
    leftOuterJoin.leftOuterJoin(table, ~mixed~)
    knex.select('*').from('users').leftOuterJoin('accounts', 'users.id', 'accounts.user_id')
    Outputs:
    select * from `users` left outer join `accounts` on `users`.`id` = `accounts`.`user_id`
    knex.select('*').from('users').leftOuterJoin('accounts', function() {
    +  this.on('accounts.id', '=', 'users.account_id').orOn('accounts.owner_id', '=', 'users.id')
    +})
    Outputs:
    select * from `users` left outer join `accounts` on `accounts`.`id` = `users`.`account_id` or `accounts`.`owner_id` = `users`.`id`
    rightJoin.rightJoin(table, ~mixed~)
    knex.select('*').from('users').rightJoin('accounts', 'users.id', 'accounts.user_id')
    Outputs:
    select * from `users` right join `accounts` on `users`.`id` = `accounts`.`user_id`
    knex.select('*').from('users').rightJoin('accounts', function() {
    +  this.on('accounts.id', '=', 'users.account_id').orOn('accounts.owner_id', '=', 'users.id')
    +})
    Outputs:
    select * from `users` right join `accounts` on `accounts`.`id` = `users`.`account_id` or `accounts`.`owner_id` = `users`.`id`
    rightOuterJoin.rightOuterJoin(table, ~mixed~)
    knex.select('*').from('users').rightOuterJoin('accounts', 'users.id', 'accounts.user_id')
    Outputs:
    select * from `users` right outer join `accounts` on `users`.`id` = `accounts`.`user_id`
    knex.select('*').from('users').rightOuterJoin('accounts', function() {
    +  this.on('accounts.id', '=', 'users.account_id').orOn('accounts.owner_id', '=', 'users.id')
    +})
    Outputs:
    select * from `users` right outer join `accounts` on `accounts`.`id` = `users`.`account_id` or `accounts`.`owner_id` = `users`.`id`
    outerJoin.outerJoin(table, ~mixed~)
    knex.select('*').from('users').outerJoin('accounts', 'users.id', 'accounts.user_id')
    Outputs:
    select * from `users` outer join `accounts` on `users`.`id` = `accounts`.`user_id`
    knex.select('*').from('users').outerJoin('accounts', function() {
    +  this.on('accounts.id', '=', 'users.account_id').orOn('accounts.owner_id', '=', 'users.id')
    +})
    Outputs:
    select * from `users` outer join `accounts` on `accounts`.`id` = `users`.`account_id` or `accounts`.`owner_id` = `users`.`id`
    fullOuterJoin.fullOuterJoin(table, ~mixed~)
    knex.select('*').from('users').fullOuterJoin('accounts', 'users.id', 'accounts.user_id')
    Outputs:
    select * from `users` full outer join `accounts` on `users`.`id` = `accounts`.`user_id`
    knex.select('*').from('users').fullOuterJoin('accounts', function() {
    +  this.on('accounts.id', '=', 'users.account_id').orOn('accounts.owner_id', '=', 'users.id')
    +})
    Outputs:
    select * from `users` full outer join `accounts` on `accounts`.`id` = `users`.`account_id` or `accounts`.`owner_id` = `users`.`id`
    crossJoin.crossJoin(table, ~mixed~)

    Cross join conditions are only supported in MySQL and SQLite3. For join conditions rather use innerJoin.

    knex.select('*').from('users').crossJoin('accounts')
    Outputs:
    select * from `users` cross join `accounts`
    knex.select('*').from('users').crossJoin('accounts', 'users.id', 'accounts.user_id')
    Outputs:
    select * from `users` cross join `accounts` on `users`.`id` = `accounts`.`user_id`
    knex.select('*').from('users').crossJoin('accounts', function() {
    +  this.on('accounts.id', '=', 'users.account_id').orOn('accounts.owner_id', '=', 'users.id')
    +})
    Outputs:
    select * from `users` cross join `accounts` on `accounts`.`id` = `users`.`account_id` or `accounts`.`owner_id` = `users`.`id`
    joinRaw.joinRaw(sql, [bindings])
    knex.select('*').from('accounts').joinRaw('natural full join table1').where('id', 1)
    Outputs:
    select * from `accounts` natural full join table1 where `id` = 1
    knex.select('*').from('accounts').join(knex.raw('natural full join table1')).where('id', 1)
    Outputs:
    select * from `accounts` inner join natural full join table1 where `id` = 1

    OnClauses

    onIn.onIn(column, values)

    Adds a onIn clause to the query.

    knex.select('*').from('users').join('contacts', function() {
    +  this.on('users.id', '=', 'contacts.id').onIn('contacts.id', [7, 15, 23, 41])
    +})
    Outputs:
    select * from `users` inner join `contacts` on `users`.`id` = `contacts`.`id` and `contacts`.`id` in (7, 15, 23, 41)
    onNotIn.onNotIn(column, values)

    Adds a onNotIn clause to the query.

    knex.select('*').from('users').join('contacts', function() {
    +  this.on('users.id', '=', 'contacts.id').onNotIn('contacts.id', [7, 15, 23, 41])
    +})
    Outputs:
    select * from `users` inner join `contacts` on `users`.`id` = `contacts`.`id` and `contacts`.`id` not in (7, 15, 23, 41)
    onNull.onNull(column)

    Adds a onNull clause to the query.

    knex.select('*').from('users').join('contacts', function() {
    +  this.on('users.id', '=', 'contacts.id').onNull('contacts.email')
    +})
    Outputs:
    select * from `users` inner join `contacts` on `users`.`id` = `contacts`.`id` and `contacts`.`email` is null
    onNotNull.onNotNull(column)

    Adds a onNotNull clause to the query.

    knex.select('*').from('users').join('contacts', function() {
    +  this.on('users.id', '=', 'contacts.id').onNotNull('contacts.email')
    +})
    Outputs:
    select * from `users` inner join `contacts` on `users`.`id` = `contacts`.`id` and `contacts`.`email` is not null
    onExists.onExists(builder | callback)

    Adds a onExists clause to the query.

    knex.select('*').from('users').join('contacts', function() {
    +  this.on('users.id', '=', 'contacts.id').onExists(function() {
    +    this.select('*').from('accounts').whereRaw('users.account_id = accounts.id');
    +  })
    +})
    Outputs:
    select * from `users` inner join `contacts` on `users`.`id` = `contacts`.`id` and exists (select * from `accounts` where users.account_id = accounts.id)
    onNotExists.onNotExists(builder | callback)

    Adds a onNotExists clause to the query.

    knex.select('*').from('users').join('contacts', function() {
    +  this.on('users.id', '=', 'contacts.id').onNotExists(function() {
    +    this.select('*').from('accounts').whereRaw('users.account_id = accounts.id');
    +  })
    +})
    Outputs:
    select * from `users` inner join `contacts` on `users`.`id` = `contacts`.`id` and not exists (select * from `accounts` where users.account_id = accounts.id)
    onBetween.onBetween(column, range)

    Adds a onBetween clause to the query.

    knex.select('*').from('users').join('contacts', function() {
    +  this.on('users.id', '=', 'contacts.id').onBetween('contacts.id', [5, 30])
    +})
    Outputs:
    select * from `users` inner join `contacts` on `users`.`id` = `contacts`.`id` and `contacts`.`id` between 5 and 30
    onNotBetween.onNotBetween(column, range)

    Adds a onNotBetween clause to the query.

    knex.select('*').from('users').join('contacts', function() {
    +  this.on('users.id', '=', 'contacts.id').onNotBetween('contacts.id', [5, 30])
    +})
    Outputs:
    select * from `users` inner join `contacts` on `users`.`id` = `contacts`.`id` and `contacts`.`id` not between 5 and 30

    ClearClauses

    clearSelect.clearSelect()

    Clears all select clauses from the query, excluding subqueries.

    knex.select('email', 'name').from('users').clearSelect()
    Outputs:
    select * from `users`
    clearWhere.clearWhere()

    Clears all where clauses from the query, excluding subqueries.

    knex.select('email', 'name').from('users').where('id', 1).clearWhere()
    Outputs:
    select `email`, `name` from `users`
    distinct.distinct()

    Sets a distinct clause on the query.

    // select distinct 'first_name' from customers
    +knex('customers')
    +  .distinct('first_name', 'last_name')
    +  .select()
    Outputs:
    select distinct `first_name`, `last_name` from `customers`
    groupBy.groupBy(*names)

    Adds a group by clause to the query.

    knex('users').groupBy('count')
    Outputs:
    select * from `users` group by `count`
    groupByRaw.groupByRaw(sql)

    Adds a raw group by clause to the query.

    knex.select('year', knex.raw('SUM(profit)')).from('sales').groupByRaw('year WITH ROLLUP')
    Outputs:
    select `year`, SUM(profit) from `sales` group by year WITH ROLLUP
    orderBy.orderBy(column, [direction])

    Adds an order by clause to the query.

    knex('users').orderBy('name', 'desc')
    Outputs:
    select * from `users` order by `name` desc
    orderByRaw.orderByRaw(sql)

    Adds an order by raw clause to the query.

    knex.select('*').from('table').orderByRaw('col DESC NULLS LAST')
    Outputs:
    select * from `table` order by col DESC NULLS LAST

    Having Clauses

    having.having(column, operator, value)

    Adds a having clause to the query.

    knex('users')
    +.groupBy('count')
    +.orderBy('name', 'desc')
    +.having('count', '>', 100)
    Outputs:
    select * from `users` group by `count` having `count` > 100 order by `name` desc
    havingIn.havingIn(column, values)

    Adds a havingIn clause to the query.

    knex.select('*').from('users').havingIn('id', [5, 3, 10, 17])
    Outputs:
    select * from `users` having `id` in (5, 3, 10, 17)
    havingNotIn.havingNotIn(column, values)

    Adds a havingNotIn clause to the query.

    knex.select('*').from('users').havingNotIn('id', [5, 3, 10, 17])
    Outputs:
    select * from `users` having `id` not in (5, 3, 10, 17)
    havingNull.havingNull(column)

    Adds a havingNull clause to the query.

    knex.select('*').from('users').havingNull('email')
    Outputs:
    select * from `users` having `email` is null
    havingNotNull.havingNotNull(column)

    Adds a havingNotNull clause to the query.

    knex.select('*').from('users').havingNotNull('email')
    Outputs:
    select * from `users` having `email` is not null
    havingExists.havingExists(builder | callback)

    Adds a havingExists clause to the query.

    knex.select('*').from('users').havingExists(function() {
    +  this.select('*').from('accounts').whereRaw('users.account_id = accounts.id');
    +})
    Outputs:
    select * from `users` having exists (select * from `accounts` where users.account_id = accounts.id)
    havingNotExists.havingNotExists(builder | callback)

    Adds a havingNotExists clause to the query.

    knex.select('*').from('users').havingNotExists(function() {
    +  this.select('*').from('accounts').whereRaw('users.account_id = accounts.id');
    +})
    Outputs:
    select * from `users` having not exists (select * from `accounts` where users.account_id = accounts.id)
    havingBetween.havingBetween(column, range)

    Adds a havingBetween clause to the query.

    knex.select('*').from('users').havingBetween('id', [5, 10])
    Outputs:
    select * from `users` having `id` between 5 and 10
    havingNotBetween.havingNotBetween(column, range)

    Adds a havingNotBetween clause to the query.

    knex.select('*').from('users').havingNotBetween('id', [5, 10])
    Outputs:
    select * from `users` having `id` not between 5 and 10
    havingRaw.havingRaw(column, operator, value)

    Adds a havingRaw clause to the query.

    knex('users')
    +.groupBy('count')
    +.orderBy('name', 'desc')
    +.havingRaw('count > ?', [100])
    Outputs:
    select * from `users` group by `count` having count > 100 order by `name` desc
    offset.offset(value)

    Adds an offset clause to the query.

    knex.select('*').from('users').offset(10)
    Outputs:
    select * from `users` limit 18446744073709551615 offset 10
    limit.limit(value)

    Adds a limit clause to the query.

    knex.select('*').from('users').limit(10).offset(30)
    Outputs:
    select * from `users` limit 10 offset 30
    union.union([*queries], [wrap])

    Creates a union query, taking an array or a list of callbacks to build the union statement, with optional boolean wrap. The queries will be individually wrapped in parentheses with a true wrap parameter.

    knex.select('*').from('users').whereNull('last_name').union(function() {
    +  this.select('*').from('users').whereNull('first_name');
    +})
    Outputs:
    select * from `users` where `last_name` is null union select * from `users` where `first_name` is null
    unionAll.unionAll(query)

    Creates a union all query, with the same method signature as the union method.

    knex.select('*').from('users').whereNull('last_name').unionAll(function() {
    +  this.select('*').from('users').whereNull('first_name');
    +})
    Outputs:
    select * from `users` where `last_name` is null union all select * from `users` where `first_name` is null
    insert.insert(data, [returning])

    Creates an insert query, taking either a hash of properties to be inserted into the row, or an array of inserts, to be executed as a single insert command. Resolves the promise / fulfills the callback with an array containing the first insert id of the inserted model, or an array containing all inserted ids for postgresql.

    // Returns [1] in "mysql", "sqlite", "oracle"; [] in "postgresql" unless the 'returning' parameter is set.
    +knex('books').insert({title: 'Slaughterhouse Five'})
    Outputs:
    insert into `books` (`title`) values ('Slaughterhouse Five')
    // Normalizes for empty keys on multi-row insert:
    +knex('coords').insert([{x: 20}, {y: 30},  {x: 10, y: 20}])
    Outputs:
    insert into `coords` (`x`, `y`) values (20, DEFAULT), (DEFAULT, 30), (10, 20)
    // Returns [2] in "mysql", "sqlite"; [2, 3] in "postgresql"
    +knex.insert([{title: 'Great Gatsby'}, {title: 'Fahrenheit 451'}], 'id').into('books')
    Outputs:
    insert into `books` (`title`) values ('Great Gatsby'), ('Fahrenheit 451')

    If one prefers that undefined keys are replaced with NULL instead of DEFAULT one may give useNullAsDefault configuration parameter in knex config.

    var knex = require('knex')({
    +  client: 'mysql',
    +  connection: {
    +    host : '127.0.0.1',
    +    user : 'your_database_user',
    +    password : 'your_database_password',
    +    database : 'myapp_test'
    +  },
    +  useNullAsDefault: true
    +});
    +
    +knex('coords').insert([{x: 20}, {y: 30}, {x: 10, y: 20}])
    +// insert into `coords` (`x`, `y`) values (20, NULL), (NULL, 30), (10, 20)"
    returning.returning(column) / .returning([column1, column2, ...])

    Utilized by PostgreSQL, MSSQL, and Oracle databases, the returning method specifies which column should be returned by the insert and update methods. Passed column parameter may be a string or an array of strings. When passed in a string, makes the SQL result be reported as an array of values from the specified column. When passed in an array of strings, makes the SQL result be reported as an array of objects, each containing a single property for each of the specified columns.

    // Returns [1]
    +knex('books')
    +  .returning('id')
    +  .insert({title: 'Slaughterhouse Five'})
    Outputs:
    insert into `books` (`title`) values ('Slaughterhouse Five')
    // Returns [2] in "mysql", "sqlite"; [2, 3] in "postgresql"
    +knex('books')
    +  .returning('id')
    +  .insert([{title: 'Great Gatsby'}, {title: 'Fahrenheit 451'}])
    Outputs:
    insert into `books` (`title`) values ('Great Gatsby'), ('Fahrenheit 451')
    // Returns [ { id: 1, title: 'Slaughterhouse Five' } ]
    +knex('books')
    +  .returning(['id','title'])
    +  .insert({title: 'Slaughterhouse Five'})
    Outputs:
    insert into `books` (`title`) values ('Slaughterhouse Five')
    update.update(data, [returning]) / .update(key, value, [returning])

    Creates an update query, taking a hash of properties or a key/value pair to be updated based on the other query constraints. Resolves the promise / fulfills the callback with the number of affected rows for the query. If a key to be updated has value undefined it is ignored.

    knex('books')
    +.where('published_date', '<', 2000)
    +.update({
    +  status: 'archived',
    +  thisKeyIsSkipped: undefined
    +})
    Outputs:
    update `books` set `status` = 'archived' where `published_date` < 2000
    // Returns [1] in "mysql", "sqlite", "oracle"; [] in "postgresql" unless the 'returning' parameter is set.
    +knex('books').update('title', 'Slaughterhouse Five')
    Outputs:
    update `books` set `title` = 'Slaughterhouse Five'
    del / delete.del()

    Aliased to del as delete is a reserved word in JavaScript, this method deletes one or more rows, based on other conditions specified in the query. Resolves the promise / fulfills the callback with the number of affected rows for the query.

    knex('accounts')
    +.where('activated', false)
    +.del()
    Outputs:
    delete from `accounts` where `activated` = false
    transacting.transacting(transactionObj)

    Used by knex.transaction, the transacting method may be chained to any query and passed the object you wish to join the query as part of the transaction for.

    var Promise = require('bluebird');
    +knex.transaction(function(trx) {
    +  knex('books').transacting(trx).insert({name: 'Old Books'})
    +    .then(function(resp) {
    +      var id = resp[0];
    +      return someExternalMethod(id, trx);
    +    })
    +    .then(trx.commit)
    +    .catch(trx.rollback);
    +})
    +.then(function(resp) {
    +  console.log('Transaction complete.');
    +})
    +.catch(function(err) {
    +  console.error(err);
    +});
    forUpdate.transacting(t).forUpdate()

    Dynamically added after a transaction is specified, the forUpdate adds a FOR UPDATE in PostgreSQL and MySQL during a select statement.

    knex('tableName')
    +.transacting(trx)
    +.forUpdate()
    +.select('*')
    Outputs:
    select * from `tableName` for update
    forShare.transacting(t).forShare()

    Dynamically added after a transaction is specified, the forShare adds a FOR SHARE in PostgreSQL and a LOCK IN SHARE MODE for MySQL during a select statement.

    knex('tableName')
    +.transacting(trx)
    +.forShare()
    +.select('*')
    Outputs:
    select * from `tableName` lock in share mode
    count.count(column|raw)

    Performs a count on the specified column. Also accepts raw expressions. Note that in Postgres, count returns a bigint type which will be a String and not a Number (more info).

    knex('users').count('active')
    Outputs:
    select count(`active`) from `users`
    knex('users').count('active as a')
    Outputs:
    select count(`active`) as `a` from `users`
    knex('users').count(knex.raw('??', ['active']))
    Outputs:
    select count(`active`) from `users`

    Use countDistinct to add a distinct expression inside the aggregate function.

    knex('users').countDistinct('active')
    Outputs:
    select count(distinct `active`) from `users`
    min.min(column|raw)

    Gets the minimum value for the specified column. Also accepts raw expressions.

    knex('users').min('age')
    Outputs:
    select min(`age`) from `users`
    knex('users').min('age as a')
    Outputs:
    select min(`age`) as `a` from `users`
    knex('users').min(knex.raw('??', ['age']))
    Outputs:
    select min(`age`) from `users`
    max.max(column|raw)

    Gets the maximum value for the specified column. Also accepts raw expressions.

    knex('users').max('age')
    Outputs:
    select max(`age`) from `users`
    knex('users').max('age as a')
    Outputs:
    select max(`age`) as `a` from `users`
    knex('users').max(knex.raw('??', ['age']))
    Outputs:
    select max(`age`) from `users`
    sum.sum(column|raw)

    Retrieve the sum of the values of a given column. Also accepts raw expressions.

    knex('users').sum('products')
    Outputs:
    select sum(`products`) from `users`
    knex('users').sum('products as p')
    Outputs:
    select sum(`products`) as `p` from `users`
    knex('users').sum(knex.raw('??', ['products']))
    Outputs:
    select sum(`products`) from `users`

    Use sumDistinct to add a distinct expression inside the aggregate function.

    knex('users').sumDistinct('products')
    Outputs:
    select sum(distinct `products`) from `users`
    avg.avg(column|raw)

    Retrieve the average of the values of a given column. Also accepts raw expressions.

    knex('users').avg('age')
    Outputs:
    select avg(`age`) from `users`
    knex('users').avg('age as a')
    Outputs:
    select avg(`age`) as `a` from `users`
    knex('users').avg(knex.raw('??', ['age']))
    Outputs:
    select avg(`age`) from `users`

    Use avgDistinct to add a distinct expression inside the aggregate function.

    knex('users').avgDistinct('age')
    Outputs:
    select avg(distinct `age`) from `users`
    increment.increment(column, amount)

    Increments a column value by the specified amount.

    knex('accounts')
    +.where('userid', '=', 1)
    +.increment('balance', 10)
    Outputs:
    update `accounts` set `balance` = `balance` + 10 where `userid` = 1
    decrement.decrement(column, amount)

    Decrements a column value by the specified amount.

    knex('accounts').where('userid', '=', 1).decrement('balance', 5)
    Outputs:
    update `accounts` set `balance` = `balance` - 5 where `userid` = 1
    truncate.truncate()

    Truncates the current table.

    knex('accounts').truncate()
    Outputs:
    truncate `accounts`
    pluck.pluck(id)

    This will pluck the specified column from each row in your results, yielding a promise which resolves to the array of values selected.

    knex.table('users').pluck('id').then(function(ids) { console.log(ids); });
    first.first([columns])

    Similar to select, but only retrieves & resolves with the first record from the query.

    knex.table('users').first('id', 'name').then(function(row) { console.log(row); });
    clone.clone()

    Clones the current query chain, useful for re-using partial query snippets in other queries without mutating the original.

    modify.modify(fn, *arguments)

    Allows encapsulating and re-using query snippets and common behaviors as functions. The callback function should receive the query builder as its first argument, followed by the rest of the (optional) parameters passed to modify.

    var withUserName = function(queryBuilder, foreignKey) {
    +  queryBuilder.leftJoin('users', foreignKey, 'users.id').select('users.user_name');
    +};
    +knex.table('articles').select('title', 'body').modify(withUserName, 'articles_user.id').then(function(article) {
    +  console.log(article.user_name);
    +});
    columnInfo.columnInfo([columnName])

    Returns an object with the column info about the current table, or an individual column if one is passed, returning an object with the following keys: defaultValue: the default value for the column type: the column type maxLength: the max length set for the column nullable: whether the column may be null

    knex('users').columnInfo().then(function(info) { // ... });
    debug.debug([enabled])

    Overrides the global debug setting for the current query chain. If enabled is omitted, query debugging will be turned on.

    connection

    (incomplete) - This feature was incorrectly documented as functional.
    If implemented, the method would set the db connection to use for the query without using the connection pool.

    options.options()

    Allows for mixing in additional options as defined by database client specific libraries:

    knex('accounts as a1')
    +.leftJoin('accounts as a2', function() {
    +  this.on('a1.email', '<>', 'a2.email');
    +})
    +.select(['a1.email', 'a2.email'])
    +.where(knex.raw('a1.id = 1'))
    +.options({ nestTables: true, rowMode: 'array' })
    +.limit(2)
    +.then(...

    Transactions

    Transactions are an important feature of relational databases, as they allow correct recovery from failures and keep a database consistent even in cases of system failure. All queries within a transaction are executed on the same database connection, and run the entire set of queries as a single unit of work. Any failure will mean the database will rollback any queries executed on that connection to the pre-transaction state.

    Transactions are handled by passing a handler function into knex.transaction. The handler function accepts a single argument, an object which may be used in two ways:

      +
    1. As the "promise aware" knex connection
    2. +
    3. As an object passed into a query with and eventually call commit or rollback.
    4. +
    +Consider these two examples:

    var Promise = require('bluebird');
    +
    +// Using trx as a query builder:
    +knex.transaction(function(trx) {
    +
    +  var books = [
    +    {title: 'Canterbury Tales'},
    +    {title: 'Moby Dick'},
    +    {title: 'Hamlet'}
    +  ];
    +
    +  return trx
    +    .insert({name: 'Old Books'}, 'id')
    +    .into('catalogues')
    +    .then(function(ids) {
    +      return Promise.map(books, function(book) {
    +        book.catalogue_id = ids[0];
    +
    +        // Some validation could take place here.
    +
    +        return trx.insert(info).into('books');
    +      });
    +    });
    +})
    +.then(function(inserts) {
    +  console.log(inserts.length + ' new books saved.');
    +})
    +.catch(function(error) {
    +  // If we get here, that means that neither the 'Old Books' catalogues insert,
    +  // nor any of the books inserts will have taken place.
    +  console.error(error);
    +});

    And then this example:

    var Promise = require('bluebird');
    +
    +// Using trx as a transaction object:
    +knex.transaction(function(trx) {
    +
    +  var books = [
    +    {title: 'Canterbury Tales'},
    +    {title: 'Moby Dick'},
    +    {title: 'Hamlet'}
    +  ];
    +
    +  knex.insert({name: 'Old Books'}, 'id')
    +    .into('catalogues')
    +    .transacting(trx)
    +    .then(function(ids) {
    +      return Promise.map(books, function(book) {
    +        book.catalogue_id = ids[0];
    +
    +        // Some validation could take place here.
    +
    +        return knex.insert(info).into('books').transacting(trx);
    +      });
    +    })
    +    .then(trx.commit)
    +    .catch(trx.rollback);
    +})
    +.then(function(inserts) {
    +  console.log(inserts.length + ' new books saved.');
    +})
    +.catch(function(error) {
    +  // If we get here, that means that neither the 'Old Books' catalogues insert,
    +  // nor any of the books inserts will have taken place.
    +  console.error(error);
    +});

    Throwing an error directly from the transaction handler function automatically rolls back the transaction, same as returning a rejected promise.

    Notice that if a promise is not returned within the handler, it is up to you to ensure trx.commit, or trx.rollback are called, otherwise the transaction connection will hang.

    Schema Builder

    The knex.schema is a getter function, which returns a stateful object containing the query. Therefore be sure to obtain a new instance of the knex.schema for every query. These methods return promises.

    withSchemaknex.schema.withSchema([schemaName])

    Specifies the schema to be used when using the schema-building commands.

    knex.schema.withSchema('public').createTable('users', function (table) {
    +  table.increments();
    +})
    Outputs:
    create table `public`.`users` (`id` int unsigned not null auto_increment primary key)
    createTableknex.schema.createTable(tableName, callback)

    Creates a new table on the database, with a callback function to modify the table's structure, using the schema-building commands.

    knex.schema.createTable('users', function (table) {
    +  table.increments();
    +  table.string('name');
    +  table.timestamps();
    +})
    Outputs:
    create table `users` (`id` int unsigned not null auto_increment primary key, `name` varchar(255), `created_at` datetime, `updated_at` datetime)
    createTableIfNotExistsknex.schema.createTableIfNotExists(tableName, callback)

    Creates a new table on the database if it doesn't exists on database, with a callback function to modify the table's structure, using the schema-building commands.

    knex.schema.createTableIfNotExists('users', function (table) {
    +  table.increments();
    +  table.string('name');
    +  table.timestamps();
    +})
    Outputs:
    create table if not exists `users` (`id` int unsigned not null auto_increment primary key, `name` varchar(255), `created_at` datetime, `updated_at` datetime)
    renameTableknex.schema.renameTable(from, to)

    Renames a table from a current tableName to another.

    knex.schema.renameTable('users', 'old_users')
    Outputs:
    rename table `users` to `old_users`
    dropTableknex.schema.dropTable(tableName)

    Drops a table, specified by tableName.

    knex.schema.dropTable('users')
    Outputs:
    drop table `users`
    hasTableknex.schema.hasTable(tableName)

    Checks for a table's existence by tableName, resolving with a boolean to signal if the table exists.

    knex.schema.hasTable('users').then(function(exists) {
    +  if (!exists) {
    +    return knex.schema.createTable('users', function(t) {
    +      t.increments('id').primary();
    +      t.string('first_name', 100);
    +      t.string('last_name', 100);
    +      t.text('bio');
    +    });
    +  }
    +});
    hasColumnknex.schema.hasColumn(tableName, columnName)

    Checks if a column exists in the current table, resolves the promise with a boolean, true if the column exists, false otherwise.

    dropTableIfExistsknex.schema.dropTableIfExists(tableName)

    Drops a table conditionally if the table exists, specified by tableName.

    knex.schema.dropTableIfExists('users')
    Outputs:
    drop table if exists `users`
    tableknex.schema.table(tableName, callback)

    Chooses a database table, and then modifies the table, using the Schema Building functions inside of the callback.

    knex.schema.table('users', function (table) {
    +  table.dropColumn('name');
    +  table.string('first_name');
    +  table.string('last_name');
    +})
    Outputs:
    alter table `users` add `first_name` varchar(255), add `last_name` varchar(255); +alter table `users` drop `name`
    rawknex.schema.raw(statement)

    Run an arbitrary sql query in the schema builder chain.

    knex.schema.raw("SET sql_mode='TRADITIONAL'")
    +.table('users', function (table) {
    +  table.dropColumn('name');
    +  table.string('first_name');
    +  table.string('last_name');
    +})
    Outputs:
    SET sql_mode='TRADITIONAL'; +alter table `users` add `first_name` varchar(255), add `last_name` varchar(255); +alter table `users` drop `name`

    Schema Building:

    dropColumntable.dropColumn(name)

    Drops a column, specified by the column's name

    dropColumnstable.dropColumns(*columns)

    Drops multiple columns, taking a variable number of column names.

    renameColumntable.renameColumn(from, to)

    Renames a column from one name to another.

    incrementstable.increments(name)

    Adds an auto incrementing column, in PostgreSQL this is a serial. This will be used as the primary key for the table. Also available is a bigIncrements if you wish to add a bigint incrementing number (in PostgreSQL bigserial).

    integertable.integer(name)

    Adds an integer column.

    bigIntegertable.bigInteger(name)

    In MySQL or PostgreSQL, adds a bigint column, otherwise adds a normal integer. Note that bigint data is returned as a string in queries because JavaScript may be unable to parse them without loss of precision.

    texttable.text(name, [textType])

    Adds a text column, with optional textType for MySql text datatype preference. textType may be mediumtext or longtext, otherwise defaults to text.

    stringtable.string(name, [length])

    Adds a string column, with optional length defaulting to 255.

    floattable.float(column, [precision], [scale])

    Adds a float column, with optional precision (defaults to 8) and scale (defaults to 2).

    decimaltable.decimal(column, [precision], [scale])

    Adds a decimal column, with optional precision (defaults to 8) and scale (defaults to 2).

    booleantable.boolean(name)

    Adds a boolean column.

    datetable.date(name)

    Adds a date column.

    dateTimetable.dateTime(name)

    Adds a dateTime column.

    timetable.time(name)

    Adds a time column.

    timestamptable.timestamp(name, [standard])

    Adds a timestamp column, defaults to timestamptz in PostgreSQL, unless true is passed as the second argument. For Example:

    table.timestamp('created_at').defaultTo(knex.fn.now());
    timestampstable.timestamps([useTimestamps], [defaultToNow])

    Adds a created_at and updated_at column on the database, setting these each to dateTime types. When true is passed as the first argument a timestamp type is used. Both colums default to being not null and the current timestamp when true is passed as the second argument.

    dropTimestampstable.dropTimestamps()

    Drops the columns created_at and updated_at from the table, which can be created via timestamps.

    binarytable.binary(name, [length])

    Adds a binary column, with optional length argument for MySQL.

    enum / enutable.enu(col, values)

    Adds a enum column, (aliased to enu, as enum is a reserved word in JavaScript). Note that the second argument is an array of values. Example:

    table.enu('column', ['value1', 'value2'])
    jsontable.json(name)

    Adds a json column, using the built-in json type in postgresql, defaulting to a text column in older versions of postgresql or in unsupported databases. Note that when setting an array (or a value that could be an array) as the value of a json or jsonb column, you should use JSON.stringify() to convert your value to a string prior to passing it to the query builder, e.g.

    knex.table('users')
    +.where({id: 1})
    +.update({json_data: JSON.stringify(mightBeAnArray)});

    This is because postgresql has a native array type which uses a syntax incompatible with json; knex has no way of knowing which syntax to use, and calling JSON.stringify() forces json-style syntax.

    jsonbtable.jsonb(name)

    Adds a jsonb column. Works similar to table.json(), but uses native jsonb type if possible.

    uuidtable.uuid(name)

    Adds a uuid column - this uses the built-in uuid type in postgresql, and falling back to a char(36) in other databases.

    commenttable.comment(value)

    Sets the comment for a table.

    enginetable.engine(val)

    Sets the engine for the database table, only available within a createTable call, and only applicable to MySQL.

    charsettable.charset(val)

    Sets the charset for the database table, only available within a createTable call, and only applicable to MySQL.

    collatetable.collate(val)

    Sets the collation for the database table, only available within a createTable call, and only applicable to MySQL.

    inheritstable.inherits(val)

    Sets the tables that this table inherits, only available within a createTable call, and only applicable to PostgreSQL.

    specificTypetable.specificType(name, type)

    Sets a specific type for the column creation, if you'd like to add a column type that isn't supported here.

    indextable.index(columns, [indexName], [indexType])

    Adds an index to a table over the given columns. A default index name using the columns is used unless indexName is specified. The indexType can be optionally specified for PostgreSQL.

    dropIndextable.dropIndex(columns, [indexName])

    Drops an index from a table. A default index name using the columns is used unless indexName is specified (in which case columns is ignored).

    uniquetable.unique(columns, [indexName])

    Adds an unique index to a table over the given columns. A default index name using the columns is used unless indexName is specified.

    knex.schema.alterTable('users', function(t) {
    +  t.unique('email')
    +})
    +knex.schema.alterTable('job', function(t) {
    +  t.unique(['account_id', 'program_id'])
    +})
    foreigntable.foreign(columns, [foreignKeyName])

    Adds a foreign key constraint to a table for an existing column using table.foreign(column).references(column) or multiple columns using table.foreign(columns).references(columns). A default key name using the columns is used unless foreignKeyName is specified. You can also chain onDelete and/or onUpdate to set the reference option (RESTRICT, CASCADE, SET NULL, NO ACTION) for the operation. Note, this is the same as column.references(column) but works for existing columns.

    knex.schema.table('users', function (table) {
    +  table.integer('user_id').unsigned()
    +  table.foreign('user_id').references('Items.user_id_in_items')
    +})
    dropForeigntable.dropForeign(columns, [foreignKeyName])

    Drops a foreign key constraint from a table. A default foreign key name using the columns is used unless foreignKeyName is specified (in which case columns is ignored).

    dropUniquetable.dropUnique(columns, [indexName])

    Drops a unique key constraint from a table. A default unique key name using the columns is used unless indexName is specified (in which case columns is ignored).

    dropPrimarytable.dropPrimary([constraintName])

    Drops the primary key constraint on a table. Defaults to tablename_pkey unless constraintName is specified.

    Chainable Methods:

    The following three methods may be chained on the schema building methods, as modifiers to the column.

    altercolumn.alter()

    Marks the column as an alter / modify, instead of the default add. Note: This only works in .alterTable() and is not supported by SQlite. Alter is not done incrementally over older column type so if you like to add notNull and keep the old default value, the alter statement must contain both .notNull().defaultTo(1).alter(). If one just tries to add .notNull().alter() the old default value will be dropped.

    knex.schema.alterTable('user', function(t) {
    +  t.increments().primary(); // add
    +  // drops previous default value from column, change type to string and add not nullable constraint
    +  t.string('username', 35).notNullable().alter(); 
    +  // drops both not null contraint and the default value
    +  t.integer('age').alter(); 
    +});
    indexcolumn.index([indexName], [indexType])

    Specifies a field as an index. If an indexName is specified, it is used in place of the standard index naming convention of tableName_columnName. The indexType can be optionally specified for PostgreSQL. No-op if this is chained off of a field that cannot be indexed.

    primarycolumn.primary([constraintName])

      When called on a single column it will set that column as the primary key for a table.
    +  To create a compound primary key, pass an array of column names:
    +  `table.primary(['column1', 'column2'])`.
    +  Constraint name defaults to `tablename_pkey` unless `constraintName` is specified.
    +

    uniquecolumn.unique()

    Sets the column as unique.

    referencescolumn.references(column)

    Sets the "column" that the current column references as a foreign key. "column" can either be "." syntax, or just the column name followed up with a call to inTable to specify the table.

    inTablecolumn.inTable(table)

    Sets the "table" where the foreign key column is located after calling column.references.

    onDeletecolumn.onDelete(command)

    Sets the SQL command to be run "onDelete".

    onUpdatecolumn.onUpdate(command)

    Sets the SQL command to be run "onUpdate".

    defaultTocolumn.defaultTo(value)

    Sets the default value for the column on an insert.

    unsignedcolumn.unsigned()

    Specifies an integer as unsigned. No-op if this is chained off of a non-integer field.

    notNullablecolumn.notNullable()

    Adds a not null on the current column being created.

    nullablecolumn.nullable()

    Default on column creation, this explicitly sets a field to be nullable.

    firstcolumn.first()

    Sets the column to be inserted on the first position, only used in MySQL alter tables.

    aftercolumn.after(field)

    Sets the column to be inserted after another, only used in MySQL alter tables.

    commentcolumn.comment(value)

    Sets the comment for a column.

    knex.schema.createTable('accounts', function(t) {
    +  t.increments().primary();
    +  t.string('email').unique().comment('This is the email field');
    +});
    collatecolumn.collate(collation)

    Sets the collation for a column (only works in MySQL). Here is a list of all available collations: https://dev.mysql.com/doc/refman/5.5/en/charset-charsets.html

    knex.schema.createTable('users', function(t) {
    +  t.increments();
    +  t.string('email').unique().collate('utf8_unicode_ci');
    +});

    Raw

    Sometimes you may need to use a raw expression in a query. Raw query object may be injected pretty much anywhere you want, and using proper bindings can ensure your values are escaped properly, preventing SQL-injection attacks.

    Raw Parameter Binding:

    One can paramterize sql given to knex.raw(sql, bindings). Parameters can be positional named. One can also choose if parameter should be treated as value or as sql identifier e.g. in case of 'TableName.ColumnName' reference.

    knex('users')
    +.select(knex.raw('count(*) as user_count, status'))
    +.where(knex.raw(1))
    +.orWhere(knex.raw('status <> ?', [1]))
    +.groupBy('status')
    Outputs:
    select count(*) as user_count, status from `users` where 1 or status <> 1 group by `status`

    Positional bindings ? are interpreted as values and ?? are interpreted as identifiers.

    knex('users').where(knex.raw('?? = ?', ['user.name', 1]))
    Outputs:
    select * from `users` where `user`.`name` = 1

    Named bindings such as :name are interpreted as values and :name: interpreted as identifiers. Named bindings are processed so long as the value is anything other than undefined.

    knex('users')
    +.where(knex.raw(':name: = :thisGuy or :name: = :otherGuy or :name: = :undefinedBinding', {
    +  name: 'users.name',
    +  thisGuy: 'Bob',
    +  otherGuy: 'Jay',
    +  undefinedBinding: undefined
    +}))
    Error:
    Undefined binding(s) detected when compiling RAW query: `users`.`name` = ? or `users`.`name` = ? or `users`.`name` = :undefinedBinding

    For simpler queries where one only has a single binding, .raw can accept said binding as its second parameter.

    knex('users')
    +.where(
    +  knex.raw('LOWER("login") = ?', 'knex')
    +)
    +.orWhere(
    +  knex.raw('accesslevel = ?', 1)
    +)
    +.orWhere(
    +  knex.raw('updtime = ?', new Date.UTC('01-01-2016'))
    +)
    Error:
    Date.UTC is not a constructor

    Note that due to ambiguity, arrays must be passed as arguments within a containing array.

    knex.raw('select * from users where id in (?)', [1, 2, 3]);
    +// Error: Expected 3 bindings, saw 1
    +
    +knex.raw('select * from users where id in (?)', [[1, 2, 3]])
    Outputs:
    select * from users where id in (1, 2, 3)

    To prevent replacement of ? one can use the escape sequence \\?.

    knex.select('*').from('users').where('id', '=', 1).whereRaw('?? \\? ?', ['jsonColumn', 'jsonKey'])
    Outputs:
    select * from `users` where `id` = 1 and `jsonColumn` ? 'jsonKey'

    To prevent replacement of named bindings one can use the escape sequence \\:.

    knex.select('*').from('users').whereRaw(":property: = '\\:value' OR \\:property: = :value", {
    +  property: 'name',
    +  value: 'Bob'
    +})
    Outputs:
    select * from `users` where `name` = ':value' OR :property: = 'Bob'

    Raw Expressions:

    Raw expressions are created by using knex.raw(sql, [bindings]) and passing this as a value for any value in the query chain.

    knex('users')
    +.select(knex.raw('count(*) as user_count, status'))
    +.where(knex.raw(1))
    +.orWhere(knex.raw('status <> ?', [1]))
    +.groupBy('status')
    Outputs:
    select count(*) as user_count, status from `users` where 1 or status <> 1 group by `status`

    Raw Queries:

    The knex.raw may also be used to build a full query and execute it, as a standard query builder query would be executed. The benefit of this is that it uses the connection pool and provides a standard interface for the different client libraries.

    knex.raw('select * from users where id = ?', [1]).then(function(resp) { ... });

    Note that the response will be whatever the underlying sql library would typically return on a normal query, so you may need to look at the documentation for the base library the queries are executing against to determine how to handle the response.

    Wrapped Queries:

    The raw query builder also comes with a wrap method, which allows wrapping the query in a value:

    var subcolumn = knex.raw('select avg(salary) from employee where dept_no = e.dept_no')
    +.wrap('(', ') avg_sal_dept');
    +
    +knex.select('e.lastname', 'e.salary', subcolumn)
    +.from('employee as e')
    +.whereRaw('dept_no = e.dept_no')
    Outputs:
    select `e`.`lastname`, `e`.`salary`, (select avg(salary) from employee where dept_no = e.dept_no) avg_sal_dept from `employee` as `e` where dept_no = e.dept_no

    Note that the example above be achieved more easily using the as method.

    var subcolumn = knex.avg('salary')
    +.from('employee')
    +.whereRaw('dept_no = e.dept_no')
    +.as('avg_sal_dept');
    +
    +knex.select('e.lastname', 'e.salary', subcolumn)
    +.from('employee as e')
    +.whereRaw('dept_no = e.dept_no')
    Outputs:
    select `e`.`lastname`, `e`.`salary`, (select avg(`salary`) from `employee` where dept_no = e.dept_no) as `avg_sal_dept` from `employee` as `e` where dept_no = e.dept_no

    Utility

    A collection of utilities that the knex library provides for convenience.

    Batch Insert

    The batchInsert utility will insert a batch of rows wrapped inside a transaction (which is automatically created unless explicitly given a transaction using transacting), at a given chunkSize.

    It's primarily designed to be used when you have thousands of rows to insert into a table.

    By default, the chunkSize is set to 1000.

    BatchInsert also allows for returning values and supplying transactions using transacting.

    var rows = [{...}, {...}];
    +var chunkSize = 30;
    +knex.batchInsert('TableName', rows, chunkSize)
    +  .returning('id')
    +  .then(function(ids) { ... })
    +  .catch(function(error) { ... });
    +
    +knex.transaction(function(tr) {
    +  return knex.batchInsert('TableName', rows, chunkSize)
    +    .transacting(tr)
    +  })
    +  .then(function() { ... })
    +  .catch(function(error) { ... });

    Interfaces

    Knex.js provides several options to deal with query output. The following methods are present on the query builder, schema builder, and the raw builder:

    Promises

    Promises are the preferred way of dealing with queries in knex, as they allow you to return values from a fulfillment handler, which in turn become the value of the promise. The main benefit of promises are the ability to catch thrown errors without crashing the node app, making your code behave like a .try / .catch / .finally in synchronous code.

    knex.select('name')
    +.from('users')
    +.where('id', '>', 20)
    +.andWhere('id', '<', 200)
    +.limit(10)
    +.offset(x)
    +.then(function(rows) {
    +  return _.pluck(rows, 'name');
    +})
    +.then(function(names) {
    +  return knex.select('id').from('nicknames').whereIn('nickname', names);
    +})
    +.then(function(rows) {
    +  console.log(rows);
    +})
    +.catch(function(error) {
    +  console.error(error)
    +});
    then.then(onFulfilled, [onRejected])

    Coerces the current query builder chain into a promise state, accepting the resolve and reject handlers as specified by the Promises/A+ spec. As stated in the spec, more than one call to the then method for the current query chain will resolve with the same value, in the order they were called; the query will not be executed multiple times.

    knex.select('*')
    +.from('users')
    +.where({name: 'Tim'})
    +.then(function(rows) {
    +  return knex.insert({user_id: rows[0].id, name: 'Test'}, 'id').into('accounts');
    +})
    +.then(function(id) {
    +  console.log('Inserted Account ' + id);
    +})
    +.catch(function(error) { console.error(error); });
    catch.catch(onRejected)

    Coerces the current query builder into a promise state, catching any error thrown by the query, the same as calling .then(null, onRejected).

    return knex.insert({id: 1, name: 'Test'}, 'id')
    +.into('accounts')
    +.catch(function(error) {
    +  console.error(error);
    +}).then(function() {
    +  return knex.select('*')
    +    .from('accounts')
    +    .where('id', 1);
    +}).then(function(rows) {
    +  console.log(rows[0]);
    +})
    +.catch(function(error) {
    +  console.error(error);
    +});
    tap.tap(sideEffectHandler)

    Executes side effects on the resolved response, ultimately returning a promise that fulfills with the original value. A thrown error or rejected promise will cause the promise to transition into a rejected state.

    // Using only .then()
    +query.then(function(x) {
    +  doSideEffectsHere(x);
    +  return x;
    +});
    +
    +// Using .tap()
    +promise.tap(doSideEffectsHere);
    map.map(mapper)

    A passthrough to Bluebird's map implementation with the result set.

    knex.select('name').from('users').limit(10).map(function(row) {
    +  return row.name;
    +})
    +.then(function(names) { console.log(names); })
    +.catch(function(e) { console.error(e); });
    reduce.reduce(reducer, [initialValue])

    A passthrough to Bluebird's reduce implementation with the result set.

    knex.select('name').from('users').limit(10).reduce(function(memo, row) {
    +  memo.names.push(row.name);
    +  memo.count++;
    +  return memo;
    +}, {count: 0, names: []})
    +.then(function(obj) { console.log(obj); })
    +.catch(function(e) { console.error(e); });
    bind.bind(context)

    A passthrough to Bluebird's bind method which sets the context value (this) for the returned promise.

    knex.select('name').from('users')
    +.limit(10)
    +.bind(console)
    +.then(console.log)
    +.catch(console.error)
    return.return(value)

    Shorthand for calling .then(function() { return value }).

    // Without return:
    +knex.insert(values).into('users')
    +  .then(function() {
    +    return {inserted: true};
    +  });
    +
    +knex.insert(values).into('users').return({inserted: true});

    Callbacks

    asCallback.asCallback(callback)

    If you'd prefer a callback interface over promises, the asCallback function accepts a standard node style callback for executing the query chain. Note that as with the then method, subsequent calls to the same query chain will return the same result.

    knex.select('name').from('users')
    +.where('id', '>', 20)
    +.andWhere('id', '<', 200)
    +.limit(10)
    +.offset(x)
    +.asCallback(function(err, rows) {
    +  if (err) return console.error(err);
    +  knex.select('id').from('nicknames')
    +    .whereIn('nickname', _.pluck(rows, 'name'))
    +    .asCallback(function(err, rows) {
    +      if (err) return console.error(err);
    +      console.log(rows);
    +    });
    +});

    Streams

    Streams are a powerful way of piping data through as it comes in, rather than all at once. You can read more about streams here at substack's stream handbook. See the following for example uses of stream & pipe. If you wish to use streams with PostgreSQL, you must also install the pg-query-stream module. On an HTTP server, make sure to manually close your streams if a request is aborted.

    stream.stream([options], [callback])

    If called with a callback, the callback is passed the stream and a promise is returned. Otherwise, the readable stream is returned.

    // Retrieve the stream:
    +var stream = knex.select('*').from('users').stream();
    +stream.pipe(writableStream);
    +
    +// With options:
    +var stream = knex.select('*').from('users').stream({highWaterMark: 5});
    +stream.pipe(writableStream);
    +
    +// Use as a promise:
    +var stream = knex.select('*').from('users')
    +  .where(knex.raw('id = ?', [1]))
    +  .stream(function(stream) {
    +    stream.pipe(writableStream);
    +  })
    +  .then(function() { // ... })
    +  .catch(function(e) { console.error(e); });
    pipe.pipe(writableStream)

    Pipe a stream for the current query to a writableStream.

    var stream = knex.select('*').from('users').pipe(writableStream);

    Events

    query

    A query event is fired just before a query takes place, providing data about the query, including the connection's __cid property and any other information about the query as described in toSQL. Useful for logging all queries throughout your application.

    knex.select('*')
    +.from('users')
    +.on('query', function(data) {
    +  app.log(data);
    +})
    +.then(function() {
    +  // ...
    +});
    query-error

    A query-error event is fired when an error occurs when running a query, providing the error object and data about the query, including the connection's __cid property and any other information about the query as described in toSQL. Useful for logging all query errors throughout your application.

    knex.select(['NonExistentColumn'])
    +.from('users')
    +.on('query-error', function(error, obj) {
    +  app.log(error);
    +})
    +.then(function() { // ... })
    +.catch(function(error) {
    +  // Same error object as the query-error event provides.
    +});
    query-response

    A query-response event is fired when a successful query has been run, providing the response of the query and data about the query, including the connection's __cid property and any other information about the query as described in toSQL, and finally the query builder used for the query.

    knex.select('*')
    +.from('users')
    +.on('query-response', function(response, obj, builder) {
    +  // ...
    +})
    +.then(function(response) {
    +  // Same response as the emitted event
    +})
    +.catch(function(error) { });

    Other

    toString.toString()

    Returns an array of query strings filled out with the correct values based on bindings, etc. Useful for debugging, but should not be used to create queries for running them against DB.

    var toStringQuery = knex.select('*').from('users').where('id', 1).toString();
    +
    +// Outputs: console.log(toStringQuery); 
    +// select * from "users" where "id" = 1
    toSQL.toSQL() and toSQL().toNative()

    Returns an array of query strings filled out with the correct values based on bindings, etc. Useful for debugging and building queries for running them manually with DB driver. .toSQL().toNative() outputs object with sql string and bindings in a dialects format in the same way that knex internally sends them to unterlying DB driver.

    knex.select('*').from('users')
    +  .where(knex.raw('id = ?', [1]))
    +  .toSQL()
    +// Outputs:
    +// {
    +//   bindings: [1],
    +//   method: 'select',
    +//   sql: 'select * from "users" where id = ?',
    +//   options: undefined,
    +//   toNative: function () {}
    +// }
    +
    +knex.select('*').from('users')
    +  .where(knex.raw('id = ?', [1]))
    +  .toSQL().toNative()
    +// Outputs for postgresql dialect:
    +// {
    +//   bindings: [1],
    +//   sql: 'select * from "users" where id = $1',
    +// }

    Migrations

    Migrations allow for you to define sets of schema changes so upgrading a database is a breeze.

    Migration CLI

    The migration CLI is bundled with the knex install, and is driven by the node-liftoff module. To install globally, run:

    $ npm install knex -g

    Migrations use a knexfile, which specify various configuration settings for the module. To create a new knexfile, run the following:

    $ knex init
    +
    +# or for .coffee
    +
    +$ knex init -x coffee

    will create a sample knexfile.js - the file which contains our various database configurations. Once you have a knexfile.js, you can use the migration tool to create migration files to the specified directory (default migrations). Creating new migration files can be achieved by running:

    $ knex migrate:make migration_name

    Once you have finished writing the migrations, you can update the database matching your NODE_ENV by running:

    $ knex migrate:latest

    You can also pass the --env flag or set NODE_ENV to select an alternative environment:

    $ knex migrate:latest --env production
    +
    +# or
    +
    +$ NODE_ENV=production knex migrate:latest

    To rollback the last batch of migrations:

    $ knex migrate:rollback

    Seed files

    Seed files allow you to populate your database with test or seed data independent of your migration files.

    Seed CLI

    To create a seed file, run:

    $ knex seed:make seed_name

    Seed files are created in the directory specified in your knexfile.js for the current environment. A sample seed configuration looks like:

    development: {
    +  client: ...,
    +  connection: { ... },
    +  seeds: {
    +      directory: './seeds/dev'
    +  }
    +}

    If no seeds.directory is defined, files are created in ./seeds. Note that the seed directory needs to be a relative path. Absolute paths are not supported (nor is it good practice).

    To run seed files, execute:

    $ knex seed:run

    Seed files are executed in alphabetical order. Unlike migrations, every seed file will be executed when you run the command. You should design your seed files to reset tables as needed before inserting data.

    knexfile.js

    A knexfile.js or knexfile.coffee generally contains all of the configuration for your database. It can optionally provide different configuration for different environments. You may pass a --knexfile option to any of the command line statements to specify an alternate path to your knexfile.

    Basic configuration:

    module.exports = {
    +  client: 'pg',
    +  connection: process.env.DATABASE_URL || { user: 'me', database: 'my_app' }
    +};

    Environment configuration:

    module.exports = {
    +  development: {
    +    client: 'pg',
    +    connection: { user: 'me', database: 'my_app' }
    +  },
    +  production: { client: 'pg', connection: process.env.DATABASE_URL }
    +};

    Custom migration:

    You may provide a custom migration stub to be used in place of the default option.

    module.exports = {
    +  client: 'pg',
    +  migration: {
    +    stub: 'migration.stub'
    +  }
    +};

    Migration API

    knex.migrate is the class utilized by the knex migrations cli.

    Each method takes an optional config object, which may specify the following properties:

    • directory: a relative path to the directory containing the migration files (default ./migrations)
    • extension: the file extension used for the generated migration files (default js)
    • tableName: the table name used for storing the migration state (default knex_migrations)
    • disableTransactions: don't run migrations inside transactions (default false)
    • loadExtensions: array of file extensions which knex will treat as migrations. For example, if you have typescript transpiled into javascript in the same folder, you want to execute only javascript migrations. In this case, set loadExtensions to ['.js'] (Notice the dot!) (default ['.co', '.coffee', '.eg', '.iced', '.js', '.litcoffee', '.ls', '.ts'])

    Transactions in migrations

    By default, each migration is run inside a transaction. Whenever needed, one can disable transactions for all migrations via the common migration config option config.disableTransactions or per-migration, via exposing a boolean property config.transaction from a migration file:

    exports.up = function(knex, Promise) { /* ... */ };
    +
    +exports.down = function(knex, Promise) { /* ... */ };
    +
    +exports.config = { transaction: false };

    The same config property can be used for enabling transaction per-migration in case the common configuration has disableTransactions: true.

    makeknex.migrate.make(name, [config])

    Creates a new migration, with the name of the migration being added.

    latestknex.migrate.latest([config])

    Runs all migrations that have not yet been run.

    If you need to run something only after all migrations have finished their execution, you can do something like this:

    knex.migrate.latest()
    +.then(function() {
    +  return knex.seed.run();
    +})
    +.then(function() {
    +  // migrations are finished
    +});
    rollbackknex.migrate.rollback([config])

    Rolls back the latest migration group.

    currentVersionknex.migrate.currentVersion([config])

    Retrieves and returns the current migration version, as a promise. If there aren't any migrations run yet, returns "none" as the value for the currentVersion.

    Notes about locks

    A lock system is there to prevent multiple processes from running the same migration batch in the same time. When a batch of migrations is about to be run, the migration system first tries to get a lock using a SELECT ... FOR UPDATE statement (preventing race conditions from happening). If it can get a lock, the migration batch will run. If it can't, it will wait until the lock is released.

    Please note that if your process unfortunately crashes, the lock will have to be manually removed in order to let migrations run again. The locks are saved in a table called "tableName_lock"; it has single one column called is_locked that you need to set to 0 in order to release the lock.

    Seed API

    knex.seed is the class utilized by the knex seed CLI.

    Each method takes an optional config object, which may specify the following properties:

    • directory: a relative path to the directory containing the seed files (default ./seeds)
    • loadExtensions: array of file extensions which knex will treat as seeds. For example, if you have typescript transpiled into javascript in the same folder, you want to execute only javascript seeds. In this case, set loadExtensions to ['.js'] (Notice the dot!) (default ['.co', '.coffee', '.eg', '.iced', '.js', '.litcoffee', '.ls', '.ts'])

    Methods

    makeknex.seed.make(name, [config])

    Creates a new seed file, with the name of the seed file being added.

    runknex.seed.run([config])

    Runs all seed files for the current environment.

    Support

    Have questions about the library? Come join us in the #bookshelf freenode IRC channel for support on knex.js and bookshelf.js, or post an issue on Stack Overflow or in the GitHub issue tracker.

    F.A.Q.

    How do I help contribute?
    Glad you ask! Pull requests, or feature requests, though not always implemented, are a great way to help make Knex even better than it is now. If you're looking for something specific to help out with, there's a number of unit tests that aren't implemented yet, the library could never have too many of those. If you want to submit a fix or feature, take a look at the Contributing readme in the Github and go ahead and open a ticket.

    How do I debug?
    Knex is beginning to make use of the debug module internally, so you can set the DEBUG environment variable to knex:* to see all debugging, or select individual namespaces DEBUG=knex:query,knex:tx to constrain a bit.

    If you pass {debug: true} as one of the options in your initialize settings, you can see all of the query calls being made. Sometimes you need to dive a bit further into the various calls and see what all is going on behind the scenes. I'd recommend node-inspector, which allows you to debug code with debugger statements like you would in the browser.

    At the start of your application code will catch any errors not otherwise caught in the normal promise chain handlers, which is very helpful in debugging.

    How do I run the test suite?
    The test suite looks for an environment variable called KNEX_TEST for the path to the database configuration. If you run the following command:

    $ export KNEX_TEST='/path/to/your/knex_config.js'
    +$ npm test

    replacing with the path to your config file, and the config file is valid, the test suite should run properly.

    My tests are failing because slow DB connection and short test timeouts! How to extend test timeouts?
    Sometimes, e.g. when running CI on travis, test suite's default timeout of 5 seconds might be too short. In such cases an alternative test timeout value in milliseconds can be specified using the KNEX_TEST_TIMEOUT environment variable.

    $ export KNEX_TEST_TIMEOUT=30000
    +$ npm test

    Can I use Knex outside of Node.js
    Yes. While the WebSQL spec is deprecated, there is still an adapter that provides support. You will need to use a build tool like browserify or webpack for a browser build.

    Change Log

    0.14.224 Nov, 2017
    Bug fixes:
    • Fix sqlite3 truncate method to work again #2348
    0.14.119 Nov, 2017
    Bug fixes:
    • Fix support for multiple schema names in in postgres searchPath #2340
    • Fix create new connection to pass errors to query instead of retry loop #2336
    • Fix recognition of connections closed by server #2341
    0.14.06 Nov, 2017
    Breaking Changes:
    • Remove sorting of statements from update queries #2171
    • Updated allowed operator list with some missing operators and make all to lower case #2239
    • Use node-mssql 4.0.0 #2029
    • Support for enum columns to SQlite3 dialect #2055
    • Better identifier quoting in Sqlite3 #2087
    • Migration Errors - Display filename of of failed migration #2272
    Other Features:
    • Post processing hook for query result #2261
    • Build native SQL where binding parameters are dialect specific #2237
    • Configuration option to allow override identifier wrapping #2217
    • Implemented select syntax: select({ alias: 'column' }) #2227
    • Allows to filter seeds and migrations by extensions #2168
    • Reconnecting after database server disconnect/reconnect + tests #2017
    • Removed filering from allowed configuration settings of mysql2 #2040
    • Allow raw expressions in query builder aggregate methods #2257
    • Throw error on non-string table comment #2126
    • Support for mysql stream query options #2301
    Bug fixes:
    • Allow update queries and passing query builder to with statements #2298
    • Fix escape table name in SQLite columnInfo call #2281
    • Preventing containsUndefined from going to recursion loop #1711
    • Fix error caused by call to knex.migrate.currentVersion #2123
    • Upgraded generic-pool to 3.1.7 (did resolve some memory issues) #2208
    • Allow using NOT ILIKE operator #2195
    • Fix postgres searchPath to be case-sensitive #2172
    • Fix drop of multiple columns in sqlite3 #2107
    • Fix adding multiple columns in Oracle #2115
    • Use selected schema when dropping indices in Postgres. #2105
    • Fix hasTable for MySQL to not do partial matches #2097
    • Fix setting autoTransaction in batchInsert #2113
    • Fix connection error propagation when streaming #2199
    • Fix comments not being applied to increments columns #2243
    • Fix mssql wrong binding order of queries that combine a limit with select raw or update #2066
    • Fixed mysql alter table attributes order #2062
    Test / internal changes
    • Update each out-of-date dependency according to david-dm.org #2297
    • Update v8flags to version 3.0.0 #2288
    • Update interpret version #2283
    • Fix debug output typo #2187
    • Docker CI tests #2164
    • Unit test for right/rightOuterJoin combination #2117
    • Unit test for fullOuterJoin #2118
    • Unit tests for table comment #2098
    • Test referencing non-existent column with sqlite3 #2104
    • Unit test for renaming column in postgresql #2099
    • Unit test for cross-join #2102
    • Fix incorrect parameter name #2068
    Show Full Changelog
    0.13.029 Apr, 2017
    Breaking Changes:
    • Multiple concurrent migration runners blocks instead of throwing error when possible #1962
    • Fixed transaction promise mutation issue #1991
    Other Changes:
    • Allow passing version of connected db in configuration file #1993
    • Bugfixes on batchInsert and transactions for mysql/maria #1992
    • Add fetchAsString optional parameter to oracledb dialect #1998
    • fix: escapeObject parameter order for Postgres dialect. #2003
    0.12.923 Mar, 2017

    Fixed unhandled exception in batchInsert when the rows to be inserted resulted in duplicate key violation #1880

    0.12.815 Mar, 2017
    • Added clearSelect and clearWhere to query builder #1912
    • Properly close Postgres query streams on error #1935
    • Transactions should never reject with undefined #1970
    • Clear acquireConnectionTimeout if an error occurs when acquiring a connection #1973
    0.12.717 Feb, 2017
    Accidental Breaking Change:
    • Ensure that 'client' is provided in knex config object #1822
    Other Changes:
    • Support custom foreign key names #1311, #1726
    • Fixed named bindings to work with queries containing :-chars #1890
    • Exposed more promise functions #1896
    • Pass rollback errors to transaction promise in mssql #1885
    • ONLY keyword support for PostgreSQL (for table inheritance) #1874
    • Fixed Mssql update with join syntax #1777
    • Replace migrations and seed for react-native packager #1813
    • Support knexfile, migration and seeds in TypeScript #1769
    • Fix float to integer conversion of decimal fields in MSSQL #1781
    • External authentication capability when using oracledb driver #1716
    • Fixed MSSQL incorect query build when locks are used #1707
    • Allow to use first method as aliased select #1784
    • Alter column for nullability, type and default value #46, #1759
    • Add more having methods / join clause on methods #1674
    • Compatibility fixes and cleanups #1788, #1792, #1794, #1814, #1857, #1649
    0.12.619 Oct, 2016
    • Address warnings mentioned in #1388 (#1740)
    • Remove postinstall script (#1746)
    0.12.512 Oct, 2016
    • Fix broken 0.12.4 build (removed from npm)
    • Fix #1733, #920, incorrect postgres array bindings
    0.12.39 Oct, 2016
    • Fix #1703, #1694 - connections should be returned to pool if acquireConnectionTimeout is triggered
    • Fix #1710 regression in postgres array escaping
    0.12.227 Sep, 2016
    • Restore pool min: 1 for sqlite3, #1701
    • Fix for connection error after it's closed / released, #1691
    • Fix oracle prefetchRowCount setting, #1675
    0.12.116 Sep, 2016
    • Fix MSSQL sql execution error, #1669
    • Added DEBUG=knex:bindings for debugging query bindings, #1557
    0.12.013 Sep, 2016
    • Remove build / built files, #1616
    • Upgrade to Babel 6, #1617
    • Reference Bluebird module directly, remove deprecated .exec method, #1618
    • Remove documentation files from main repo
    • Fix broken behavior on WebSQL build, #1638
    • Oracle id sequence now handles manual inserts, #906
    • Cleanup PG escaping, fix #1602, #1548
    • Added with to builder for common table expressions, #1599
    • Fix #1619, pluck with explicit column names
    • Switching back to generic-pool for pooling resource management
    • Removed index.html, please direct all PR's for docs against the files in knex/documentation
    0.11.109 Aug, 2016
    • Added CHANGELOG.md for a new documentation builder coming soon, #1615
    • Minor documentation tweaks
    • PG: Fix Uint8Array being considered undefined, #1601
    • MSSQL: Make columnInfo schema dynamic, #1585
    0.11.921 Jul, 2016

    Reverted knex client breaking change (commit b74cd69e906), fixes #1587

    0.11.821 Jul, 2016
    • Oracledb dialect #990
    • Documentation fix #1532
    • Allow named bindings to be escaped. #1576
    • Several bugs with MS SQL schema creation and installing from gihub fix #1577
    • Fix incorrect escaping of backslashes in SqlString.escape #1545
    0.11.719 Jun, 2016

    Add missing dependency. #1516

    0.11.618 Jun, 2016
    • Allow cancellation on timeout (MySQL) #1454
    • Better bigint support. (MSSQL) #1445
    • More consistent handling of undefined values in QueryBuilder#where and Raw. #1459
    • Fix Webpack build. #1447
    • Fix code that triggered Bluebird warnings. #1460, #1489
    • Fix ping function. (Oracle) #1486
    • Fix columnInfo. (MSSQL) #1464
    • Fix ColumnCompiler#binary. (MSSQL) #1464
    • Allow connection strings that do not contain a password. #1473
    • Fix race condition in seed stubs. #1493
    • Give each query a UUID. #1510
    0.11.526 May, 2016

    Bugfix: Using Raw or QueryBuilder as a binding to Raw now works as intended

    0.11.422 May, 2016
    • Bugfix: Inconsistency of .primary() and .dropPrimary() between dialects #1430
    • Feature: Allow using custom Client/Dialect (you can pass your own client in knex config) #1428
    • Docs: Add documentation for .dropTimestamps #1432
    • Bugfix: Fixed passing undefined fields for insert/update inside transaction #1423
    • Feature: batchInsert with existing transaction #1354
    • Build: eslint instead of jshint #1416
    • Bugfix: Pooled connections not releasing #1382
    • Bugfix: Support passing knex.raw to .whereNot #1402
    • Docs: Fixed list of dialects which supports .returning #1398
    • Bugfix: rename table does not fail anymore even with schema defined #1403
    0.11.314 May, 2016

    Support nested joins. #1397

    0.11.214 May, 2016
    • Prevent crash on knex seed:make. #1389
    • Improvements to batchInsert. #1391
    • Improvements to inserting DEFAULT with undefined binding. #1396
    • Correct generated code for adding/dropping multiple columns. (MSSQL) #1401
    0.11.16 May, 2016

    Fix error in CLI command migrate:make. #1386

    0.11.05 May, 2016
    Breaking Changes:
    • QueryBuilder#orWhere joins multiple arguments with AND. #1164
    Other Changes:
    • Collate for columns. (MySQL) #1147
    • Add QueryBuilder#timeout, Raw#timeout. #1201 #1260
    • Exit with error code when appropriate. #1238
    • MSSQL connection accepts host as an alias for server in accordance with other dialects. #1239
    • Add query-response event. #1231
    • Correct behaviour of sibling nested transactions. #1226
    • Support RETURNING with UPDATE. (Oracle) #1253
    • Throwing callbacks from transactions automatically rolls them back. #1257
    • Fixes to named Raw bindings. #1251
    • timestamps accepts an argument to set NOT NULL and default to current timestamp.
    • Add TableBuilder#inherits for PostgreSQL. #601
    • Wrap index names. #1289
    • Restore coffeescript knexfiles and configurations. #1292
    • Add andWhereBetween and andWhereNotBetween #1132
    • Fix valueForUndefined failure. #1269
    • renameColumn no longer drops default value or nullability. #1326
    • Correct MySQL2 error handling. #1315
    • Fix MSSQL createTableIfNotExists. #1362
    • Fix MSSQL URL parsing. #1342
    • Update Lodash to 4.6.0 #1242
    • Update Bluebird to 3.3.4 #1279
    0.10.015 Feb, 2016
    Breaking Changes:
    • insert and update now ignore undefined values. Back compatibility is provided through the option useNullAsDefault. #1174, #1043
    Other Changes:
    • Add countDistinct, avgDistinct and sumDistinct. #1046
    • Add schema.jsonb. Deprecated schema.json(column, true). #991
    • Support binding identifiers with ??. #1103
    • Restore query event when triggered by transactions. #855
    • Correct question mark escaping in rendered queries. #519, #1058
    • Add per-dialect escaping, allowing quotes to be escaped correctly. #886, #1095
    • Add MSSQL support. #1090
    • Add migration locking. #1094
    • Allow column aliases to contain .. #1181
    • Add batchInsert. #1182
    • Support non-array arguments to knex.raw.
    • Global query-error event. #1163
    • Add batchInsert. #1182
    • Better support for Mysql2 dialect options. #980
    • Support for acquireConnectionTimeout default 60 seconds preventing #1040 from happening. #1177
    • Fixed constraint name escaping when dropping a constraint. #1177
    • Show also .raw queries in debug output. #1169
    • Support for cli to use basic configuration without specific environment set. #1101
    0.9.0Nov 2, 2015
    • Fix error when merging knex.raw instances without arguments. #853
    • Fix error that caused the connection to time out while streaming. #849
    • Correctly parse SSL query parameter for PostgreSQL. #852
    • Pass compress option to MySQL2. #843
    • Schema: Use timestamp with timezone by default for time, datetime and timestamp for Oracle. #876
    • Add QueryBuilder#modify #881
    • Add LiveScript and Early Gray support for seeds and migrations.
    • Add QueryBuilder#withSchema #518
    • Allow escaping of ? in knex.raw queries. #946
    • Allow 0 in join clause. #953
    • Add migration config to allow disabling/enabling transactions per migration. #834
    0.8.6May 20, 2015

    Fix for several transaction / migration issues, #832, #833, #834, #835

    0.8.5May 14, 2015

    Pool should be initialized if no pool options are specified

    0.8.4May 13, 2015

    Pool should not be initialized if {max: 0} is sent in config options

    0.8.3May 2, 2015

    Alias postgresql -> postgres in connection config options

    0.8.2May 1, 2015

    Fix regression in using query string in connection config

    0.8.1May 1, 2015
    • Warn rather than error when implicit commits wipe out savepoints in mysql / mariadb, #805.
    • Fix for incorrect seed config reference, #804
    0.8.0Apr 30, 2015
    New Features:
    • Fixes several major outstanding bugs with the connection pool, switching to Pool2 in place of generic-pool-redux
    • strong-oracle module support
    • Nested transactions automatically become savepoints, with commit & rollback releasing or rolling back the current savepoint.
    • Database seed file support, #391
    • Improved support for sub-raw queries within raw statements
    • Migrations are now wrapped in transactions where possible
    • Subqueries supported in insert statements, #627
    • Support for nested having, #572
    • Support object syntax for joins, similar to "where" #743
    Major Changes:
    • Transactions are immediately invoked as A+ promises, #470 (this is a feature and should not actually break anything in practice)
    • Heavy refactoring internal APIs (public APIs should not be affected)
    "Other Changes:
    • Allow mysql2 to use non-default port, #588
    • Support creating & dropping extensions in PostgreSQL, #540
    • CLI support for knexfiles that do not provide environment keys, #527
    • Added sqlite3 dialect version of whereRaw/andWhereRaw (#477)
    0.7.5Mar 9, 2015

    Fix bug in validateMigrationList, (#697)

    0.7.4Feb 25, 2015
    • Fix incorrect order of query parameters when using subqueries, #704
    • Properly handle limit 0, (#655)
    • Apply promise args from then instead of explicitly passing.
    • Respect union parameter as last argument (#660).
    • Added sqlite3 dialect version of whereRaw/andWhereRaw (#477).
    • Fix SQLite dropColumn doesn't work for last column (#544).
    • Add POSIX operator support for Postgres (#562)
    • Sample seed files now correctly (#391)
    0.7.3Oct 3, 2014
    • Support for join(table, rawOrBuilder) syntax.
    • Fix for regression in PostgreSQL connection (#516)
    0.7.2Oct 1, 2014

    Fix for regression in migrations

    0.7.1Oct 1, 2014

    Better disconnect handling & pool removal for MySQL clients, #452

    0.7.0Oct 1, 2014
    New Features
    • Oracle support, #419
    • Database seed file support, #391
    • Improved support for sub-raw queries within raw statements
    Breaking Changes
    • "collate nocase" no longer used by default in sqlite3 #396
    Other Changes
    • Bumping Bluebird to ^2.x
    • Transactions in websql are now a no-op (unsupported) #375
    • Improved test suite
    • knex.fn namespace as function helper (knex.fn.now), #372
    • Better handling of disconnect errors
    • Support for offset without limit, #446
    • Chainable first method for mysql schema, #406
    • Support for empty array in whereIn
    • Create/drop schema for postgres, #511
    • Inserting multiple rows with default values, #468
    • Join columns are optional for cross-join, #508
    • Flag for creating jsonb columns in Postgresql, #500
    0.6.22July 10, 2014

    Bug fix for properly binding postgresql streaming queries, (#363)

    0.6.21July 9, 2014
    • Bug fix for raw queries not being transaction context aware, (#351).
    • Properly forward stream errors in sqlite3 runner, (#359)
    0.6.20June 30, 2014

    Allow case insensitive operators in sql clauses, (#344)

    0.6.19June 27, 2014
    • Add groupByRaw / orderByRaw methods, better support for raw statements in group / order (#282).
    • Support more config options for node-mysql2 dialect (#341).
    • CLI help text fix, (#342)
    0.6.18June 25, 2014

    Patch for the method, calling without a handler should return the stream, not a promise (#337)

    0.6.17June 23, 2014

    Adding missing map / reduce proxies to bluebird's implementation

    0.6.16June 18, 2014
    • Increment / decrement returns the number of affectedRows (#330).
    • Allow --cwd option flag to be passed to CLI tool (#326)
    0.6.15June 14, 2014

    Added the as method for aliasing subqueries

    0.6.14June 14, 2014

    whereExists / whereNotExists may now take a query builder instance as well as a callback

    0.6.13June 12, 2014
    • Fix regression with onUpdate / onDelete in PostgreSQL, (#308).
    • Add missing Promise require to knex.js, unit test for knex.destroy (#314)
    0.6.12June 10, 2014

    Fix for regression with boolean default types in PostgreSQL

    0.6.11June 10, 2014

    Fix for regression with queries containing multiple order by statements in sqlite3

    0.6.10June 10, 2014

    Fix for big regression in memoization of column names from 0.5 -> 0.6

    0.6.9June 9, 2014

    Fix for regression in specificType method

    0.6.8June 9, 2014

    Package.json fix for CLI

    0.6.7June 9, 2014
    • Adds support for node-mysql2 library.
    • Bundles CLI with the knex install, various related migrate CLI fixes
    0.6.6June 9, 2014
    • console.warn rather than throw when adding foreignKeys in SQLite3.
    • Add support for dropColumn in SQLite3.
    • Document raw.wrap
    0.6.5June 9, 2014

    Add missing _ require to WebSQL builds

    0.6.4June 9, 2014

    Fix & document schema.raw method

    0.6.3June 6, 2014
    • Schema methods on transaction object are now transaction aware (#301).
    • Fix for resolved value from transactions, (#298).
    • Undefined columns are not added to builder
    0.6.2June 4, 2014
    • Fix regression in raw query output, (#297).
    • Fix regression in "pluck" method (#296).
    • Document first method
    0.6.1June 4, 2014

    Reverting to using .npmignore, the "files" syntax forgot the knex.js file

    0.6.0June 4, 2014
    Major Library refactor:
    • Major internal overhaul to clean up the various dialect code.
    • Improved unit test suite.
    • Support for the mariasql driver.
    • More consistent use of raw query bindings throughout the library.
    • Queries are more composable, may be injected in various points throughout the builder.
    • Added streaming interface
    • Deprecated 5 argument join in favor of additional join methods.
    • The wrapValue function to allow for array column operations in PostgreSQL (#287).
    • An explicit connection can be passed for any query (#56).
    • Drop column support for sqlite3
    • All schema actions are run sequentially on the same connection if chained.
    • Schema actions can now be wrapped in a transaction
    • .references(tableName.columnName) as shorthand for .references(columnName).inTable(tableName)
    • .join('table.column', 'otherTable.column') as shorthand for .join('table.column', '=', 'otherTable.column')
    • Streams are supported for selects, passing through to the streaming capabilities of node-mysql and node-postgres
    • For More information, see this pull-request
    0.5.15June 4, 2014

    Dropped indexes feature now functions correctly, (#278)

    0.5.14May 6, 2014

    Remove the charset encoding if it's utf8 for mysql, as it's the default but also currently causes some issues in recent versions of node-mysql

    0.5.13April 2, 2014

    Fix regression in array bindings for postgresql (#228)

    0.5.12Mar 31, 2014

    Add more operators for where clauses, including && (#226)

    0.5.11Mar 25, 2014
    • .where(col, 'is', null) or .where(col, 'is not', null) are not supported (#221).
    • Case insensitive where operators now allowed (#212).
    • Fix bug in increment/decrement truncating to an integer (#210).
    • Disconnected connections are now properly handled & removed from the pool (#206).
    • Internal tweaks to binding concatenations for performance (#207)
    0.5.10Mar 19, 2014

    Add the .exec method to the internal promise shim

    0.5.9Mar 18, 2014

    Remove error'ed connections from the connection pool (#206), added support for node-postgres-pure (pg.js) (#200)

    0.5.8Feb 27, 2014

    Fix for chaining on forUpdate / forShare, adding map & reduce from bluebird

    0.5.7Feb 18, 2014

    Fix for a null limit / offset breaking query chain (#182)

    0.5.6Feb 5, 2014

    Bump bluebird dependency to ~1.0.0, fixing regression in Bluebird 1.0.2 (#176)

    0.5.5Jan 28, 2014
    • Fix for the exit code on the migrations cli (#151).
    • The init method in knex.migrate now uses this.config if one isn't passed in (#156)
    0.5.4Jan 7, 2014

    Fix for using raw statements in defaultTo schema builder methods (#146)

    0.5.3Jan 2, 2014

    Fix for incorrectly formed sql when aggregates are used with columns (#144)

    0.5.2Dec 18, 2013

    Adding passthrough "catch", "finally" to bluebird implementations, use bluebird's "nodeify" internally for exec

    0.5.1Dec 12, 2013
    • The returning in PostgreSQL may now accept * or an array of columns to return. If either of these are passed, the response will be an array of objects rather than an array of values. Updates may also now use a returning value. (#132)
    • Added bigint and bigserial type to PostgreSQL. (#111)
    • Fix for the specificType schema call (#118)
    • Several fixes for migrations, including migration file path fixes, passing a Promise constructor to the migration up and down methods, allowing the "knex" module to be used globally, file ordering on migrations, and other small improvements. (#112-115, #125, #135)
    0.5.0Nov 25, 2013
    • Initial pass at a migration api.
    • Aggregate methods are no longer aliased as "aggregate", but may now be aliased and have more than one aggregate in a query (#108, #110).
    • Adding bigint and bigserial to PostgreSQL (#111).
    • Bugfix on increment/decrement values (#100).
    • Bugfix with having method (#107).
    • Switched from when.js to bluebird for promise implementation, with shim for backward compatibility.
    • Switched from underscore to lodash, for semver reliability
    0.4.13Oct 31, 2013

    Fix for aggregate methods on toString and clone, (#98)

    0.4.12Oct 29, 2013

    Fix incorrect values passed to float in MySQL and decimal in PostgreSQL

    0.4.11Oct 15, 2013

    Fix potential sql injection vulnerability in orderBy, thanks to @sebgie

    0.4.10Oct 14, 2013
    • Added forUpdate and forShare for select modes in transactions. (#84)
    • Fix bug where current query chain type is not copied on clone. (#90)
    • Charset and collate are now added as methods on the schema builder. (#89)
    • Added into as an alias of from, for builder syntax of: insert(value).into(tableName)
    • Internal pool fixes. (#90)
    0.4.9Oct 7, 2013
    • Fix for documentation of hasColumn, ensure that hasColumn works with MySQL (#87).
    • More cleanup of error messages, showing the original error message concatenated with the sql and bindings
    0.4.8Oct 2, 2013

    Connections are no longer pushed back into the pool if they never existed to begin with (#85)

    0.4.7Sep 27, 2013

    The column is now a documented method on the builder api, and takes either an individual column or an array of columns to select

    0.4.6Sep 25, 2013

    Standardizing handling of errors for easier debugging, as noted in (#39)

    0.4.5Sep 24, 2013

    Fix for hasTable always returning true in MySQL (#82), fix where sql queries were duplicated with multiple calls on toSql with the schema builder

    0.4.4Sep 22, 2013

    Fix for debug method not properly debugging individual queries

    0.4.3Sep 18, 2013

    Fix for underscore not being defined in various grammar files

    0.4.2Sep 17, 2013

    Fix for an error being thrown when an initialized ClientBase instance was passed into Knex.initialize. pool.destroy now optionally accepts a callback to notify when it has completed draining and destroying all connections

    0.4.1Sep 16, 2013

    Cleanup from the 0.4.0 release, fix a potential exploit in "where" clauses pointed out by Andri Möll, fix for clients not being properly released from the pool #70, fix for where("foo", "<>", null) doing an "IS NULL" statement

    0.4.0Sep 13, 2013
    Breaking Changes:
    • Global state is no longer stored in the library, an instance is returned from Knex.initialize, so you will need to call this once and then reference this knex client elsewhere in your application.
    • Lowercasing of knex.raw, knex.transaction, and knex.schema.
    • Created columns are now nullable by default, unless notNullable is chained as an option.
    • Keys created with increments are now assumed to be unsigned (MySQL) by default.
    • The destroyAllNow is no longer called by the library on process.exit event. If you need to call it explicitly yourself, you may use knex.client.destroyPool
    0.2.6Aug 29, 2013

    Reject the transaction promise if the transaction "commit" fails, (#50)

    0.2.5Aug 25, 2013

    Fix error if a callback isn't specified for exec, (#49)

    0.2.4Aug 22, 2013

    Fix SQLite3 delete not returning affected row count, (#45)

    0.2.3Aug 22, 2013

    Fix insert with default values in PostgreSQL and SQLite3, (#44)

    0.2.2Aug 20, 2013

    Allowing Raw queries to be passed as the primary table names

    0.2.1Aug 13, 2013

    Fix for an array passed to insert being mutated

    0.2.0Aug 7, 2013
    Breaking changes:
    • hasTable now returns a boolean rather than a failed promise.
    • Changed syntax for insert in postgresql, where the id is not assumed on inserts (#18). The second parameter of insert is now required to return an array of insert id's for the last insert.
    • The timestamp method on the schema builder now uses a dateTime rather than a timestamp
    0.1.8July 7, 2013

    Somehow missing the != operator. Using .find rather than .where in getCommandsByName(#22)

    0.1.7June 12, 2013

    Ensures unhandled errors in the exec callback interface are re-thrown

    0.1.6June 9, 2013

    Renaming beforeCreate to afterCreate. Better handling of errors in the connection pooling

    0.1.5June 9, 2013

    Added the ability to specify beforeCreate and beforeDestroy hooks on the initialize's options.pool to perform any necessary database setup/teardown on connections before use (#14). where and having may now accept Knex.Raw instances, for consistency (#15). Added an orHaving method to the builder. The ability to specify bindings on Raw queries has been removed

    0.1.4May 22, 2013

    defaultTo now accepts "false" for boolean columns, allows for empty strings as default values

    0.1.3May 18, 2013

    Enabling table aliases (#11). Fix for issues with transactions not functioning (#12)

    0.1.2May 15, 2013

    Bug fixes for groupBy (#7). Mysql using collation, charset config settings in createTable. Added engine on schemaBuilder specifier (#6). Other doc fixes, tests

    0.1.1May 14, 2013

    Bug fixes for sub-queries, minor changes to initializing "main" instance, adding "pg" as a valid parameter for the client name in the connection settings

    0.1.0May 13, 2013

    Initial Knex release

    + + + + diff --git a/configuration/sources/shadow-generator/css/colorpicker.css b/configuration/sources/shadow-generator/css/colorpicker.css new file mode 100644 index 0000000..05b02b4 --- /dev/null +++ b/configuration/sources/shadow-generator/css/colorpicker.css @@ -0,0 +1,161 @@ +.colorpicker { + width: 356px; + height: 176px; + overflow: hidden; + position: absolute; + background: url(../images/colorpicker_background.png); + font-family: Arial, Helvetica, sans-serif; + display: none; +} +.colorpicker_color { + width: 150px; + height: 150px; + left: 14px; + top: 13px; + position: absolute; + background: #f00; + overflow: hidden; + cursor: crosshair; +} +.colorpicker_color div { + position: absolute; + top: 0; + left: 0; + width: 150px; + height: 150px; + background: url(../images/colorpicker_overlay.png); +} +.colorpicker_color div div { + position: absolute; + top: 0; + left: 0; + width: 11px; + height: 11px; + overflow: hidden; + background: url(../images/colorpicker_select.gif); + margin: -5px 0 0 -5px; +} +.colorpicker_hue { + position: absolute; + top: 13px; + left: 171px; + width: 35px; + height: 150px; + cursor: n-resize; +} +.colorpicker_hue div { + position: absolute; + width: 35px; + height: 9px; + overflow: hidden; + background: url(../images/colorpicker_indic.gif) left top; + margin: -4px 0 0 0; + left: 0px; +} +.colorpicker_new_color { + position: absolute; + width: 60px; + height: 30px; + left: 213px; + top: 13px; + background: #f00; +} +.colorpicker_current_color { + position: absolute; + width: 60px; + height: 30px; + left: 283px; + top: 13px; + background: #f00; +} +.colorpicker input { + background-color: transparent; + border: 1px solid transparent; + position: absolute; + font-size: 10px; + font-family: Arial, Helvetica, sans-serif; + color: #898989; + top: 4px; + right: 11px; + text-align: right; + margin: 0; + padding: 0; + height: 11px; +} +.colorpicker_hex { + position: absolute; + width: 72px; + height: 22px; + background: url(../images/colorpicker_hex.png) top; + left: 212px; + top: 142px; +} +.colorpicker_hex input { + right: 6px; +} +.colorpicker_field { + height: 22px; + width: 62px; + background-position: top; + position: absolute; +} +.colorpicker_field span { + position: absolute; + width: 12px; + height: 22px; + overflow: hidden; + top: 0; + right: 0; + cursor: n-resize; +} +.colorpicker_rgb_r { + background-image: url(../images/colorpicker_rgb_r.png); + top: 52px; + left: 212px; +} +.colorpicker_rgb_g { + background-image: url(../images/colorpicker_rgb_g.png); + top: 82px; + left: 212px; +} +.colorpicker_rgb_b { + background-image: url(../images/colorpicker_rgb_b.png); + top: 112px; + left: 212px; +} +.colorpicker_hsb_h { + background-image: url(../images/colorpicker_hsb_h.png); + top: 52px; + left: 282px; +} +.colorpicker_hsb_s { + background-image: url(../images/colorpicker_hsb_s.png); + top: 82px; + left: 282px; +} +.colorpicker_hsb_b { + background-image: url(../images/colorpicker_hsb_b.png); + top: 112px; + left: 282px; +} +.colorpicker_submit { + position: absolute; + width: 22px; + height: 22px; + background: url(../images/colorpicker_submit.png) top; + left: 322px; + top: 142px; + overflow: hidden; +} +.colorpicker_focus { + background-position: center; +} +.colorpicker_hex.colorpicker_focus { + background-position: bottom; +} +.colorpicker_submit.colorpicker_focus { + background-position: bottom; +} +.colorpicker_slider { + background-position: bottom; +} diff --git a/configuration/sources/shadow-generator/css/jqueryui.css b/configuration/sources/shadow-generator/css/jqueryui.css new file mode 100644 index 0000000..a2acb55 --- /dev/null +++ b/configuration/sources/shadow-generator/css/jqueryui.css @@ -0,0 +1,565 @@ +/* + * jQuery UI CSS Framework 1.8.18 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Theming/API + */ + +/* Layout helpers +----------------------------------*/ +.ui-helper-hidden { display: none; } +.ui-helper-hidden-accessible { position: absolute !important; clip: rect(1px 1px 1px 1px); clip: rect(1px,1px,1px,1px); } +.ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; } +.ui-helper-clearfix:before, .ui-helper-clearfix:after { content: ""; display: table; } +.ui-helper-clearfix:after { clear: both; } +.ui-helper-clearfix { zoom: 1; } +.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); } + + +/* Interaction Cues +----------------------------------*/ +.ui-state-disabled { cursor: default !important; } + + +/* Icons +----------------------------------*/ + +/* states and images */ +.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; } + + +/* Misc visuals +----------------------------------*/ + +/* Overlays */ +.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; } + + +/* + * jQuery UI CSS Framework 1.8.18 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Theming/API + * + * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Helvetica,%20Arial,%20sans-serif&fwDefault=normal&fsDefault=1.1em&cornerRadius=5px&bgColorHeader=545454&bgTextureHeader=04_highlight_hard.png&bgImgOpacityHeader=9&borderColorHeader=242424&fcHeader=ffffff&iconColorHeader=cccccc&bgColorContent=121212&bgTextureContent=12_gloss_wave.png&bgImgOpacityContent=8&borderColorContent=242424&fcContent=eeeeee&iconColorContent=bbbbbb&bgColorDefault=000000&bgTextureDefault=04_highlight_hard.png&bgImgOpacityDefault=12&borderColorDefault=000000&fcDefault=9c9c9c&iconColorDefault=666666&bgColorHover=2e2e2e&bgTextureHover=03_highlight_soft.png&bgImgOpacityHover=13&borderColorHover=0a0a0a&fcHover=e3e3e3&iconColorHover=c98000&bgColorActive=363636&bgTextureActive=04_highlight_hard.png&bgImgOpacityActive=9&borderColorActive=191919&fcActive=ffffff&iconColorActive=f29a00&bgColorHighlight=303030&bgTextureHighlight=04_highlight_hard.png&bgImgOpacityHighlight=55&borderColorHighlight=404040&fcHighlight=ebebeb&iconColorHighlight=aaaaaa&bgColorError=fef1ec&bgTextureError=02_glass.png&bgImgOpacityError=95&borderColorError=cd0a0a&fcError=cd0a0a&iconColorError=cd0a0a&bgColorOverlay=303030&bgTextureOverlay=01_flat.png&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=aaaaaa&bgTextureShadow=01_flat.png&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px + */ + + +/* Component containers +----------------------------------*/ +.ui-widget { font-family: Helvetica, Arial, sans-serif; font-size: 0.7em; } +.ui-widget .ui-widget { font-size: 1em; } +.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Helvetica, Arial, sans-serif; font-size: 1em; } +.ui-widget-content { border: 1px solid #353535; background: #121212 url(../images/ui-bg_gloss-wave_8_121212_500x100.png) 50% top repeat-x; color: #eeeeee; } +.ui-widget-content a { color: #eeeeee; } +.ui-widget-header { border: 1px solid #242424; background: #545454 url(../images/ui-bg_highlight-hard_9_545454_1x100.png) 50% 50% repeat-x; color: #ffffff; font-weight: bold; } +.ui-widget-header a { color: #ffffff; } + +/* Interaction states +----------------------------------*/ +.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #616161; background: #000000 url(../images/ui-bg_highlight-hard_12_000000_1x100.png) 50% 50% repeat-x; font-weight: normal; color: #9c9c9c; } +.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #9c9c9c; text-decoration: none; } +.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #616161; background: #2e2e2e url(../images/ui-bg_highlight-soft_13_2e2e2e_1x100.png) 50% 50% repeat-x; font-weight: normal; color: #e3e3e3; } +.ui-state-hover a, .ui-state-hover a:hover { color: #e3e3e3; text-decoration: none; } +.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #616161; background: #363636 url(../images/ui-bg_highlight-hard_9_363636_1x100.png) 50% 50% repeat-x; font-weight: normal; color: #ffffff; } +.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #ffffff; text-decoration: none; } +.ui-widget :active { outline: none; } + +/* Interaction Cues +----------------------------------*/ +.ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight {border: 1px solid #404040; background: #303030 url(../images/ui-bg_highlight-hard_55_303030_1x100.png) 50% top repeat-x; color: #ebebeb; } +.ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #ebebeb; } +.ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #cd0a0a; background: #fef1ec url(../images/ui-bg_glass_95_fef1ec_1x400.png) 50% 50% repeat-x; color: #cd0a0a; } +.ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #cd0a0a; } +.ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #cd0a0a; } +.ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; } +.ui-priority-secondary, .ui-widget-content .ui-priority-secondary, .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; } +.ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; } + +/* Icons +----------------------------------*/ + +/* states and images */ +.ui-icon { width: 16px; height: 16px; background-image: url(../images/ui-icons_bbbbbb_256x240.png); } +.ui-widget-content .ui-icon {background-image: url(../images/ui-icons_bbbbbb_256x240.png); } +.ui-widget-header .ui-icon {background-image: url(../images/ui-icons_cccccc_256x240.png); } +.ui-state-default .ui-icon { background-image: url(../images/ui-icons_666666_256x240.png); } +.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(../images/ui-icons_c98000_256x240.png); } +.ui-state-active .ui-icon {background-image: url(../images/ui-icons_f29a00_256x240.png); } +.ui-state-highlight .ui-icon {background-image: url(../images/ui-icons_aaaaaa_256x240.png); } +.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(../images/ui-icons_cd0a0a_256x240.png); } + +/* positioning */ +.ui-icon-carat-1-n { background-position: 0 0; } +.ui-icon-carat-1-ne { background-position: -16px 0; } +.ui-icon-carat-1-e { background-position: -32px 0; } +.ui-icon-carat-1-se { background-position: -48px 0; } +.ui-icon-carat-1-s { background-position: -64px 0; } +.ui-icon-carat-1-sw { background-position: -80px 0; } +.ui-icon-carat-1-w { background-position: -96px 0; } +.ui-icon-carat-1-nw { background-position: -112px 0; } +.ui-icon-carat-2-n-s { background-position: -128px 0; } +.ui-icon-carat-2-e-w { background-position: -144px 0; } +.ui-icon-triangle-1-n { background-position: 0 -16px; } +.ui-icon-triangle-1-ne { background-position: -16px -16px; } +.ui-icon-triangle-1-e { background-position: -32px -16px; } +.ui-icon-triangle-1-se { background-position: -48px -16px; } +.ui-icon-triangle-1-s { background-position: -64px -16px; } +.ui-icon-triangle-1-sw { background-position: -80px -16px; } +.ui-icon-triangle-1-w { background-position: -96px -16px; } +.ui-icon-triangle-1-nw { background-position: -112px -16px; } +.ui-icon-triangle-2-n-s { background-position: -128px -16px; } +.ui-icon-triangle-2-e-w { background-position: -144px -16px; } +.ui-icon-arrow-1-n { background-position: 0 -32px; } +.ui-icon-arrow-1-ne { background-position: -16px -32px; } +.ui-icon-arrow-1-e { background-position: -32px -32px; } +.ui-icon-arrow-1-se { background-position: -48px -32px; } +.ui-icon-arrow-1-s { background-position: -64px -32px; } +.ui-icon-arrow-1-sw { background-position: -80px -32px; } +.ui-icon-arrow-1-w { background-position: -96px -32px; } +.ui-icon-arrow-1-nw { background-position: -112px -32px; } +.ui-icon-arrow-2-n-s { background-position: -128px -32px; } +.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; } +.ui-icon-arrow-2-e-w { background-position: -160px -32px; } +.ui-icon-arrow-2-se-nw { background-position: -176px -32px; } +.ui-icon-arrowstop-1-n { background-position: -192px -32px; } +.ui-icon-arrowstop-1-e { background-position: -208px -32px; } +.ui-icon-arrowstop-1-s { background-position: -224px -32px; } +.ui-icon-arrowstop-1-w { background-position: -240px -32px; } +.ui-icon-arrowthick-1-n { background-position: 0 -48px; } +.ui-icon-arrowthick-1-ne { background-position: -16px -48px; } +.ui-icon-arrowthick-1-e { background-position: -32px -48px; } +.ui-icon-arrowthick-1-se { background-position: -48px -48px; } +.ui-icon-arrowthick-1-s { background-position: -64px -48px; } +.ui-icon-arrowthick-1-sw { background-position: -80px -48px; } +.ui-icon-arrowthick-1-w { background-position: -96px -48px; } +.ui-icon-arrowthick-1-nw { background-position: -112px -48px; } +.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; } +.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; } +.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; } +.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; } +.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; } +.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; } +.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; } +.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; } +.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; } +.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; } +.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; } +.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; } +.ui-icon-arrowreturn-1-w { background-position: -64px -64px; } +.ui-icon-arrowreturn-1-n { background-position: -80px -64px; } +.ui-icon-arrowreturn-1-e { background-position: -96px -64px; } +.ui-icon-arrowreturn-1-s { background-position: -112px -64px; } +.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; } +.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; } +.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; } +.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; } +.ui-icon-arrow-4 { background-position: 0 -80px; } +.ui-icon-arrow-4-diag { background-position: -16px -80px; } +.ui-icon-extlink { background-position: -32px -80px; } +.ui-icon-newwin { background-position: -48px -80px; } +.ui-icon-refresh { background-position: -64px -80px; } +.ui-icon-shuffle { background-position: -80px -80px; } +.ui-icon-transfer-e-w { background-position: -96px -80px; } +.ui-icon-transferthick-e-w { background-position: -112px -80px; } +.ui-icon-folder-collapsed { background-position: 0 -96px; } +.ui-icon-folder-open { background-position: -16px -96px; } +.ui-icon-document { background-position: -32px -96px; } +.ui-icon-document-b { background-position: -48px -96px; } +.ui-icon-note { background-position: -64px -96px; } +.ui-icon-mail-closed { background-position: -80px -96px; } +.ui-icon-mail-open { background-position: -96px -96px; } +.ui-icon-suitcase { background-position: -112px -96px; } +.ui-icon-comment { background-position: -128px -96px; } +.ui-icon-person { background-position: -144px -96px; } +.ui-icon-print { background-position: -160px -96px; } +.ui-icon-trash { background-position: -176px -96px; } +.ui-icon-locked { background-position: -192px -96px; } +.ui-icon-unlocked { background-position: -208px -96px; } +.ui-icon-bookmark { background-position: -224px -96px; } +.ui-icon-tag { background-position: -240px -96px; } +.ui-icon-home { background-position: 0 -112px; } +.ui-icon-flag { background-position: -16px -112px; } +.ui-icon-calendar { background-position: -32px -112px; } +.ui-icon-cart { background-position: -48px -112px; } +.ui-icon-pencil { background-position: -64px -112px; } +.ui-icon-clock { background-position: -80px -112px; } +.ui-icon-disk { background-position: -96px -112px; } +.ui-icon-calculator { background-position: -112px -112px; } +.ui-icon-zoomin { background-position: -128px -112px; } +.ui-icon-zoomout { background-position: -144px -112px; } +.ui-icon-search { background-position: -160px -112px; } +.ui-icon-wrench { background-position: -176px -112px; } +.ui-icon-gear { background-position: -192px -112px; } +.ui-icon-heart { background-position: -208px -112px; } +.ui-icon-star { background-position: -224px -112px; } +.ui-icon-link { background-position: -240px -112px; } +.ui-icon-cancel { background-position: 0 -128px; } +.ui-icon-plus { background-position: -16px -128px; } +.ui-icon-plusthick { background-position: -32px -128px; } +.ui-icon-minus { background-position: -48px -128px; } +.ui-icon-minusthick { background-position: -64px -128px; } +.ui-icon-close { background-position: -80px -128px; } +.ui-icon-closethick { background-position: -96px -128px; } +.ui-icon-key { background-position: -112px -128px; } +.ui-icon-lightbulb { background-position: -128px -128px; } +.ui-icon-scissors { background-position: -144px -128px; } +.ui-icon-clipboard { background-position: -160px -128px; } +.ui-icon-copy { background-position: -176px -128px; } +.ui-icon-contact { background-position: -192px -128px; } +.ui-icon-image { background-position: -208px -128px; } +.ui-icon-video { background-position: -224px -128px; } +.ui-icon-script { background-position: -240px -128px; } +.ui-icon-alert { background-position: 0 -144px; } +.ui-icon-info { background-position: -16px -144px; } +.ui-icon-notice { background-position: -32px -144px; } +.ui-icon-help { background-position: -48px -144px; } +.ui-icon-check { background-position: -64px -144px; } +.ui-icon-bullet { background-position: -80px -144px; } +.ui-icon-radio-off { background-position: -96px -144px; } +.ui-icon-radio-on { background-position: -112px -144px; } +.ui-icon-pin-w { background-position: -128px -144px; } +.ui-icon-pin-s { background-position: -144px -144px; } +.ui-icon-play { background-position: 0 -160px; } +.ui-icon-pause { background-position: -16px -160px; } +.ui-icon-seek-next { background-position: -32px -160px; } +.ui-icon-seek-prev { background-position: -48px -160px; } +.ui-icon-seek-end { background-position: -64px -160px; } +.ui-icon-seek-start { background-position: -80px -160px; } +/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */ +.ui-icon-seek-first { background-position: -80px -160px; } +.ui-icon-stop { background-position: -96px -160px; } +.ui-icon-eject { background-position: -112px -160px; } +.ui-icon-volume-off { background-position: -128px -160px; } +.ui-icon-volume-on { background-position: -144px -160px; } +.ui-icon-power { background-position: 0 -176px; } +.ui-icon-signal-diag { background-position: -16px -176px; } +.ui-icon-signal { background-position: -32px -176px; } +.ui-icon-battery-0 { background-position: -48px -176px; } +.ui-icon-battery-1 { background-position: -64px -176px; } +.ui-icon-battery-2 { background-position: -80px -176px; } +.ui-icon-battery-3 { background-position: -96px -176px; } +.ui-icon-circle-plus { background-position: 0 -192px; } +.ui-icon-circle-minus { background-position: -16px -192px; } +.ui-icon-circle-close { background-position: -32px -192px; } +.ui-icon-circle-triangle-e { background-position: -48px -192px; } +.ui-icon-circle-triangle-s { background-position: -64px -192px; } +.ui-icon-circle-triangle-w { background-position: -80px -192px; } +.ui-icon-circle-triangle-n { background-position: -96px -192px; } +.ui-icon-circle-arrow-e { background-position: -112px -192px; } +.ui-icon-circle-arrow-s { background-position: -128px -192px; } +.ui-icon-circle-arrow-w { background-position: -144px -192px; } +.ui-icon-circle-arrow-n { background-position: -160px -192px; } +.ui-icon-circle-zoomin { background-position: -176px -192px; } +.ui-icon-circle-zoomout { background-position: -192px -192px; } +.ui-icon-circle-check { background-position: -208px -192px; } +.ui-icon-circlesmall-plus { background-position: 0 -208px; } +.ui-icon-circlesmall-minus { background-position: -16px -208px; } +.ui-icon-circlesmall-close { background-position: -32px -208px; } +.ui-icon-squaresmall-plus { background-position: -48px -208px; } +.ui-icon-squaresmall-minus { background-position: -64px -208px; } +.ui-icon-squaresmall-close { background-position: -80px -208px; } +.ui-icon-grip-dotted-vertical { background-position: 0 -224px; } +.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; } +.ui-icon-grip-solid-vertical { background-position: -32px -224px; } +.ui-icon-grip-solid-horizontal { background-position: -48px -224px; } +.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; } +.ui-icon-grip-diagonal-se { background-position: -80px -224px; } + + +/* Misc visuals +----------------------------------*/ + +/* Corner radius */ +.ui-corner-all, .ui-corner-top, .ui-corner-left, .ui-corner-tl { -moz-border-radius-topleft: 5px; -webkit-border-top-left-radius: 5px; -khtml-border-top-left-radius: 5px; border-top-left-radius: 5px; } +.ui-corner-all, .ui-corner-top, .ui-corner-right, .ui-corner-tr { -moz-border-radius-topright: 5px; -webkit-border-top-right-radius: 5px; -khtml-border-top-right-radius: 5px; border-top-right-radius: 5px; } +.ui-corner-all, .ui-corner-bottom, .ui-corner-left, .ui-corner-bl { -moz-border-radius-bottomleft: 5px; -webkit-border-bottom-left-radius: 5px; -khtml-border-bottom-left-radius: 5px; border-bottom-left-radius: 5px; } +.ui-corner-all, .ui-corner-bottom, .ui-corner-right, .ui-corner-br { -moz-border-radius-bottomright: 5px; -webkit-border-bottom-right-radius: 5px; -khtml-border-bottom-right-radius: 5px; border-bottom-right-radius: 5px; } + +/* Overlays */ +.ui-widget-overlay { background: #303030 url(../images/ui-bg_flat_0_303030_40x100.png) 50% 50% repeat-x; opacity: .60;filter:Alpha(Opacity=60); } +.ui-widget-shadow { margin: -8px 0 0 -8px; padding: 8px; background: #aaaaaa url(../images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); -moz-border-radius: 8px; -khtml-border-radius: 8px; -webkit-border-radius: 8px; border-radius: 8px; }/* + * jQuery UI Resizable 1.8.18 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Resizable#theming + */ +.ui-resizable { position: relative;} +.ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block; } +.ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; } +.ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; } +.ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; } +.ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; } +.ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; } +.ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; } +.ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; } +.ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; } +.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}/* + * jQuery UI Selectable 1.8.18 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Selectable#theming + */ +.ui-selectable-helper { position: absolute; z-index: 100; border:1px dotted black; } +/* + * jQuery UI Accordion 1.8.18 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Accordion#theming + */ +/* IE/Win - Fix animation bug - #4615 */ +.ui-accordion { width: 100%; } +.ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; } +.ui-accordion .ui-accordion-li-fix { display: inline; } +.ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; } +.ui-accordion .ui-accordion-header a { display: block; font-size: 1em; padding: .5em .5em .5em .7em; } +.ui-accordion-icons .ui-accordion-header a { padding-left: 2.2em; } +.ui-accordion .ui-accordion-header .ui-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; } +.ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; margin-top: -2px; position: relative; top: 1px; margin-bottom: 2px; overflow: auto; display: none; zoom: 1; } +.ui-accordion .ui-accordion-content-active { display: block; } +/* + * jQuery UI Autocomplete 1.8.18 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Autocomplete#theming + */ +.ui-autocomplete { position: absolute; cursor: default; } + +/* workarounds */ +* html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */ + +/* + * jQuery UI Menu 1.8.18 + * + * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Menu#theming + */ +.ui-menu { + list-style:none; + padding: 2px; + margin: 0; + display:block; + float: left; +} +.ui-menu .ui-menu { + margin-top: -3px; +} +.ui-menu .ui-menu-item { + margin:0; + padding: 0; + zoom: 1; + float: left; + clear: left; + width: 100%; +} +.ui-menu .ui-menu-item a { + text-decoration:none; + display:block; + padding:.2em .4em; + line-height:1.5; + zoom:1; +} +.ui-menu .ui-menu-item a.ui-state-hover, +.ui-menu .ui-menu-item a.ui-state-active { + font-weight: normal; + margin: -1px; +} +/* + * jQuery UI Button 1.8.18 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Button#theming + */ +.ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; text-decoration: none !important; cursor: pointer; text-align: center; zoom: 1; overflow: hidden; *overflow: visible; } /* the overflow property removes extra width in IE */ +.ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */ +button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */ +.ui-button-icons-only { width: 3.4em; } +button.ui-button-icons-only { width: 3.7em; } + +/*button text element */ +.ui-button .ui-button-text { display: block; line-height: 1.4; } +.ui-button-text-only .ui-button-text { padding: .4em 1em; } +.ui-button-icon-only .ui-button-text, .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; } +.ui-button-text-icon-primary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; } +.ui-button-text-icon-secondary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 2.1em .4em 1em; } +.ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; } +/* no icon support for input elements, provide padding by default */ +input.ui-button { padding: .4em 1em; } + +/*button icon element(s) */ +.ui-button-icon-only .ui-icon, .ui-button-text-icon-primary .ui-icon, .ui-button-text-icon-secondary .ui-icon, .ui-button-text-icons .ui-icon, .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; } +.ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; } +.ui-button-text-icon-primary .ui-button-icon-primary, .ui-button-text-icons .ui-button-icon-primary, .ui-button-icons-only .ui-button-icon-primary { left: .5em; } +.ui-button-text-icon-secondary .ui-button-icon-secondary, .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; } +.ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; } + +/*button sets*/ +.ui-buttonset { margin-right: 0px; } +.ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; } + +/* workarounds */ +button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */ +/* + * jQuery UI Dialog 1.8.18 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Dialog#theming + */ +.ui-dialog { position: absolute; padding: .2em; width: 300px; overflow: hidden; } +.ui-dialog .ui-dialog-titlebar { padding: .4em 1em; position: relative; } +.ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .1em 0; } +.ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; } +.ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; } +.ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; } +.ui-dialog .ui-dialog-content { position: relative; border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; } +.ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; } +.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { float: right; } +.ui-dialog .ui-dialog-buttonpane button { margin: .5em .4em .5em 0; cursor: pointer; } +.ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; } +.ui-draggable .ui-dialog-titlebar { cursor: move; } +/* + * jQuery UI Slider 1.8.18 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Slider#theming + */ +.ui-slider { position: relative; text-align: left; } +.ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; } +.ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; } + +.ui-slider-horizontal { height: .8em; } +.ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; } +.ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; } +.ui-slider-horizontal .ui-slider-range-min { left: 0; } +.ui-slider-horizontal .ui-slider-range-max { right: 0; } + +.ui-slider-vertical { width: .8em; height: 100px; } +.ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; } +.ui-slider-vertical .ui-slider-range { left: 0; width: 100%; } +.ui-slider-vertical .ui-slider-range-min { bottom: 0; } +.ui-slider-vertical .ui-slider-range-max { top: 0; }/* + * jQuery UI Tabs 1.8.18 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Tabs#theming + */ +.ui-tabs { position: relative; padding: .2em; zoom: 1; } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */ +.ui-tabs .ui-tabs-nav { margin: 0; padding: .2em .2em 0; } +.ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 1px; margin: 0 .2em 1px 0; border-bottom: 0 !important; padding: 0; white-space: nowrap; } +.ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; } +.ui-tabs .ui-tabs-nav li.ui-tabs-selected { margin-bottom: 0; padding-bottom: 1px; } +.ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; } +.ui-tabs .ui-tabs-nav li a, .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */ +.ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 1em 1.4em; background: none; } +.ui-tabs .ui-tabs-hide { display: none !important; } +/* + * jQuery UI Datepicker 1.8.18 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Datepicker#theming + */ +.ui-datepicker { width: 17em; padding: .2em .2em 0; display: none; } +.ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; } +.ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; } +.ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { top: 1px; } +.ui-datepicker .ui-datepicker-prev { left:2px; } +.ui-datepicker .ui-datepicker-next { right:2px; } +.ui-datepicker .ui-datepicker-prev-hover { left:1px; } +.ui-datepicker .ui-datepicker-next-hover { right:1px; } +.ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px; } +.ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; } +.ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; } +.ui-datepicker select.ui-datepicker-month-year {width: 100%;} +.ui-datepicker select.ui-datepicker-month, +.ui-datepicker select.ui-datepicker-year { width: 49%;} +.ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; } +.ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0; } +.ui-datepicker td { border: 0; padding: 1px; } +.ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; } +.ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; } +.ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; } +.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; } + +/* with multiple calendars */ +.ui-datepicker.ui-datepicker-multi { width:auto; } +.ui-datepicker-multi .ui-datepicker-group { float:left; } +.ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; } +.ui-datepicker-multi-2 .ui-datepicker-group { width:50%; } +.ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; } +.ui-datepicker-multi-4 .ui-datepicker-group { width:25%; } +.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; } +.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; } +.ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; } +.ui-datepicker-row-break { clear:both; width:100%; font-size:0em; } + +/* RTL support */ +.ui-datepicker-rtl { direction: rtl; } +.ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; } +.ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; } +.ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; } +.ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; } +.ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; } +.ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; } +.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; } +.ui-datepicker-rtl .ui-datepicker-group { float:right; } +.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; } +.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; } + +/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */ +.ui-datepicker-cover { + display: none; /*sorry for IE5*/ + display/**/: block; /*sorry for IE5*/ + position: absolute; /*must have*/ + z-index: -1; /*must have*/ + filter: mask(); /*must have*/ + top: -4px; /*must have*/ + left: -4px; /*must have*/ + width: 200px; /*must have*/ + height: 200px; /*must have*/ +}/* + * jQuery UI Progressbar 1.8.18 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Progressbar#theming + */ +.ui-progressbar { height:2em; text-align: left; overflow: hidden; } +.ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; } diff --git a/configuration/sources/shadow-generator/css/layout.css b/configuration/sources/shadow-generator/css/layout.css new file mode 100644 index 0000000..8b3f00f --- /dev/null +++ b/configuration/sources/shadow-generator/css/layout.css @@ -0,0 +1,218 @@ +body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,input,textarea,p,blockquote,th,td { + margin:0; + padding:0; +} +table { + border-collapse:collapse; + border-spacing:0; +} +fieldset,img { + border:0; +} +address,caption,cite,code,dfn,em,strong,th,var { + font-style:normal; + font-weight:normal; +} +ol,ul { + list-style:none; +} +caption,th { + text-align:left; +} +h1,h2,h3,h4,h5,h6 { + font-size:100%; + font-weight:normal; +} +q:before,q:after { + content:''; +} +abbr,acronym { border:0; +} +html, body { + background-color: #fff; + font-family: Arial, Helvetica, sans-serif; + font-size: 12px; + line-height: 18px; + color: #52697E; +} +body { + text-align: center; + overflow: auto; +} +.wrapper { + width: 700px; + margin: 0 auto; + text-align: left; +} +h1 { + font-size: 21px; + height: 47px; + line-height: 47px; + text-transform: uppercase; +} +.navigationTabs { + height: 23px; + line-height: 23px; + border-bottom: 1px solid #ccc; +} +.navigationTabs li { + float: left; + height: 23px; + line-height: 23px; + padding-right: 3px; +} +.navigationTabs li a{ + float: left; + dispaly: block; + height: 23px; + line-height: 23px; + padding: 0 10px; + overflow: hidden; + color: #52697E; + background-color: #eee; + position: relative; + text-decoration: none; +} +.navigationTabs li a:hover { + background-color: #f0f0f0; +} +.navigationTabs li a.active { + background-color: #fff; + border: 1px solid #ccc; + border-bottom: 0px solid; +} +.tabsContent { + border: 1px solid #ccc; + border-top: 0px solid; + width: 698px; + overflow: hidden; +} +.tab { + padding: 16px; + display: none; +} +.tab h2 { + font-weight: bold; + font-size: 16px; +} +.tab h3 { + font-weight: bold; + font-size: 14px; + margin-top: 20px; +} +.tab p { + margin-top: 16px; + clear: both; +} +.tab ul { + margin-top: 16px; + list-style: disc; +} +.tab li { + margin: 10px 0 0 35px; +} +.tab a { + color: #8FB0CF; +} +.tab strong { + font-weight: bold; +} +.tab pre { + font-size: 11px; + margin-top: 20px; + width: 668px; + overflow: auto; + clear: both; +} +.tab table { + width: 100%; +} +.tab table td { + padding: 6px 10px 6px 0; + vertical-align: top; +} +.tab dt { + margin-top: 16px; +} + +#colorSelector { + position: relative; + width: 36px; + height: 36px; + background: url(../images/select.png); +} +#colorSelector div { + position: absolute; + top: 3px; + left: 3px; + width: 30px; + height: 30px; + background: url(../images/select.png) center; +} +#colorSelector2 { + position: absolute; + top: 0; + left: 0; + width: 36px; + height: 36px; + background: url(../images/select2.png); +} +#colorSelector2 div { + position: absolute; + top: 4px; + left: 4px; + width: 28px; + height: 28px; + background: url(../images/select2.png) center; +} +#colorpickerHolder2 { + top: 32px; + left: 0; + width: 356px; + height: 0; + overflow: hidden; + position: absolute; +} +#colorpickerHolder2 .colorpicker { + background-image: url(../images/custom_background.png); + position: absolute; + bottom: 0; + left: 0; +} +#colorpickerHolder2 .colorpicker_hue div { + background-image: url(../images/custom_indic.gif); +} +#colorpickerHolder2 .colorpicker_hex { + background-image: url(../images/custom_hex.png); +} +#colorpickerHolder2 .colorpicker_rgb_r { + background-image: url(../images/custom_rgb_r.png); +} +#colorpickerHolder2 .colorpicker_rgb_g { + background-image: url(../images/custom_rgb_g.png); +} +#colorpickerHolder2 .colorpicker_rgb_b { + background-image: url(../images/custom_rgb_b.png); +} +#colorpickerHolder2 .colorpicker_hsb_s { + background-image: url(../images/custom_hsb_s.png); + display: none; +} +#colorpickerHolder2 .colorpicker_hsb_h { + background-image: url(../images/custom_hsb_h.png); + display: none; +} +#colorpickerHolder2 .colorpicker_hsb_b { + background-image: url(../images/custom_hsb_b.png); + display: none; +} +#colorpickerHolder2 .colorpicker_submit { + background-image: url(../images/custom_submit.png); +} +#colorpickerHolder2 .colorpicker input { + color: #778398; +} +#customWidget { + position: relative; + height: 36px; +} diff --git a/configuration/sources/shadow-generator/css/presets.css b/configuration/sources/shadow-generator/css/presets.css new file mode 100644 index 0000000..fa5759f --- /dev/null +++ b/configuration/sources/shadow-generator/css/presets.css @@ -0,0 +1,76 @@ +#preset-1 +{ + text-shadow: 0px -1px 4px #f5f500, 0px -4px 8px #e07b00, 0px -5px 16px #ff1100; + -webkit-text-shadow: 0px -1px 4px #f5f500, 0px -4px 8px #e07b00, 0px -5px 16px #ff1100; + -moz-text-shadow: 0px -1px 4px #f5f500, 0px -4px 8px #e07b00, 0px -5px 16px #ff1100; + -o-text-shadow: 0px -1px 4px #f5f500, 0px -4px 8px #e07b00, 0px -5px 16px #ff1100; + -ms-text-shadow: 0px -1px 4px #f5f500, 0px -4px 8px #e07b00, 0px -5px 16px #ff1100; +} + +#preset-2 +{ + text-shadow: 0px 0px 3px #ff1cff, 0px 0px 7px #b314b3, 0px 0px 10px #850d85, 0px 0px 16px #470b47, 0px 0px 23px #290029; + -webkit-text-shadow: 0px 0px 3px #ff1cff, 0px 0px 7px #b314b3, 0px 0px 10px #850d85, 0px 0px 16px #470b47, 0px 0px 23px #290029; + -moz-text-shadow: 0px 0px 3px #ff1cff, 0px 0px 7px #b314b3, 0px 0px 10px #850d85, 0px 0px 16px #470b47, 0px 0px 23px #290029; + -o-text-shadow: 0px 0px 3px #ff1cff, 0px 0px 7px #b314b3, 0px 0px 10px #850d85, 0px 0px 16px #470b47, 0px 0px 23px #290029; + -ms-text-shadow: 0px 0px 3px #ff1cff, 0px 0px 7px #b314b3, 0px 0px 10px #850d85, 0px 0px 16px #470b47, 0px 0px 23px #290029; +} + +#preset-3 +{ + text-shadow: 1px 1px 0px #7700ff, 1px -1px 0px #0040ff, -1px -1px 0px #ff0048, -1px 1px 0px #ffdd00; + -webkit-text-shadow: 1px 1px 0px #7700ff, 1px -1px 0px #0040ff, -1px -1px 0px #ff0048, -1px 1px 0px #ffdd00; + -moz-text-shadow: 1px 1px 0px #7700ff, 1px -1px 0px #0040ff, -1px -1px 0px #ff0048, -1px 1px 0px #ffdd00; + -o-text-shadow: 1px 1px 0px #7700ff, 1px -1px 0px #0040ff, -1px -1px 0px #ff0048, -1px 1px 0px #ffdd00; + -ms-text-shadow: 1px 1px 0px #7700ff, 1px -1px 0px #0040ff, -1px -1px 0px #ff0048, -1px 1px 0px #ffdd00; +} + +#preset-4 div +{ + box-shadow: 0px 0px 30px 7px #d7e854, 0px 0px 3px 0px #c0d900 inset; + -webkit-box-shadow: 0px 0px 30px 7px #d7e854, 0px 0px 3px 0px #c0d900 inset; + -moz-box-shadow: 0px 0px 30px 7px #d7e854, 0px 0px 3px 0px #c0d900 inset; + -o-box-shadow: 0px 0px 30px 7px #d7e854, 0px 0px 3px 0px #c0d900 inset; + -ms-box-shadow: 0px 0px 30px 7px #d7e854, 0px 0px 3px 0px #c0d900 inset; +} + +#preset-5 div +{ + box-shadow: -3px 0px 6px 0px #0fa37e, 3px 3px 6px 0px #ff0033, 3px -3px 6px 0px #ffea00; + -webkit-box-shadow: -3px 0px 6px 0px #0fa37e, 3px 3px 6px 0px #ff0033, 3px -3px 6px 0px #ffea00; + -moz-box-shadow: -3px 0px 6px 0px #0fa37e, 3px 3px 6px 0px #ff0033, 3px -3px 6px 0px #ffea00; + -o-box-shadow: -3px 0px 6px 0px #0fa37e, 3px 3px 6px 0px #ff0033, 3px -3px 6px 0px #ffea00; + -ms-box-shadow: -3px 0px 6px 0px #0fa37e, 3px 3px 6px 0px #ff0033, 3px -3px 6px 0px #ffea00; +} + +#preset-6 div +{ + box-shadow: 0px 0px 11px 1px #000000 inset; + -webkit-box-shadow: 0px 0px 11px 1px #000000 inset; + -moz-box-shadow: 0px 0px 11px 1px #000000 inset; + -o-box-shadow: 0px 0px 11px 1px #000000 inset; + -ms-box-shadow: 0px 0px 11px 1px #000000 inset; + text-shadow: 0px 0px 5px #000000; + -webkit-text-shadow: 0px 0px 5px #000000; + -moz-text-shadow: 0px 0px 5px #000000; + -o-text-shadow: 0px 0px 5px #000000; + -ms-text-shadow: 0px 0px 5px #000000; +} + +#preset-7 +{ + text-shadow: 0px -1px 4px #85f5d9, 0px -4px 8px #00ff8c, 0px -5px 16px #003369; + -webkit-text-shadow: 0px -1px 4px #85f5d9, 0px -4px 8px #00ff8c, 0px -5px 16px #003369; + -moz-text-shadow: 0px -1px 4px #85f5d9, 0px -4px 8px #00ff8c, 0px -5px 16px #003369; + -o-text-shadow: 0px -1px 4px #85f5d9, 0px -4px 8px #00ff8c, 0px -5px 16px #003369; + -ms-text-shadow: 0px -1px 4px #85f5d9, 0px -4px 8px #00ff8c, 0px -5px 16px #003369; +} + +#preset-8 +{ + text-shadow: 12px 12px 11px #938cc9, -15px 2px 16px #80bbd6, 3px -4px 22px #3c48d6, -6px 10px 27px #a3edff, 0px 0px 11px #ffffff; + -webkit-text-shadow: 12px 12px 11px #938cc9, -15px 2px 16px #80bbd6, 3px -4px 22px #3c48d6, -6px 10px 27px #a3edff, 0px 0px 11px #ffffff; + -moz-text-shadow: 12px 12px 11px #938cc9, -15px 2px 16px #80bbd6, 3px -4px 22px #3c48d6, -6px 10px 27px #a3edff, 0px 0px 11px #ffffff; + -o-text-shadow: 12px 12px 11px #938cc9, -15px 2px 16px #80bbd6, 3px -4px 22px #3c48d6, -6px 10px 27px #a3edff, 0px 0px 11px #ffffff; + -ms-text-shadow: 12px 12px 11px #938cc9, -15px 2px 16px #80bbd6, 3px -4px 22px #3c48d6, -6px 10px 27px #a3edff, 0px 0px 11px #ffffff; +} diff --git a/configuration/sources/shadow-generator/css/shadowgen.css b/configuration/sources/shadow-generator/css/shadowgen.css new file mode 100644 index 0000000..1010980 --- /dev/null +++ b/configuration/sources/shadow-generator/css/shadowgen.css @@ -0,0 +1,516 @@ +body +{ + background-color: #292929; + font-family: 'Asap', sans-serif; + color: #E3E3E3; + -moz-user-select: -moz-none; + -khtml-user-select: none; + -webkit-user-select: none; + user-select: none; +} + +h1 +{ + margin-top: 3px; + margin-bottom: 17px; + text-shadow: 0px 0px 9px #2D2D2D; + -moz-text-shadow: 0px 0px 9px #2D2D2D; + -o-text-shadow: 0px 0px 9px #2D2D2D; + -ms-text-shadow: 0px 0px 9px #2D2D2D; + -webkit-text-shadow: 0px 0px 9px #2D2D2D; +} + +fieldset +{ + margin-bottom: 12px; + padding: 12px; + padding-top: 9px; + border: 2px solid #656565; + box-shadow: 0px 0px 17px #1A1A1A; + border-radius: 8px; + -moz-border-radius: 8px; + -o-border-radius: 8px; + -ms-border-radius: 8px; + -webkit-border-radius: 8px; +} + +legend +{ + padding: 4px 6px; + font-size: 13px; + font-weight: bold; + color: #8C8C8C; + background-color: black; + box-shadow: 0px 0px 4px black; + border-radius: 5px; + -moz-border-radius: 5px; + -o-border-radius: 5px; + -webkit-border-radius: 5px; + -ms-border-radius: 5px; +} + +label +{ + font-size: 15px; +} + +legend, .button +{ + font-family: 'Armata', sans-serif; +} + +.clear +{ + clear: both; +} + +.strong +{ + font-weight: bold; +} + +/* Page layout */ + +div.wrapper +{ + width: 900px; + margin: 0px auto; +} + +div.main +{ + background-color: black; + border: 2px solid #0E0E0E; + margin-top: 36px; + padding: 18px; + box-shadow: 0px 0px 10px #080808; + -moz-box-shadow: 0px 0px 10px #080808; + -o-box-shadow: 0px 0px 10px #080808; + -ms-box-shadow: 0px 0px 10px #080808; + -webkit-box-shadow: 0px 0px 10px #080808; +} + +div.left-pane +{ + float: left; + width: 510px; +} + +div.right-pane +{ + float: right; + width: 342px; +} + +div.inner-pane +{ + padding: 5px 6px; +} + +div.form-field +{ + margin-bottom: 3px; +} + +fieldset label +{ + float: left; +} + +fieldset input, fieldset .colorfield +{ + float: right; +} + +fieldset .colorfield input +{ + display: none; +} + +/* Preview area */ + +textarea#preview +{ + display: block; + width: 100%; + /* width: 40px; */ + height: 100px; + padding: 8px; + font-family: 'Asap', sans-serif; + font-size: 26px; + box-sizing: border-box; + -moz-box-sizing: border-box; + -o-box-sizing: border-box; + -ms-box-sizing: border-box; + -webkit-box-sizing: border-box; + background-color: #4E4E4E; + color: white; + border: 0px; + border-collapse: separate; +} + +fieldset#fieldset_preview +{ + padding: 18px; +} + +/* Listbox element */ +.listbox +{ + background-color: #121212; + border: 1px solid #212121; + height: 250px; + overflow: auto; +} + +.listbox-item +{ + color: #CACACA; + padding: 6px 8px 6px 5px; + font-size: 15px; + height: 17px; + background: #0B0B0C; + background: -moz-linear-gradient(top, #0B0B0C 0%, #000000 100%); + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#0B0B0C), color-stop(100%,#000000)); + background: -webkit-linear-gradient(top, #0B0B0C 0%,#000000 100%); + background: -o-linear-gradient(top, #0B0B0C 0%,#000000 100%); + background: -ms-linear-gradient(top, #0B0B0C 0%,#000000 100%); + background: linear-gradient(top, #0B0B0C 0%,#000000 100%); +} + +.listbox-item:hover +{ + color: white; + background: #19191c; + background: -moz-linear-gradient(top, #19191c 0%, #0F0F0F 100%); + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#19191c), color-stop(100%,#0F0F0F)); + background: -webkit-linear-gradient(top, #19191c 0%,#0F0F0F 100%); + background: -o-linear-gradient(top, #19191c 0%,#0F0F0F 100%); + background: -ms-linear-gradient(top, #19191c 0%,#0F0F0F 100%); + background: linear-gradient(top, #19191c 0%,#0F0F0F 100%); +} + +.listbox-item.selected +{ + color: white; + background: #303038; + background: -moz-linear-gradient(top, #303038 0%, #212121 100%); + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#303038), color-stop(100%,#212121)); + background: -webkit-linear-gradient(top, #303038 0%,#212121 100%); + background: -o-linear-gradient(top, #303038 0%,#212121 100%); + background: -ms-linear-gradient(top, #303038 0%,#212121 100%); + background: linear-gradient(top, #303038 0%,#212121 100%); +} + +.listbox-item-placeholder +{ + color: #CACACA; + padding: 6px 8px; + font-size: 15px; + height: 17px; + background: #0A0A0A; +} + +.listbox-header +{ + margin-top: 10px; + margin-left: 5px; + margin-bottom: 2px; + font-weight: bold; + font-size: 14px; +} + +a.listbox-button +{ + display: block; + float: left; + padding: 7px 0px; + width: 50%; + text-align: center; + font-size: 24px; + font-weight: bold; + color: #CACACA; + text-decoration: none; + background: #101011; + background: -moz-linear-gradient(top, #101011 0%, #000000 100%); + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#101011), color-stop(100%,#000000)); + background: -webkit-linear-gradient(top, #101011 0%,#000000 100%); + background: -o-linear-gradient(top, #101011 0%,#000000 100%); + background: -ms-linear-gradient(top, #101011 0%,#000000 100%); + background: linear-gradient(top, #101011 0%,#000000 100%); + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#101011', endColorstr='#000000',GradientType=0 ); +} + +a.listbox-button:hover, a.listbox-button:active +{ + color: white; +} + +a.listbox-button:hover +{ + background: #181819; + background: -moz-linear-gradient(top, #181819 0%, #000000 100%); + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#181819), color-stop(100%,#000000)); + background: -webkit-linear-gradient(top, #181819 0%,#000000 100%); + background: -o-linear-gradient(top, #181819 0%,#000000 100%); + background: -ms-linear-gradient(top, #181819 0%,#000000 100%); + background: linear-gradient(top, #181819 0%,#000000 100%); + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#181819', endColorstr='#000000',GradientType=0 ); +} + +a.listbox-button:active +{ + background: #2e2e30; + background: -moz-linear-gradient(top, #2e2e30 0%, #0f0f0f 100%); + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#2e2e30), color-stop(100%,#0f0f0f)); + background: -webkit-linear-gradient(top, #2e2e30 0%,#0f0f0f 100%); + background: -o-linear-gradient(top, #2e2e30 0%,#0f0f0f 100%); + background: -ms-linear-gradient(top, #2e2e30 0%,#0f0f0f 100%); + background: linear-gradient(top, #2e2e30 0%,#0f0f0f 100%); + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#2e2e30', endColorstr='#0f0f0f',GradientType=0 ); +} + +/* Color picker button */ + +.colorbutton +{ + background-image: url(../images/select5.png); + background-position: -1px -2px; + border: 1px solid #DEDEDE; + border-radius: 5px; + -moz-border-radius: 5px; + -o-border-radius: 5px; + -ms-border-radius: 5px; + -webkit-border-radius: 5px; + width: 21px; + height: 21px; +} + +/* Form layout */ + +.form-element +{ + margin-bottom: 7px; +} + +.form-field +{ + float: right; +} + +/* Top menu */ + +.header h1 +{ + float: left; +} + +.header-buttons +{ + float: right; + margin-top: 4px; +} + +.header-buttons a +{ + display: block; + float: left; + border: 1px solid gray; + border-left: 0px; + padding: 10px 13px; + text-decoration: none; + color: #E3E3E3; + font-size: 15px; + transition-property:color, background-color; + transition-duration: .15s, .15s; + transition-timing-function: ease-in-out, ease-in-out; + -moz-transition-property:color, background-color; + -moz-transition-duration: .15s, .15s; + -moz-transition-timing-function: ease-in-out, ease-in-out; + -webkit-transition-property:color, background-color; + -webkit-transition-duration: .15s, .15s; + -webkit-transition-timing-function: ease-in-out, ease-in-out; +} + +.header-buttons a:hover +{ + color: white; + background-color: #171717; + transition-property:color, background-color; + transition-duration: .15s, .15s; + transition-timing-function: ease-in-outl, ease-in-out; + -moz-transition-property:color, background-color; + -moz-transition-duration: .15s, .15s; + -moz-transition-timing-function: ease-in-out, ease-in-out; + -webkit-transition-property:color, background-color; + -webkit-transition-duration: .15s, .15s; + -webkit-transition-timing-function: ease-in-out, ease-in-out; +} + +.header-buttons a:first-child +{ + border-left: 1px solid gray; + border-radius: 20px 0px 0px 20px; + -moz-border-radius: 20px 0px 0px 20px; + -o-border-radius: 20px 0px 0px 20px; + -ms-border-radius: 20px 0px 0px 20px; + -webkit-border-radius: 20px 0px 0px 20px; +} + +.header-buttons a:nth-last-child(2) +{ + border-radius: 0px 20px 20px 0px; + -moz-border-radius: 0px 20px 20px 0px; + -o-border-radius: 0px 20px 20px 0px; + -ms-border-radius: 0px 20px 20px 0px; + -webkit-border-radius: 0px 20px 20px 0px; +} + +/* Special */ + +.layer-id +{ + display: none; +} + +.tools +{ + margin: 1px; + float: right; +} + +.tools img +{ + margin-left: 4px; +} + +#settings label +{ + margin-top: 4px; +} + +#settings label.buttonset +{ + margin-top: 6px; +} + +.slider, .slider-negative +{ + width: 180px; + margin-top: 6px; + float: right; +} + +.slider-field input +{ + width: 30px; + margin-left: 12px; + float: right; + background-color: black; + border: 1px solid #212121; + color: white; + font-size: 12px; + padding: 2px; +} + +/* Dialogs */ + +#dialog_confirm_deletion, #dialog_code, #dialog_save, #dialog_load, #dialog_rename, #dialog_confirm_clear, #dialog_presets +{ + display: none; +} + +#dialog_code, #dialog_save, #dialog_load, #dialog_rename +{ + text-align: center; +} + +#dialog_code textarea, #dialog_save textarea, #dialog_load textarea +{ + height: 180px; +} + +#dialog_code textarea, #dialog_save textarea, #dialog_load textarea, #dialog_rename input +{ + width: 450px; + background-color: black; + border: 1px solid #212121; + color: white; + padding: 6px; +} + +#dialog_presets ul +{ + list-style-type: none; + margin: 0px; + padding: 0px; +} + +#dialog_presets li +{ + width: 100px; + height: 100px; + padding: 14px; + margin: 7px; + overflow: hidden; + float: left; + background-color: #232323; + border: 1px solid transparent; + font-size: 42px; +} + +#dialog_presets li:hover +{ + border: 1px solid silver; +} + +#dialog_presets li .preset-test +{ + width: 80px; + height: 80px; + margin: 5px; + background-color: black; + overflow: hidden; + font-size: 36px; + padding: 5px; +} + +/* Sortables */ + +.sortable +{ +list-style-type: none; +margin: 0px; +padding: 0px; +} + +.sortable li +{ +margin: 0px; +} + +#fieldset_settings +{ + position: relative; +} + +#start_arrow +{ + position: absolute; + left: 235px; + top: 135px; +} + +/* Hacks */ + +.colorpicker_submit +{ + display: none; +} + +.handle +{ + float: left; + margin-right: 3px; + margin-top: 1px; +} diff --git a/configuration/sources/shadow-generator/images/Thumbs.db b/configuration/sources/shadow-generator/images/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..d396c36dd87185c82fdc303e5736e526634ec549 GIT binary patch literal 19968 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 literal 0 HcmV?d00001 diff --git a/configuration/sources/shadow-generator/images/colorpicker_background.png b/configuration/sources/shadow-generator/images/colorpicker_background.png new file mode 100644 index 0000000000000000000000000000000000000000..8401572f1939a1a24c1963513573b0194ad36ee0 GIT binary patch literal 1897 zcmY*a3pATo9RCoHhLk=v9+hya?P*IB^(tbYgf7-$bhEY|(I?UtUPi9vs#R ziy#P&{yr@fLG&2ly2iu^RFBrRRp1Ms>i=nK7%MiF8HO#xOG2 z_n6)YVr)vMq5IN*f2sWccT3)gRvu2oXh6my%^v}*O;ra5-< zrfBywZT3aSz8bWP1#@=ep&&&2r%2Xx zddEiY1@l}|b6YxdaO6Q`RJq3)wtKZi&2z5yNzot36|pnd_gApH!?MH9gq?hIkpDQ? zoi#k4#OM3Qvsl*nW+NM0+h-~TfAN~J`Np!FYfHA<4F{vc3Gd`y^@%F1#Ljo6xgBMf z>q*?e(2(gjbtEPC06P3(T2t>_N`opfT&(A|#nr9ubq;Roe8EGc50&a+@Ca&D8N&V5 zfWzVZ*wTW^c5k?}vCRiBX+63NTRRx9IULPb=kLtbG7G2PR9LSNtF=j!&s8JxkH+I- zofPjPqCAy{x*V^kY%4z8I+~=}5Ut2+RB9hQnF-=Yy8f)_*S6oz?C#RkmvpMq7QP(o zbZ!bUKi!a-F8i&JTjM>>TAUAmd?)cz-HnW2PWdWk#$QRa^0SMsE*Ei8-<`C&zPP^R zdHWR`(Q|r$)T?{(gtteqpleg1llyjZ0ZVLw8leHw(a;G~vcN1Y>6s-e44f7NN&vzO zSzky!K z<_U2aPpuI;9PaSb&;Ej+#b@gJvw)$&8ZCQ!O0HDG-5Ryk0-~ziB-tPWKJK=>?ocx|gRt#KYNSCK| zmrMW=4om~tMIU%ONCY$t9RcY(kaUNR#1=v%^?pW-QzJnZCkAr|iCQDD687K8FZ`q_ zi57h%KMX!lwtAe@@x)l}04zNB(A4Qum^BC!^1cdZ=xa=ei3OvQ+5@W08>NszykE}f zv?z;H%6*$BjvuB;iP6rpc{~#`#C$juv62eaJ-(#wzbS@&`|x8xR0#<2lFZ9l84oq~ z)RtYb1_uH_On@$HmKKWl$={|vFVC?D2S?ere)+Ii3ZCYJc1u{wg0CgRowk%p6z-vm z25al~YDe{K&MKf#`#$i4g$_`C3_gpv%r}IrbhdU7n7ws`iL~u?7mnTC+5f*Z3oqn> z!F~y5)zR3`!AmrFCO)o-qINJDjGjk AumAu6 literal 0 HcmV?d00001 diff --git a/configuration/sources/shadow-generator/images/colorpicker_hex.png b/configuration/sources/shadow-generator/images/colorpicker_hex.png new file mode 100644 index 0000000000000000000000000000000000000000..4e532d7c65393fe56d7463e1da3faa591f03de84 GIT binary patch literal 532 zcmV+v0_**WP)h+v*8l*BQUCyPMF0TmW&i*=2LJ#e`2#0~ zRsaA2nn^@KRCwC#n6YcZKorKmBnM{5VnN~}9ReD%Nhj%)e@2UckI?wn+*F*3;85I( zxENdy>|*I~AlHjh(Li4w_e~$k1>TSMlH7e>k|a?SftQq0B8sB@e$Nc7)9DBRzVCyb z1b`q2c!CKbZg`U5o2itl0Sv%)yQM?b>-9{KyTHhep8?|QckHZYvzcW~5d<@9^YvHp ztN^T5E7MqasmZKO0Qfo_tQD_Cp^cRCbkSPY3PWmOrwUtP=mYq!XfhrH$n!kUb8V{2 z2zJb@O#p!BU0T}j_bo$O28aMq#VY1=a}K4HFOx|FxU3(vcdlc4{G^oH07wS|@(ugl zu}h2#{EpG-rzyuU{=%QDL_0lRX0#t`gyJhJT=_461{Fr^gFFz2D& z?#3}Quw7Y-ZXCZam(0MPhC`Q9H4*H#%p;?>f&5sn>j`t-77IF5&!dq`sa#4$MD?Up z1Z7s}QYx2H{U_Ho#}=1TQ65E?QgHyga(l)Q>~phW+cE0rF`i(%vV0^K=++YE{0sm& WpVhv@?^YTB0000h+v*8l*BQUCyPMF0TmW&i*=2LJ#e`2#0~ zRsaA4P)S5VRCwC#nn6n&K^TU=-E6Jmny{kAgHdYMnDn-IF?jG$4BqP9gMtMis0Dw8 zAV{dW=nt@ez?%dVDIU_2gRqI_5Em~-k8ZNXWV1btZa3MO4c19#+Wqh_Zf2N=;hoLQ zLzrMN$n!kVR;sFUJkQ_V-BE`=I5@}w0L!vKVQ~Q9@px!O=Q!>KBXRE#RaJ4J1Hkq5 zH74#rAmB*#N9cI-&+9?5X8Zj7{P_5|^XQH{u=yKC6vb33b$ff;+uIw9#SFtZ zJw0vcV;BZjbSqURlaVB;VRjAxerlS1&~!NI`5fVIQh?ryB; zCRH|X*Y~znJyFxHP3oeqGU3e&1O9;`*C3*9*=)dr#lP& zn<{s4fg0h-$-2z|0F15BXa1p~(a}*s5CEWXbyYJAdmo&O{#YpD48vSpURq~=HZW^z zYn4ic=lPM5k&}~?zi?i#P(>mU00>*Q=~G~A=!rx^QIxK(E{0+5@9$+<_W68FXS3cg z9in$e&*$@{Qpx;xe0;nc^Q+Ji{h4jrtW!Iut3V(?BD!Pgx=!e-({Wy>6NMqMNDj~M~n z)!GO=qQA@t;I7t2;1S(50Ji7R-H^E z;Fxt5y+yKp{*YWFP<>kUy}douSY2JE!wBfrD*F4hvVtJ@ z_xH_*L>mEXHkOx{0bprq$rczQjer>#REvv?4Nu550(w0tO-7)tlOusf;N935Ms)0f sary=%7ro}V>f{=MmOlY4Yuc{?08g~^-7;vm)Bpeg07*qoM6N<$g2&OnRsaA1 literal 0 HcmV?d00001 diff --git a/configuration/sources/shadow-generator/images/colorpicker_hsb_h.png b/configuration/sources/shadow-generator/images/colorpicker_hsb_h.png new file mode 100644 index 0000000000000000000000000000000000000000..3977ed9f21e3186eefd37b198a7cc3f8de6c69cb GIT binary patch literal 1012 zcmVh+v*8l*BQUCyPMF0TmW&i*=2LJ#e`2#0~ zRsaA4dPzh1Z?xtc9W|d^8%pySrl!Jsywq01yZSfWhDafa5q;(RrSK!_25Mnz_o6R-Q8VL6wU6+%F4pRf-Q$MI@dS4=mAHh)9FT|@$~eByOWcX z!Cq-b_?cFRh?(5s;V}d2mk4K?&4-6bIBX^iheAZrO{%IS z0YIfv$z`+F(Rl#Sb=`U9^73-C*$nbL0E`QQVHk#CxMmUxbFA4+=9etvc4lVg#bpWz zInPX|)2gcCza|_G>$(mIxn`0I%UGFA#{CZCigR#qP_0(EKmY)WdwYgq^vWbf{@jo* zE^s3|JL^F2F_(#niAW>@0HNVwp65~TOfr++9V?g3RwW5{t@J$$rn?^>GJgkDFu7a~ z0J4_L6actnGO6o2dKt1Tm&@fyBr-HKgb=#EzCJrUYqeSQ+^ z@p#6tJ$H`nQONIahe-%W5W9r2sHGI!dV# zn9t`wEiLs)_< zqd%&uZ8MDk?wUrxmh*4WOQjM3lu9KVI=x0fd;SdeWoPH>w{N(;v%SrL5$IU%>swn} z&Ykoc0rTVI;o%`}Y;JDa?=Z*_rV$WDQ4~e15wPVDEf~Cg-q^s9M@L8IPO6Q7wKmq* z*8yN{ZOu_IR2l)>*Xq^PRofnVjezF$`JY}R@TxaQ3XQ;rsVRc!#0$pj@kcMZ?m6r9 i8Ue%TbFitZe+B@uIz19ZnQ%P-0000P)h+v*8l*BQUCyPMF0TmW&i*=2LJ#e`2#0~ zRsaA58A(JzRCwC#nn6h0U=+t+YIIeCZ8N0REt9otS9j@(Ajt5v?W7gKqX!Ee2!alT z*{jEbDCoQ>c=RY9Hf%t4)YgLZFxlE#lxYuB4{FKmYLj+{XqP4>>D<09+4?7kkiL)i zCw=+8yx$khX0s6l0a_EoFgQUFr>Ccyv)*xTdJ9d`TAin3TNEXx9h36D@HluRbgX0xZi|M`m->2&(y;zATt zUtgb2rxE!!7z{#JcW)%jt^)w9^msr~9*-v;i!CfHcs!of)m5L*$Fi&_47G}h;x`gy z*8u=lD!{P5zCN4HW;7V?-@EsXVF2Ld*VWaPbRbERt*xy_qcI!~ z@9yrBBxyFAg#ir>4MLasI!M{&seDmP)0v*(}F#R;yKycq%MgFbV-Kmy2at z6btolO5PRDr@!4Z$8p@>z3aEPu8Q|{ty*UoMyqW#X);+#XFW~m>+vyeF`IXyQO#NJ zbh~RrKwCuMN$DHKAJ?Z?3}IWn844lt{j9sYMg;ybB7j=*MBv)`?T7$s$rFKV>l!5j zc-gjXW@g6ebar)h4ST%+u)Mq+iA1Vh>;hK~hoekI)rdfi2>c2WDBo(VtgHlsL7oWA z&(HHjpvo(k$QAFtqAp4OL_n^=BM3sifqK^6t;x3f;LDd95%>>@z}MsBc8bzsTdm2i z6abo=n^j5#I^FK)FJH<8eAw7fFA-2=n(8G26ji+};bGxL%+uSO z+~1duRQyKZk=2THHElK;WdhRY=jtT_oYMBcdWk?qZ;mP?0uS5U5n4xHFiI<+dadUb l@49-4fb1urmzm6u0RTq3k6f>52*3aU002ovPDHLkV1hB)7U=*0 literal 0 HcmV?d00001 diff --git a/configuration/sources/shadow-generator/images/colorpicker_indic.gif b/configuration/sources/shadow-generator/images/colorpicker_indic.gif new file mode 100644 index 0000000000000000000000000000000000000000..f9fa95e2825eadd2d779ad270a71eddb94f94748 GIT binary patch literal 86 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 RdwKu>002ovPDHLkV1myV#+d*B literal 0 HcmV?d00001 diff --git a/configuration/sources/shadow-generator/images/colorpicker_rgb_b.png b/configuration/sources/shadow-generator/images/colorpicker_rgb_b.png new file mode 100644 index 0000000000000000000000000000000000000000..dfac595d017e279ff670df2c816e02d922660d9f GIT binary patch literal 970 zcmV;*12z1KP)h+v*8l*BQUCyPMF0TmW&i*=2LJ#e`2#0~ zRsaA4P)S5VRCwC#nn6n&K^TU=-E6Jmny{kAgHdYMnDn-IF?jG$4BqP9gMtMis0Dw8 zAV{dW=nt@ez?%dVDIU_2gRqI_5Em~-k8ZNXWV1btZa3MO4c19#+Wqh_Zf2N=;hoLQ zLzrMN$n!kVR;sFUJkQ_V-BE`=I5@}w0L!vKVQ~Q9@px!O=Q!>KBXRE#RaJ4J1Hkq5 zH74#rAmB*#N9cI-&+9?5X8Zj7{P_5|^XQH{u=yKC6vb33b$ff;+uIw9#SFtZ zJw0vcV;BZjbSqURlaVB;VRjAxerlS1&~!NI`5fVIQh?ryB; zCRH|X*Y~znJyFxHP3oeqGU3e&1O9;`*C3*9*=)dr#lP& zn<{s4fg0h-$-2z|0F15BXa1p~(a}*s5CEWXbyYJAdmo&O{#YpD48vSpURq~=HZW^z zYn4ic=lPM5k&}~?zi?i#P(>mU00>*Q=~G~A=!rx^QIxK(E{0+5@9$+<_W68FXS3cg z9in$e&*$@{Qpx;xe0;nc^Q+Ji{h4jrtW!Iut3V(?BD!Pgx=!e-({Wy>6NMqMNDj~M~n z)!GO=qQA@t;I7t2;1S(50Ji7R-H^E z;Fxt5y+yKp{*YWFP<>kUy}douSY2JE!wBfrD*F4hvVtJ@ z_xH_*L>mEXHkOx{0bprq$rczQjer>#REvv?4Nu550(w0tO-7)tlOusf;N935Ms)0f sary=%7ro}V>f{=MmOlY4Yuc{?08g~^-7;vm)Bpeg07*qoM6N<$g2&OnRsaA1 literal 0 HcmV?d00001 diff --git a/configuration/sources/shadow-generator/images/colorpicker_rgb_g.png b/configuration/sources/shadow-generator/images/colorpicker_rgb_g.png new file mode 100644 index 0000000000000000000000000000000000000000..72b32760a5c40b7ab834d176ac588750a06f13f2 GIT binary patch literal 1069 zcmV+|1k(G7P)h+v*8l*BQUCyPMF0TmW&i*=2LJ#e`2#0~ zRsaA4vq?ljRCwC#na@w+KorMcp|EVXQK$+YM6*gzHqnN7BF59kyLV$Gkwjyn8-M%_ zE{RbNUKIZauO4)ds|T|oT-ef(s1a0_$f>a^t?r@HEtF8AJM1*eOAln2$@}v7PN(lv zVqjo^rfD!+2!cS;G+ihZOeejotBV8xi^T#a3=#mWR;yX1lO*|ym8f@!APA_W1Hk3w zB_iEkuh&r3o1~-lLnG2_dVP3!cw}V6=kpbd#Y`r1aB$FM>4rPdqTFGsf@RrABvLAs z_V)IUj*iC1$ET;KtLC7VuFaK9CiU4#0Js;$s%4Xtll%Mo+uPgi?d>#8=kxjb`T6VX zYnRih&Uxo>AeFAF`pIzskVqr~Lqpo^765pv442ErFwDvEaR>5>mzrVKEiOMUN%>sbW=d;^vxor09`ug(nG5}<=S@G^porYX_`AU~VE3z!TGDK12 zc|IHtTS-zB#k2Esx7%GV#GgQ4^p{X9P7p+z=e5~u7zO}#c6JsQ7vu3b&+`;T_4M>` z9GA&t7={6YXue?rfdBvuX|^c<5G>0+K0fLf%ChWqI(vJ2Z8lpnnM|cp%5P9_w|2W7 z>1kS1l^S-tomBpdnunPn2&bo~4-XFj(BI$hKzujU8^&M)%d(Orp*X1D81+?=O8VFB zIa!wfZPi~d9gF96vq~2P!K`gH<8pO-Jf@R=lh2dg9?y?N!gSI{gTWRNFc%T{RQW{l z*CWMo2;1uKCntz>kA*@lBG4iNxDWx@ z)`lq&7!3wLPfXOA@a^yrUm{@0H1Q<@4N1q72$V`Cvl4;&Z#A$c0u5CiPaZTH69Gx%^@W86{U8at z_Fg3dSGk-*1b!6?u~UR@?manP6sovBm$~8BD1qf>UcbEU>Hn@ zfYuw~a2Nn)W@dDT!IB76y{(>_nyMPXmk7v4umABS0u4PmVn_r&_Vpo@j@&Rtryjo2 npA4&xFA;ctuJh%cDE=M*G)vtq^hrv*00000NkvXXu0mjffA{0B literal 0 HcmV?d00001 diff --git a/configuration/sources/shadow-generator/images/colorpicker_rgb_r.png b/configuration/sources/shadow-generator/images/colorpicker_rgb_r.png new file mode 100644 index 0000000000000000000000000000000000000000..4855fe03f8ea8d88b4f8ae625c7958eea65208ac GIT binary patch literal 1066 zcmV+_1l9YAP)h+v*8l*BQUCyPMF0TmW&i*=2LJ#e`2#0~ zRsaA4ut`KgRCwC#nL$e%K@`W|#$^*@2)1ijA*P`i*Vs!8o}|Yj_z@}|6buN87D4dl zS;)b(p0whp5G)M=FI7^gQ8aB#6dSZ+h!%w1Y;?1+hmFg+nRFn+=R+9LJG1n=PBo8cw>y;UEFPWHNyPjRb(ErY56GCrR=VBT=6aj^j{C z2Y}PlQ$)I5E>~4mPm+!{9%_-UkM*gkDWxt5LNprP-`}sZ^r|P&B!6Kv=J9woH#gVT z*4Ee8bGcj~5O6x38Xwfs)pPCb?dfMH0U$33`jPQ?{QUg<*V)k*x3{;YrDbbti|2U@V!3Kl zRCTj#GL@3+Y**KVSOqeE%ahy@p z>gUg%wKI(2q+et*WIMxri^U8lz0dD&5CLNmfmf=FKMMPvNFYqBzie+K(*3%>zd-~V zL;x2efZ8e(fs*tF5oi#B1`)uT2$WAXLZQ&n(GgA41VQBU`NhRWQ51QeZ*Fd`W2iq+ zC9AKVB^iPU{58STq)rq?Q52=WX&5rCK1rt=MBqOp0vDN#+vPH1T5ZUz6aegYJElaS z&+mUTFi^oE5)R`_1gbJke2G9!((xn$q9_`b2vmO6z?uluwCZ>gfvT~NFA}u zJ+zYaydY?bOazXPk7GMK??WM;=NX3ieRZYrsgLwvFbDv_U{E6+Um_sgKZCuSp8l}3 zB-f`^k&G`9D5zq6Vq!wyh%XUP9v_#Nm*vX%__#5MfK({RB``K7i(FY*Q5vx(0tHD@ z%IN4Q0E~=`C@okM0nKam@bIvv1z#c{ReS!&mk88!bHtDcymY$}N=F_r<$jdLkY231 k>i80YySoaVIYIa{0Hu_2rW%yutN;K207*qoM6N<$f_Z=6i~s-t literal 0 HcmV?d00001 diff --git a/configuration/sources/shadow-generator/images/colorpicker_select.gif b/configuration/sources/shadow-generator/images/colorpicker_select.gif new file mode 100644 index 0000000000000000000000000000000000000000..599f7f13a6854d198f501588948ffcf97bf9f365 GIT binary patch literal 78 zcmZ?wbhEHbij|08)1sO8@`> literal 0 HcmV?d00001 diff --git a/configuration/sources/shadow-generator/images/colorpicker_submit.png b/configuration/sources/shadow-generator/images/colorpicker_submit.png new file mode 100644 index 0000000000000000000000000000000000000000..7f4c0825f53cc4faba8fc9e043502276765da1f5 GIT binary patch literal 984 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 P00000NkvXXu0mjfA`AaT literal 0 HcmV?d00001 diff --git a/configuration/sources/shadow-generator/images/custom_hsb_h.png b/configuration/sources/shadow-generator/images/custom_hsb_h.png new file mode 100644 index 0000000000000000000000000000000000000000..a217e9218e6a512b507a35e8a6141f0e56193439 GIT binary patch literal 970 zcmV;*12z1KP)h+v*8l*BQUCyPMF0TmW&i*=2LJ#e`2#0~ zRsaA4P)S5VRCwC#m|aK|K^(yUyEA+4?d5?fXd;=M7I&7CAQ1#X&_j>CL_YN-gn@+F zgHSIeAw>3IK|;|7L=oge5IzJ#A^0E&>G?(8=|!HGo*#L7AKu<>4|8pMd)HkZt+#{w zXC7weW^aBB|Jj-SF*9F$o1tx>E$qcMycycAC@-ZBJ@9=M1Art+Kw)425XHpaLf3nT z*o$qs(c_|+-@n%!JfIWz{MV(NRK`u1oK!3sq$xeUk30*0rTO&r;Lz}xX3Q?2XDLZ^ zNtQLm=b0`ovGcrzGy{tZJ8^M;iCsNLZ*=us&BvV@!eqi&`J(hE1%Vf=JRxLR*23X^ zHtTjcstkxmW4fX%R1Gc%0Gw!YjZb;hvts~YStk9-f%l(m0w0fy0I;#P!Y~ZOFd0Yc z6v|xg8E^fO8d9H}oln`OnfJJ7mbVJzw2DT;EXx*f%c_Y}(B({td#$~-(d7^m2>@v8 zyhBz%)<4CSQ06-3bdbu#v?m=s^TUgQAW80>SVT-DWO+Bqe^ZT5c^X^}GWW!^H|6DM z{2&`t&HcxOX}{XxtgBuQu9KfyE}VDPRTnB@)bzR0U55`X2iGIf82PEXs$7=k;M$J@ zqW{A-4Q++h&2S`|@upE=bVXp?Ee;`O5dSyi! z_6LF|n~ze5J~HYyjR0NfpC{*ZC2Op&)zJu?In|^S_t5Z|X#`9oU=$;ucVssLNp#Z) zm`1=f0;Ul#jllmj0z<=NR2qTWnkv%>>_H8 zN}^l&B27_@0BI^lKr=??RZm8DS1SN?ceNr_7}^MstN?&p_nzJCxJ2r=d!JKa1US_; z?df}&-f3JTfPWoH*RQmY%H4;rv~L($))vJGczsJ=-;&x0XvXM>ju9#M``?gN>ukHI zbY@GK!e7T#7lFRVZvo)JlL2+7ag6|%dL;F~c&F(xt`Sh)F!UJ#{5Lm80~&$3`EU8J sdf~SzMzo^mJOqtv1hQW_1cCoK0IhW09jn*o82|tP07*qoM6N<$g4YtalK=n! literal 0 HcmV?d00001 diff --git a/configuration/sources/shadow-generator/images/custom_hsb_s.png b/configuration/sources/shadow-generator/images/custom_hsb_s.png new file mode 100644 index 0000000000000000000000000000000000000000..7826b415077be23ed1b1bf05b2da62d4aa5b1c67 GIT binary patch literal 1168 zcmV;B1aJF^P)h+v*8l*BQUCyPMF0TmW&i*=2LJ#e`2#0~ zRsaA57D+@wRCwC#nQcf@Q5eUc-Fr6Onu3&AF^rild$UyX1q~x8l(L`*3O@uvFO(o; z_5wxr@*$1tgY{vMl7$6QeMqAy6e1xqkX2R|TUIxmtGu(iIrnyNAC8Ud=Dmt?_1xOS z`EYjbGoJs>o;~L|ziI4tJI8S#VLo05L|S~@48(C$eTIg-ib~hV#^6c%;`soO zlezfi8;3YL0sx8%PiTw9QdL!zm6bIwEpOSPl&u?AQj2Q*-QCgA(fXtl0Cw!$vnn?|%wceFNYM&oFvQ9@3=R%a03eJUpBbjP zxp`q)T3K1y!+W<%Hg9jJw`vg*Mw-&Q9tyNHEd`IT=#UEpqjD~4E z^RfC@Z$F3^H8z_~ryHfSWm(qgbTa*XVcv?&bj$btfnHa?*um@dDVpmsF>?L3*Xu+0 zyNG<2kdR<9neuc7gy{DU#-ng495vU+K24>ZIF9oRKKZ>NR5}3gyyPRArjJ2 zf+9GneqF87jYgx)wVGJz@o_T{>vs3KTv8sMfSye0b7#*&eJ)p4MuzH$z|-elQ6iu& zBJkq1T~TGrm!v941lAN}Dx|xuy)#M#qC|icBA~R%6M*&npp9OT#pigC=nPp5g7fdQCeDBTwIKaKxO%EOa#U(w2IzM!^(@?E$JU80&VS` zsw4ubW>b_1{D(wfc2d$OhEe0SngVs&z)y})BJlKi*ZoJ2WgLpv7LrQ@Xd0=N2vB3; zSaOMgR;yDh5zy*l)Jg<&+6m=42}FRVDYX&-MAM;h_SjzWOGMK|6M@hlJ|_?D1b{O~ zcb%xIR|gRYCCsVwSC1dqf#;_$G^l_GXhlEMv$c(piwF||u`vwu!e-l0Qj(pWefUUx zZQbpLdh413tIzMB(#G&_!c^|xjwk0X-;976L=pjnXgn@jo3O}(`?iG^i6#O_)CkmG zxeWl9>h6da$t42Xkw=pC+TE}fa*4p0M-sV20F9?}B#;Q$d%jF+*QfVdjmwBCrAMCe isv!dMU5CLC`)2?-k0%YdqHBTx0000b%7 literal 0 HcmV?d00001 diff --git a/configuration/sources/shadow-generator/images/custom_rgb_b.png b/configuration/sources/shadow-generator/images/custom_rgb_b.png new file mode 100644 index 0000000000000000000000000000000000000000..80764e5d6dd8aac3c5ef87d83b45d29780af1fe9 GIT binary patch literal 1008 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 CP+tZB literal 0 HcmV?d00001 diff --git a/configuration/sources/shadow-generator/images/select.png b/configuration/sources/shadow-generator/images/select.png new file mode 100644 index 0000000000000000000000000000000000000000..21213bfd51b088497f3a9e423170cd65532d873d GIT binary patch literal 506 zcmVr9_QX-DN@01`G*?mYE;P(j>ieaLJ zp1@KmP7DbnxHd5epSMZF>_Ios1X7kEzM%)`8u}mxVv)EwgAVwi+aL%gVHgVE_pQ>@ zbuG%W6jfCb)Fr3i6gRMr(1H#Un@BbTwH6Q2xnfI1$74|x z`a$b3REt~>BR!+Rjm(B~!)%yB$32-1&(IZ{4HWmQa;H~;maQBTMsJ;5 wu=L25Ib=s<$1=nh_wOs&FkN?ph+v*8l*BQUCyPMF0TmW&i*=2LJ#e`2#0~ zRsaA2j7da6RCwC#n88ZJKomvKOQ$N-q%EcB2MDDFapS&Ut2tcoJKO0Z5XR@gxT5=E@BPRC5JM(-{EmRs+wi z*>P|@#ScQvT9QAwUwvX=#Ku^(QHKpv2~+}=KqXKKR03@~kh1h#z3lU2-9S7%K9wHY zZlHd@zd1k|%qmdMx=&^ql(G#p7!3Z$L#9{gzl=qFW|hX6QL70(Y)*O%l>?NMQuIzW1q8!R;Ss~(1i{Yx<{Qdb9&ETjF@5FqirZg9N{us5)fk@- z>M=aVzF<|<)w5grB6gY`VB;{+n)dCd{^Cl;J8y2;RR)T>Zj?LFS>NoU=>LyX$*y6O z&h(!P-u^mT`%m0K<=Cx>tMX>Fw@z=KKXK*6ZlCE37aob9n0e-n=R3w)!%SO-(1?%& Uwf(ghfxcq!boFyt=akR{04@%HIRF3v literal 0 HcmV?d00001 diff --git a/configuration/sources/shadow-generator/images/select4.png b/configuration/sources/shadow-generator/images/select4.png new file mode 100644 index 0000000000000000000000000000000000000000..7e5073e793eac099f6ed627e97ef58b20ce5775b GIT binary patch literal 200 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjjKx9jP7LeL$-D$|*pj^6T^Rm@ z;DWu&Cj&(|3p^r=85p>QL70(Y)*O%l>?NMQuIzW1q1hfy;F6G#&@@%Bu=rtbS1FdYBgn;tWx0&-+UAZ|VmY_Abe4%7;Bnv9(ix`L l{xNbzYUBL*_Yb%jF}Tg)UGVrzzdF!N22WQ%mvv4FO#p(LIQL70(Y)*O%l>?NMQuIzW1qq^Bv+fNKTAlBG-kU%v9;`}_OM^<+t`|yc1Y?-gyyEotInm#MOm!f^^y*-dYoVJ8o0wy4TmX zR?7dfn;bc9{iI8VpES5yofZaYh;TjCpK_UhilywQPp{V&o!)zNr-EuAP#7%xRC{Am z6GR!1|0e8}W%vqnuQi`zyC%VuOt~~QLec?j5=hH8t&PuqF6Zm0mDYFhgqkAab@NoR n(3#>M@3IhYo&TccjBE_r(UXjnZhw#mdW^x-)z4*}Q$iB}AxU+4 literal 0 HcmV?d00001 diff --git a/configuration/sources/shadow-generator/images/ui-bg_flat_0_303030_40x100.png b/configuration/sources/shadow-generator/images/ui-bg_flat_0_303030_40x100.png new file mode 100644 index 0000000000000000000000000000000000000000..fd7f033dafd4adefe08ffa94e2d607f65ebe94ad GIT binary patch literal 180 zcmeAS@N?(olHy`uVBq!ia0vp^8bF-F!3HG1q!d*FscKIb$B>N1x91EQ4=4yQ7&=`1 zZ62;ta^eD?IO|R0&uiqZh6adImlD4o#T4Fre{C$#84RATelF{r5}E)` C#xLLi literal 0 HcmV?d00001 diff --git a/configuration/sources/shadow-generator/images/ui-bg_flat_0_aaaaaa_40x100.png b/configuration/sources/shadow-generator/images/ui-bg_flat_0_aaaaaa_40x100.png new file mode 100644 index 0000000000000000000000000000000000000000..5b5dab2ab7b1c50dea9cfe73dc5a269a92d2d4b4 GIT binary patch literal 180 zcmeAS@N?(olHy`uVBq!ia0vp^8bF-F!3HG1q!d*FscKIb$B>N1x91EQ4=4yQ7#`R^ z$vje}bP0l+XkK DSH>_4 literal 0 HcmV?d00001 diff --git a/configuration/sources/shadow-generator/images/ui-bg_glass_95_fef1ec_1x400.png b/configuration/sources/shadow-generator/images/ui-bg_glass_95_fef1ec_1x400.png new file mode 100644 index 0000000000000000000000000000000000000000..4443fdc1a156babad4336f004eaf5ca5dfa0f9ab GIT binary patch literal 119 zcmeAS@N?(olHy`uVBq!ia0vp^j6gJjgAK^akKnour0hIh978O6-<~(*YA|4MzBvER z|7}eQtdCVXoUc2b{PaWeaIKu7gJx>{vDV26o)#~38k_!`W=^oo1w6ixmPC4R1b Tyd6G3lNdZ*{an^LB{Ts5`idse literal 0 HcmV?d00001 diff --git a/configuration/sources/shadow-generator/images/ui-bg_gloss-wave_8_121212_500x100.png b/configuration/sources/shadow-generator/images/ui-bg_gloss-wave_8_121212_500x100.png new file mode 100644 index 0000000000000000000000000000000000000000..0d12b3b92fa777d553ec8b80084208c2936077f0 GIT binary patch literal 1696 zcmah~dsxy}82*tZtqZnnWr>$&)5m0*tui&#%Dd$%GZhh=mwbvLnb$ytYOCB7yGdCF zrIA_DuOcuj&~23_Dx!e`raj^v6m~&G8C8<-}&cz6-J&vD$F{0!5jt^O2 z>>u}^O~uH={Q9S;lh5oqZSj`Y#8a*E{fCH~)cla-!t%a{$IJ5?$J$*SU&LuO3HNF> z32Tw3Ld|+ctp}!bI-Rk}0U4*u8w4X*D*fQa4n2=Q@l;crN%;D*b)AH0TWnp&*80Fy zN74wkm#qWKp@%fqf!CoegYOe{d1zyaG5rh8xoA!JP}ipl9A4GbjNF{MAab?+IYB)vPHOA-;cS49VK1RpTtfw7FAv>T~RmOBH(% z>^CSrRoWqiu?4~WbDY|HwBissI~_GvAeKd|G+NB|eM#24 zhZg`7r0~$rAmxaqDw}NS{s!I^J8Zk&symMOeHKCz1EF9jKHJ z1gPHK6n~ickiZwkB_o$})M*XkFrOs+;*FEDn*wNJDe>lys=T}G;ntgF;TcX%lJZ)P zmrVt@R9DY!ko1X%TF7S*E}- zXT~jcY=8Mkf!}~c^z1+69pB;5McG2U1pYZbC{J} z!f;7r8;Vr;GD_wU;vF(3qT+Fe(;U&z@&d+#P^Js2S1esSp39_2GL-sUY3|I_U?&KS z_Ms0!$#X24A$uXFX+UI+P6W9K1{>{Vs7jDuv9R9mT#DPFg5Kx|No550J278@6x zN&QA8kC{})bZ5UDTh(&`&p5lp!TD5gb`=_9WzsxW6p9XZSjJK`+@2r%TUl&mv|&<< zaIP{5BN!|nmkP}bd(6)f4H5Ky*DEGzo5sIgF!L3w<8KCJh!wE(pvKJx$RhEserC!V zM;Ng5wdH5Fk@4kWx|EY`TEf{re|wRr-bJ*NsLIfZ582^1Qp2OKFa0x6!hVAtYjSpL zp@}s^NLeKt?f4u8=RWd}hfA8)m+>EH=yC-nIz(TG6l@(S3X{5E?`fr*u-7PJ4+g!m z_f@KL|L}K=abkJ_yzGE}JNQH*Zys1q5rYRfoVKu9Tg zI&o40N91@tdKJRg?%UQ@50^wFX<5PxSbkx0wJ^~?Zbb|!A^HJED|MIAr0wg^Ub3q_ qhKgcplNB-^$&gI-1fEnGfbZ9(G%U8ZWE%e;AjmJ&_s*8RNB;s~@j>YT literal 0 HcmV?d00001 diff --git a/configuration/sources/shadow-generator/images/ui-bg_highlight-hard_12_000000_1x100.png b/configuration/sources/shadow-generator/images/ui-bg_highlight-hard_12_000000_1x100.png new file mode 100644 index 0000000000000000000000000000000000000000..fe73bf61723f8c16ed9cd84174401cff6f6659c9 GIT binary patch literal 100 zcmeAS@N?(olHy`uVBq!ia0vp^j6j^i!3HGVb)pi0l(wgfV~E7mWC0vV xPsjiN|CNRR|NHBlwy-cTk_QM58+troVc1lxc1$mS-4~!X22WQ%mvv4FO#mZyA9Mf! literal 0 HcmV?d00001 diff --git a/configuration/sources/shadow-generator/images/ui-bg_highlight-hard_55_303030_1x100.png b/configuration/sources/shadow-generator/images/ui-bg_highlight-hard_55_303030_1x100.png new file mode 100644 index 0000000000000000000000000000000000000000..531d32a69b7c5ae9b63dbec86379e30f2c65baa4 GIT binary patch literal 117 zcmeAS@N?(olHy`uVBq!ia0vp^j6j^i!3HGVb)pi0l#Qp0V~E7myZxs*84LxSj!s)% z^?Z5^+a_L}#uzy*B@W|gmWJ&Y?k1!)2{P{b9quWmow+G^-73i){~z<`EPJ67mL2(N QBhVZMPgg&ebxsLQ0N=hOsQ>@~ literal 0 HcmV?d00001 diff --git a/configuration/sources/shadow-generator/images/ui-bg_highlight-hard_9_363636_1x100.png b/configuration/sources/shadow-generator/images/ui-bg_highlight-hard_9_363636_1x100.png new file mode 100644 index 0000000000000000000000000000000000000000..063ede18233892081baf0104d3f5be4dec6dc11e GIT binary patch literal 99 zcmeAS@N?(olHy`uVBq!ia0vp^j6j^i!3HGVb)pi0l$NK9V~E7mv# yr}O{+|H_;H{r`Xdz?b*;?RgAY8kgl(2r=Ya$Y#XJrbGjEF?hQAxvXvV z4~LtZ8{4w~|NlF4vazvgyuQD`{zQxkXUn$6?@VVo82tLA4tboDJq*;$;OXk;vd$@? F2>|gJAz<~n> zEgWucZfwi`|NpNn%)`S|u_Ht1|G&S^X^JWvW*WWWU|?X<37D_L;0e^s;OXk;vd$@? F2>{-1AK?H1 literal 0 HcmV?d00001 diff --git a/configuration/sources/shadow-generator/images/ui-icons_666666_256x240.png b/configuration/sources/shadow-generator/images/ui-icons_666666_256x240.png new file mode 100644 index 0000000000000000000000000000000000000000..f87de1ca1dc2eeefd7c2a4bed06c3f8bbfe2d483 GIT binary patch literal 4369 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 literal 0 HcmV?d00001 diff --git a/configuration/sources/shadow-generator/images/ui-icons_aaaaaa_256x240.png b/configuration/sources/shadow-generator/images/ui-icons_aaaaaa_256x240.png new file mode 100644 index 0000000000000000000000000000000000000000..64af7f11cfef61daf0fdbd80f6f0b7b5448e795a GIT binary patch literal 4369 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 literal 0 HcmV?d00001 diff --git a/configuration/sources/shadow-generator/images/ui-icons_bbbbbb_256x240.png b/configuration/sources/shadow-generator/images/ui-icons_bbbbbb_256x240.png new file mode 100644 index 0000000000000000000000000000000000000000..146dbd10b99cc7529a1f055e4ac7d4b2284247e2 GIT binary patch literal 4369 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 oBo%DI*Kv;w;*%(i9W@f6#}Hg8%>k literal 0 HcmV?d00001 diff --git a/configuration/sources/shadow-generator/images/ui-icons_c98000_256x240.png b/configuration/sources/shadow-generator/images/ui-icons_c98000_256x240.png new file mode 100644 index 0000000000000000000000000000000000000000..ba8dafc04c3a7130f91fc03b5d82a427fa30c36a GIT binary patch literal 4369 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 literal 0 HcmV?d00001 diff --git a/configuration/sources/shadow-generator/images/ui-icons_cccccc_256x240.png b/configuration/sources/shadow-generator/images/ui-icons_cccccc_256x240.png new file mode 100644 index 0000000000000000000000000000000000000000..9254e05cfb964be56241b5bb4d0a0eb51c02df80 GIT binary patch literal 4369 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 oBo%DI*Kv;w;*%(i9W@e`=?odH?_b literal 0 HcmV?d00001 diff --git a/configuration/sources/shadow-generator/images/ui-icons_cd0a0a_256x240.png b/configuration/sources/shadow-generator/images/ui-icons_cd0a0a_256x240.png new file mode 100644 index 0000000000000000000000000000000000000000..2ab019b73ec11a485fa09378f3a0e155194f6a5d GIT binary patch literal 4369 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 literal 0 HcmV?d00001 diff --git a/configuration/sources/shadow-generator/index.html b/configuration/sources/shadow-generator/index.html new file mode 100644 index 0000000..aad2cbd --- /dev/null +++ b/configuration/sources/shadow-generator/index.html @@ -0,0 +1,195 @@ + + + + CSS3 Shadow Generator + + + + + + + + + + + + +
    +
    +
    +

    CSS3 Shadow Creator

    + +
    +
    +
    +
    +
    +
    + Preview + +
    +
    + Shadow settings +
    +
    + +
    + +
    +
    +
    +
    +
    + +
    + + + + +
    +
    +
    +
    + +
    + +
    +
    +
    +
    +
    + +
    + +
    +
    +
    +
    +
    + +
    + +
    +
    +
    +
    +
    + +
    + +
    +
    +
    +
    +
    +
    + Add a text or box shadow layer to start creating a shadow. + Arrow +
    +
    +
    +
    +
    +
    +
    + Preview settings +
    + +
    + +
    +
    +
    +
    +
    + +
    + +
    +
    +
    +
    +
    + +
    + +
    +
    +
    +
    +
    +
    + Layers +
    +
    +
    Box shadow layers
    +
      + +
    +
    Text shadow layers
    +
      + +
    +
    +
    +
    + + T + + ■ +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +

    Deleted layers cannot be recovered. Are you sure you wish to delete the layer named ''?

    +
    +
    +

    This will delete all your layers and allow you to start over. Are you sure you want to do this? The layers can't be recovered afterwards!

    +
    +
    +

    You can directly use this code in your design.

    +

    +
    +
    +

    Save the following JSON object anywhere to save your shadow layers.

    +

    +
    +
    +

    Paste a JSON object in the below text area to load your shadow layers.

    +

    +
    +
    +

    Enter a new name for the layer.

    +

    +
    +
    +
      +
    • Fire
    • +
    • Neon
    • +
    • Offset
    • +
    • Ice
    • +
    • Ghost
    • +
    • +
    • +
    • Depth
    • +
    +
    + + diff --git a/configuration/sources/shadow-generator/js/colorpicker.js b/configuration/sources/shadow-generator/js/colorpicker.js new file mode 100644 index 0000000..c0c5fe6 --- /dev/null +++ b/configuration/sources/shadow-generator/js/colorpicker.js @@ -0,0 +1,496 @@ +/** + * + * Color picker + * Author: Stefan Petre www.eyecon.ro + * + * Dual licensed under the MIT and GPL licenses + * + */ +var currentPicker = null; + +(function ($) { + var ColorPicker = function () { + var + ids = {}, + inAction, + charMin = 65, + visible, + tpl = '
    ', + defaults = { + eventName: 'click', + onShow: function () {}, + onBeforeShow: function(){}, + onHide: function () {}, + onChange: function () {}, + onSubmit: function () {}, + color: 'ff0000', + livePreview: true, + flat: false + }, + fillRGBFields = function (hsb, cal) { + var rgb = HSBToRGB(hsb); + $(cal).data('colorpicker').fields + .eq(1).val(rgb.r).end() + .eq(2).val(rgb.g).end() + .eq(3).val(rgb.b).end(); + }, + fillHSBFields = function (hsb, cal) { + $(cal).data('colorpicker').fields + .eq(4).val(hsb.h).end() + .eq(5).val(hsb.s).end() + .eq(6).val(hsb.b).end(); + }, + fillHexFields = function (hsb, cal) { + $(cal).data('colorpicker').fields + .eq(0).val(HSBToHex(hsb)).end(); + }, + setSelector = function (hsb, cal) { + $(cal).data('colorpicker').selector.css('backgroundColor', '#' + HSBToHex({h: hsb.h, s: 100, b: 100})); + $(cal).data('colorpicker').selectorIndic.css({ + left: parseInt(150 * hsb.s/100, 10), + top: parseInt(150 * (100-hsb.b)/100, 10) + }); + }, + setHue = function (hsb, cal) { + $(cal).data('colorpicker').hue.css('top', parseInt(150 - 150 * hsb.h/360, 10)); + }, + setCurrentColor = function (hsb, cal) { + $(cal).data('colorpicker').currentColor.css('backgroundColor', '#' + HSBToHex(hsb)); + }, + setNewColor = function (hsb, cal) { + $(cal).data('colorpicker').newColor.css('backgroundColor', '#' + HSBToHex(hsb)); + }, + keyDown = function (ev) { + var pressedKey = ev.charCode || ev.keyCode || -1; + if ((pressedKey > charMin && pressedKey <= 90) || pressedKey == 32) { + return false; + } + var cal = $(this).parent().parent(); + if (cal.data('colorpicker').livePreview === true) { + change.apply(this); + } + }, + change = function (ev) { + // MARK change + var cal = $(this).parent().parent(), col; + if (this.parentNode.className.indexOf('_hex') > 0) { + cal.data('colorpicker').color = col = HexToHSB(fixHex(this.value)); + } else if (this.parentNode.className.indexOf('_hsb') > 0) { + cal.data('colorpicker').color = col = fixHSB({ + h: parseInt(cal.data('colorpicker').fields.eq(4).val(), 10), + s: parseInt(cal.data('colorpicker').fields.eq(5).val(), 10), + b: parseInt(cal.data('colorpicker').fields.eq(6).val(), 10) + }); + } else { + cal.data('colorpicker').color = col = RGBToHSB(fixRGB({ + r: parseInt(cal.data('colorpicker').fields.eq(1).val(), 10), + g: parseInt(cal.data('colorpicker').fields.eq(2).val(), 10), + b: parseInt(cal.data('colorpicker').fields.eq(3).val(), 10) + })); + } + if (ev) { + fillRGBFields(col, cal.get(0)); + fillHexFields(col, cal.get(0)); + fillHSBFields(col, cal.get(0)); + } + setSelector(col, cal.get(0)); + setHue(col, cal.get(0)); + setNewColor(col, cal.get(0)); + cal.data('colorpicker').onChange.apply(cal, [col, HSBToHex(col), HSBToRGB(col)]); + clickSubmit(ev, currentPicker); + }, + blur = function (ev) { + var cal = $(this).parent().parent(); + cal.data('colorpicker').fields.parent().removeClass('colorpicker_focus'); + }, + focus = function () { + charMin = this.parentNode.className.indexOf('_hex') > 0 ? 70 : 65; + $(this).parent().parent().data('colorpicker').fields.parent().removeClass('colorpicker_focus'); + $(this).parent().addClass('colorpicker_focus'); + }, + downIncrement = function (ev) { + var field = $(this).parent().find('input').focus(); + var current = { + el: $(this).parent().addClass('colorpicker_slider'), + max: this.parentNode.className.indexOf('_hsb_h') > 0 ? 360 : (this.parentNode.className.indexOf('_hsb') > 0 ? 100 : 255), + y: ev.pageY, + field: field, + val: parseInt(field.val(), 10), + preview: $(this).parent().parent().data('colorpicker').livePreview + }; + $(document).bind('mouseup', current, upIncrement); + $(document).bind('mousemove', current, moveIncrement); + }, + moveIncrement = function (ev) { + ev.data.field.val(Math.max(0, Math.min(ev.data.max, parseInt(ev.data.val + ev.pageY - ev.data.y, 10)))); + if (ev.data.preview) { + change.apply(ev.data.field.get(0), [true]); + } + return false; + }, + upIncrement = function (ev) { + change.apply(ev.data.field.get(0), [true]); + ev.data.el.removeClass('colorpicker_slider').find('input').focus(); + $(document).unbind('mouseup', upIncrement); + $(document).unbind('mousemove', moveIncrement); + return false; + }, + downHue = function (ev) { + var current = { + cal: $(this).parent(), + y: $(this).offset().top + }; + current.preview = current.cal.data('colorpicker').livePreview; + $(document).bind('mouseup', current, upHue); + $(document).bind('mousemove', current, moveHue); + }, + moveHue = function (ev) { + change.apply( + ev.data.cal.data('colorpicker') + .fields + .eq(4) + .val(parseInt(360*(150 - Math.max(0,Math.min(150,(ev.pageY - ev.data.y))))/150, 10)) + .get(0), + [ev.data.preview] + ); + return false; + }, + upHue = function (ev) { + fillRGBFields(ev.data.cal.data('colorpicker').color, ev.data.cal.get(0)); + fillHexFields(ev.data.cal.data('colorpicker').color, ev.data.cal.get(0)); + $(document).unbind('mouseup', upHue); + $(document).unbind('mousemove', moveHue); + return false; + }, + downSelector = function (ev) { + // MARK start selector + var current = { + cal: $(this).parent(), + pos: $(this).offset() + }; + current.preview = current.cal.data('colorpicker').livePreview; + $(document).bind('mouseup', current, upSelector); + $(document).bind('mousemove', current, moveSelector); + }, + moveSelector = function (ev) { + // MARK move selector + change.apply( + ev.data.cal.data('colorpicker') + .fields + .eq(6) + .val(parseInt(100*(150 - Math.max(0,Math.min(150,(ev.pageY - ev.data.pos.top))))/150, 10)) + .end() + .eq(5) + .val(parseInt(100*(Math.max(0,Math.min(150,(ev.pageX - ev.data.pos.left))))/150, 10)) + .get(0), + [ev.data.preview] + ); + return false; + }, + upSelector = function (ev) { + fillRGBFields(ev.data.cal.data('colorpicker').color, ev.data.cal.get(0)); + fillHexFields(ev.data.cal.data('colorpicker').color, ev.data.cal.get(0)); + $(document).unbind('mouseup', upSelector); + $(document).unbind('mousemove', moveSelector); + return false; + }, + enterSubmit = function (ev) { + $(this).addClass('colorpicker_focus'); + }, + leaveSubmit = function (ev) { + $(this).removeClass('colorpicker_focus'); + }, + clickSubmit = function (ev, cal) { + // MARK submit + if(cal == null) + { + cal = $(this).parent(); + } + + var col = cal.data('colorpicker').color; + cal.data('colorpicker').origColor = col; + setCurrentColor(col, cal.get(0)); + cal.data('colorpicker').onSubmit(col, HSBToHex(col), HSBToRGB(col), cal.data('colorpicker').el); + }, + show = function (ev) { + var cal = $('#' + $(this).data('colorpickerId')); + cal.data('colorpicker').onBeforeShow.apply(this, [cal.get(0)]); + var pos = $(this).offset(); + var viewPort = getViewport(); + var top = pos.top + this.offsetHeight; + var left = pos.left; + if (top + 176 > viewPort.t + viewPort.h) { + top -= this.offsetHeight + 176; + } + if (left + 356 > viewPort.l + viewPort.w) { + left -= 356; + } + cal.css({left: left + 'px', top: top + 'px'}); + if (cal.data('colorpicker').onShow.apply(this, [cal.get(0)]) != false) { + cal.show(); + } + $(document).bind('mousedown', {cal: cal}, hide); + currentPicker = cal; + return false; + }, + hide = function (ev) { + if (!isChildOf(ev.data.cal.get(0), ev.target, ev.data.cal.get(0))) { + if (ev.data.cal.data('colorpicker').onHide.apply(this, [ev.data.cal.get(0)]) != false) { + ev.data.cal.hide(); + } + $(document).unbind('mousedown', hide); + } + }, + isChildOf = function(parentEl, el, container) { + if (parentEl == el) { + return true; + } + if (parentEl.contains) { + return parentEl.contains(el); + } + if ( parentEl.compareDocumentPosition ) { + return !!(parentEl.compareDocumentPosition(el) & 16); + } + var prEl = el.parentNode; + while(prEl && prEl != container) { + if (prEl == parentEl) + return true; + prEl = prEl.parentNode; + } + return false; + }, + getViewport = function () { + var m = document.compatMode == 'CSS1Compat'; + return { + l : window.pageXOffset || (m ? document.documentElement.scrollLeft : document.body.scrollLeft), + t : window.pageYOffset || (m ? document.documentElement.scrollTop : document.body.scrollTop), + w : window.innerWidth || (m ? document.documentElement.clientWidth : document.body.clientWidth), + h : window.innerHeight || (m ? document.documentElement.clientHeight : document.body.clientHeight) + }; + }, + fixHSB = function (hsb) { + return { + h: Math.min(360, Math.max(0, hsb.h)), + s: Math.min(100, Math.max(0, hsb.s)), + b: Math.min(100, Math.max(0, hsb.b)) + }; + }, + fixRGB = function (rgb) { + return { + r: Math.min(255, Math.max(0, rgb.r)), + g: Math.min(255, Math.max(0, rgb.g)), + b: Math.min(255, Math.max(0, rgb.b)) + }; + }, + fixHex = function (hex) { + var len = 6 - hex.length; + if (len > 0) { + var o = []; + for (var i=0; i -1) ? hex.substring(1) : hex), 16); + return {r: hex >> 16, g: (hex & 0x00FF00) >> 8, b: (hex & 0x0000FF)}; + }, + HexToHSB = function (hex) { + return RGBToHSB(HexToRGB(hex)); + }, + RGBToHSB = function (rgb) { + var hsb = { + h: 0, + s: 0, + b: 0 + }; + var min = Math.min(rgb.r, rgb.g, rgb.b); + var max = Math.max(rgb.r, rgb.g, rgb.b); + var delta = max - min; + hsb.b = max; + if (max != 0) { + + } + hsb.s = max != 0 ? 255 * delta / max : 0; + if (hsb.s != 0) { + if (rgb.r == max) { + hsb.h = (rgb.g - rgb.b) / delta; + } else if (rgb.g == max) { + hsb.h = 2 + (rgb.b - rgb.r) / delta; + } else { + hsb.h = 4 + (rgb.r - rgb.g) / delta; + } + } else { + hsb.h = -1; + } + hsb.h *= 60; + if (hsb.h < 0) { + hsb.h += 360; + } + hsb.s *= 100/255; + hsb.b *= 100/255; + return hsb; + }, + HSBToRGB = function (hsb) { + var rgb = {}; + var h = Math.round(hsb.h); + var s = Math.round(hsb.s*255/100); + var v = Math.round(hsb.b*255/100); + if(s == 0) { + rgb.r = rgb.g = rgb.b = v; + } else { + var t1 = v; + var t2 = (255-s)*v/255; + var t3 = (t1-t2)*(h%60)/60; + if(h==360) h = 0; + if(h<60) {rgb.r=t1; rgb.b=t2; rgb.g=t2+t3} + else if(h<120) {rgb.g=t1; rgb.b=t2; rgb.r=t1-t3} + else if(h<180) {rgb.g=t1; rgb.r=t2; rgb.b=t2+t3} + else if(h<240) {rgb.b=t1; rgb.r=t2; rgb.g=t1-t3} + else if(h<300) {rgb.b=t1; rgb.g=t2; rgb.r=t2+t3} + else if(h<360) {rgb.r=t1; rgb.g=t2; rgb.b=t1-t3} + else {rgb.r=0; rgb.g=0; rgb.b=0} + } + return {r:Math.round(rgb.r), g:Math.round(rgb.g), b:Math.round(rgb.b)}; + }, + RGBToHex = function (rgb) { + var hex = [ + rgb.r.toString(16), + rgb.g.toString(16), + rgb.b.toString(16) + ]; + $.each(hex, function (nr, val) { + if (val.length == 1) { + hex[nr] = '0' + val; + } + }); + return hex.join(''); + }, + HSBToHex = function (hsb) { + return RGBToHex(HSBToRGB(hsb)); + }, + restoreOriginal = function () { + var cal = $(this).parent(); + var col = cal.data('colorpicker').origColor; + cal.data('colorpicker').color = col; + fillRGBFields(col, cal.get(0)); + fillHexFields(col, cal.get(0)); + fillHSBFields(col, cal.get(0)); + setSelector(col, cal.get(0)); + setHue(col, cal.get(0)); + setNewColor(col, cal.get(0)); + }; + return { + init: function (opt) { + opt = $.extend({}, defaults, opt||{}); + if (typeof opt.color == 'string') { + opt.color = HexToHSB(opt.color); + } else if (opt.color.r != undefined && opt.color.g != undefined && opt.color.b != undefined) { + opt.color = RGBToHSB(opt.color); + } else if (opt.color.h != undefined && opt.color.s != undefined && opt.color.b != undefined) { + opt.color = fixHSB(opt.color); + } else { + return this; + } + return this.each(function () { + if (!$(this).data('colorpickerId')) { + var options = $.extend({}, opt); + options.origColor = opt.color; + var id = 'collorpicker_' + parseInt(Math.random() * 1000); + $(this).data('colorpickerId', id); + var cal = $(tpl).attr('id', id); + if (options.flat) { + cal.appendTo(this).show(); + } else { + cal.appendTo(document.body); + } + options.fields = cal + .find('input') + .bind('keyup', keyDown) + .bind('change', change) + .bind('blur', blur) + .bind('focus', focus); + cal + .find('span').bind('mousedown', downIncrement).end() + .find('>div.colorpicker_current_color').bind('click', restoreOriginal); + options.selector = cal.find('div.colorpicker_color').bind('mousedown', downSelector); + options.selectorIndic = options.selector.find('div div'); + options.el = this; + options.hue = cal.find('div.colorpicker_hue div'); + cal.find('div.colorpicker_hue').bind('mousedown', downHue); + options.newColor = cal.find('div.colorpicker_new_color'); + options.currentColor = cal.find('div.colorpicker_current_color'); + cal.data('colorpicker', options); + cal.find('div.colorpicker_submit') + .bind('mouseenter', enterSubmit) + .bind('mouseleave', leaveSubmit) + .bind('click', clickSubmit); + fillRGBFields(options.color, cal.get(0)); + fillHSBFields(options.color, cal.get(0)); + fillHexFields(options.color, cal.get(0)); + setHue(options.color, cal.get(0)); + setSelector(options.color, cal.get(0)); + setCurrentColor(options.color, cal.get(0)); + setNewColor(options.color, cal.get(0)); + if (options.flat) { + cal.css({ + position: 'relative', + display: 'block' + }); + } else { + $(this).bind(options.eventName, show); + } + } + }); + }, + showPicker: function() { + return this.each( function () { + if ($(this).data('colorpickerId')) { + show.apply(this); + } + }); + }, + hidePicker: function() { + return this.each( function () { + if ($(this).data('colorpickerId')) { + $('#' + $(this).data('colorpickerId')).hide(); + } + }); + }, + setColor: function(col) { + if (typeof col == 'string') { + col = HexToHSB(col); + } else if (col.r != undefined && col.g != undefined && col.b != undefined) { + col = RGBToHSB(col); + } else if (col.h != undefined && col.s != undefined && col.b != undefined) { + col = fixHSB(col); + } else { + return this; + } + return this.each(function(){ + if ($(this).data('colorpickerId')) { + var cal = $('#' + $(this).data('colorpickerId')); + cal.data('colorpicker').color = col; + cal.data('colorpicker').origColor = col; + fillRGBFields(col, cal.get(0)); + fillHSBFields(col, cal.get(0)); + fillHexFields(col, cal.get(0)); + setHue(col, cal.get(0)); + setSelector(col, cal.get(0)); + setCurrentColor(col, cal.get(0)); + setNewColor(col, cal.get(0)); + } + }); + } + }; + }(); + $.fn.extend({ + ColorPicker: ColorPicker.init, + ColorPickerHide: ColorPicker.hidePicker, + ColorPickerShow: ColorPicker.showPicker, + ColorPickerSetColor: ColorPicker.setColor + }); +})(jQuery) diff --git a/configuration/sources/shadow-generator/js/eye.js b/configuration/sources/shadow-generator/js/eye.js new file mode 100644 index 0000000..ea70e64 --- /dev/null +++ b/configuration/sources/shadow-generator/js/eye.js @@ -0,0 +1,34 @@ +/** + * + * Zoomimage + * Author: Stefan Petre www.eyecon.ro + * + */ +(function($){ + var EYE = window.EYE = function() { + var _registered = { + init: [] + }; + return { + init: function() { + $.each(_registered.init, function(nr, fn){ + fn.call(); + }); + }, + extend: function(prop) { + for (var i in prop) { + if (prop[i] != undefined) { + this[i] = prop[i]; + } + } + }, + register: function(fn, type) { + if (!_registered[type]) { + _registered[type] = []; + } + _registered[type].push(fn); + } + }; + }(); + $(EYE.init); +})(jQuery); diff --git a/configuration/sources/shadow-generator/js/jquery.js b/configuration/sources/shadow-generator/js/jquery.js new file mode 100644 index 0000000..423fd77 --- /dev/null +++ b/configuration/sources/shadow-generator/js/jquery.js @@ -0,0 +1,4376 @@ +/*! + * jQuery JavaScript Library v1.3.2 + * http://jquery.com/ + * + * Copyright (c) 2009 John Resig + * Dual licensed under the MIT and GPL licenses. + * http://docs.jquery.com/License + * + * Date: 2009-02-19 17:34:21 -0500 (Thu, 19 Feb 2009) + * Revision: 6246 + */ +(function(){ + +var + // Will speed up references to window, and allows munging its name. + window = this, + // Will speed up references to undefined, and allows munging its name. + undefined, + // Map over jQuery in case of overwrite + _jQuery = window.jQuery, + // Map over the $ in case of overwrite + _$ = window.$, + + jQuery = window.jQuery = window.$ = function( selector, context ) { + // The jQuery object is actually just the init constructor 'enhanced' + return new jQuery.fn.init( selector, context ); + }, + + // A simple way to check for HTML strings or ID strings + // (both of which we optimize for) + quickExpr = /^[^<]*(<(.|\s)+>)[^>]*$|^#([\w-]+)$/, + // Is it a simple selector + isSimple = /^.[^:#\[\.,]*$/; + +jQuery.fn = jQuery.prototype = { + init: function( selector, context ) { + // Make sure that a selection was provided + selector = selector || document; + + // Handle $(DOMElement) + if ( selector.nodeType ) { + this[0] = selector; + this.length = 1; + this.context = selector; + return this; + } + // Handle HTML strings + if ( typeof selector === "string" ) { + // Are we dealing with HTML string or an ID? + var match = quickExpr.exec( selector ); + + // Verify a match, and that no context was specified for #id + if ( match && (match[1] || !context) ) { + + // HANDLE: $(html) -> $(array) + if ( match[1] ) + selector = jQuery.clean( [ match[1] ], context ); + + // HANDLE: $("#id") + else { + var elem = document.getElementById( match[3] ); + + // Handle the case where IE and Opera return items + // by name instead of ID + if ( elem && elem.id != match[3] ) + return jQuery().find( selector ); + + // Otherwise, we inject the element directly into the jQuery object + var ret = jQuery( elem || [] ); + ret.context = document; + ret.selector = selector; + return ret; + } + + // HANDLE: $(expr, [context]) + // (which is just equivalent to: $(content).find(expr) + } else + return jQuery( context ).find( selector ); + + // HANDLE: $(function) + // Shortcut for document ready + } else if ( jQuery.isFunction( selector ) ) + return jQuery( document ).ready( selector ); + + // Make sure that old selector state is passed along + if ( selector.selector && selector.context ) { + this.selector = selector.selector; + this.context = selector.context; + } + + return this.setArray(jQuery.isArray( selector ) ? + selector : + jQuery.makeArray(selector)); + }, + + // Start with an empty selector + selector: "", + + // The current version of jQuery being used + jquery: "1.3.2", + + // The number of elements contained in the matched element set + size: function() { + return this.length; + }, + + // Get the Nth element in the matched element set OR + // Get the whole matched element set as a clean array + get: function( num ) { + return num === undefined ? + + // Return a 'clean' array + Array.prototype.slice.call( this ) : + + // Return just the object + this[ num ]; + }, + + // Take an array of elements and push it onto the stack + // (returning the new matched element set) + pushStack: function( elems, name, selector ) { + // Build a new jQuery matched element set + var ret = jQuery( elems ); + + // Add the old object onto the stack (as a reference) + ret.prevObject = this; + + ret.context = this.context; + + if ( name === "find" ) + ret.selector = this.selector + (this.selector ? " " : "") + selector; + else if ( name ) + ret.selector = this.selector + "." + name + "(" + selector + ")"; + + // Return the newly-formed element set + return ret; + }, + + // Force the current matched set of elements to become + // the specified array of elements (destroying the stack in the process) + // You should use pushStack() in order to do this, but maintain the stack + setArray: function( elems ) { + // Resetting the length to 0, then using the native Array push + // is a super-fast way to populate an object with array-like properties + this.length = 0; + Array.prototype.push.apply( this, elems ); + + return this; + }, + + // Execute a callback for every element in the matched set. + // (You can seed the arguments with an array of args, but this is + // only used internally.) + each: function( callback, args ) { + return jQuery.each( this, callback, args ); + }, + + // Determine the position of an element within + // the matched set of elements + index: function( elem ) { + // Locate the position of the desired element + return jQuery.inArray( + // If it receives a jQuery object, the first element is used + elem && elem.jquery ? elem[0] : elem + , this ); + }, + + attr: function( name, value, type ) { + var options = name; + + // Look for the case where we're accessing a style value + if ( typeof name === "string" ) + if ( value === undefined ) + return this[0] && jQuery[ type || "attr" ]( this[0], name ); + + else { + options = {}; + options[ name ] = value; + } + + // Check to see if we're setting style values + return this.each(function(i){ + // Set all the styles + for ( name in options ) + jQuery.attr( + type ? + this.style : + this, + name, jQuery.prop( this, options[ name ], type, i, name ) + ); + }); + }, + + css: function( key, value ) { + // ignore negative width and height values + if ( (key == 'width' || key == 'height') && parseFloat(value) < 0 ) + value = undefined; + return this.attr( key, value, "curCSS" ); + }, + + text: function( text ) { + if ( typeof text !== "object" && text != null ) + return this.empty().append( (this[0] && this[0].ownerDocument || document).createTextNode( text ) ); + + var ret = ""; + + jQuery.each( text || this, function(){ + jQuery.each( this.childNodes, function(){ + if ( this.nodeType != 8 ) + ret += this.nodeType != 1 ? + this.nodeValue : + jQuery.fn.text( [ this ] ); + }); + }); + + return ret; + }, + + wrapAll: function( html ) { + if ( this[0] ) { + // The elements to wrap the target around + var wrap = jQuery( html, this[0].ownerDocument ).clone(); + + if ( this[0].parentNode ) + wrap.insertBefore( this[0] ); + + wrap.map(function(){ + var elem = this; + + while ( elem.firstChild ) + elem = elem.firstChild; + + return elem; + }).append(this); + } + + return this; + }, + + wrapInner: function( html ) { + return this.each(function(){ + jQuery( this ).contents().wrapAll( html ); + }); + }, + + wrap: function( html ) { + return this.each(function(){ + jQuery( this ).wrapAll( html ); + }); + }, + + append: function() { + return this.domManip(arguments, true, function(elem){ + if (this.nodeType == 1) + this.appendChild( elem ); + }); + }, + + prepend: function() { + return this.domManip(arguments, true, function(elem){ + if (this.nodeType == 1) + this.insertBefore( elem, this.firstChild ); + }); + }, + + before: function() { + return this.domManip(arguments, false, function(elem){ + this.parentNode.insertBefore( elem, this ); + }); + }, + + after: function() { + return this.domManip(arguments, false, function(elem){ + this.parentNode.insertBefore( elem, this.nextSibling ); + }); + }, + + end: function() { + return this.prevObject || jQuery( [] ); + }, + + // For internal use only. + // Behaves like an Array's method, not like a jQuery method. + push: [].push, + sort: [].sort, + splice: [].splice, + + find: function( selector ) { + if ( this.length === 1 ) { + var ret = this.pushStack( [], "find", selector ); + ret.length = 0; + jQuery.find( selector, this[0], ret ); + return ret; + } else { + return this.pushStack( jQuery.unique(jQuery.map(this, function(elem){ + return jQuery.find( selector, elem ); + })), "find", selector ); + } + }, + + clone: function( events ) { + // Do the clone + var ret = this.map(function(){ + if ( !jQuery.support.noCloneEvent && !jQuery.isXMLDoc(this) ) { + // IE copies events bound via attachEvent when + // using cloneNode. Calling detachEvent on the + // clone will also remove the events from the orignal + // In order to get around this, we use innerHTML. + // Unfortunately, this means some modifications to + // attributes in IE that are actually only stored + // as properties will not be copied (such as the + // the name attribute on an input). + var html = this.outerHTML; + if ( !html ) { + var div = this.ownerDocument.createElement("div"); + div.appendChild( this.cloneNode(true) ); + html = div.innerHTML; + } + + return jQuery.clean([html.replace(/ jQuery\d+="(?:\d+|null)"/g, "").replace(/^\s*/, "")])[0]; + } else + return this.cloneNode(true); + }); + + // Copy the events from the original to the clone + if ( events === true ) { + var orig = this.find("*").andSelf(), i = 0; + + ret.find("*").andSelf().each(function(){ + if ( this.nodeName !== orig[i].nodeName ) + return; + + var events = jQuery.data( orig[i], "events" ); + + for ( var type in events ) { + for ( var handler in events[ type ] ) { + jQuery.event.add( this, type, events[ type ][ handler ], events[ type ][ handler ].data ); + } + } + + i++; + }); + } + + // Return the cloned set + return ret; + }, + + filter: function( selector ) { + return this.pushStack( + jQuery.isFunction( selector ) && + jQuery.grep(this, function(elem, i){ + return selector.call( elem, i ); + }) || + + jQuery.multiFilter( selector, jQuery.grep(this, function(elem){ + return elem.nodeType === 1; + }) ), "filter", selector ); + }, + + closest: function( selector ) { + var pos = jQuery.expr.match.POS.test( selector ) ? jQuery(selector) : null, + closer = 0; + + return this.map(function(){ + var cur = this; + while ( cur && cur.ownerDocument ) { + if ( pos ? pos.index(cur) > -1 : jQuery(cur).is(selector) ) { + jQuery.data(cur, "closest", closer); + return cur; + } + cur = cur.parentNode; + closer++; + } + }); + }, + + not: function( selector ) { + if ( typeof selector === "string" ) + // test special case where just one selector is passed in + if ( isSimple.test( selector ) ) + return this.pushStack( jQuery.multiFilter( selector, this, true ), "not", selector ); + else + selector = jQuery.multiFilter( selector, this ); + + var isArrayLike = selector.length && selector[selector.length - 1] !== undefined && !selector.nodeType; + return this.filter(function() { + return isArrayLike ? jQuery.inArray( this, selector ) < 0 : this != selector; + }); + }, + + add: function( selector ) { + return this.pushStack( jQuery.unique( jQuery.merge( + this.get(), + typeof selector === "string" ? + jQuery( selector ) : + jQuery.makeArray( selector ) + ))); + }, + + is: function( selector ) { + return !!selector && jQuery.multiFilter( selector, this ).length > 0; + }, + + hasClass: function( selector ) { + return !!selector && this.is( "." + selector ); + }, + + val: function( value ) { + if ( value === undefined ) { + var elem = this[0]; + + if ( elem ) { + if( jQuery.nodeName( elem, 'option' ) ) + return (elem.attributes.value || {}).specified ? elem.value : elem.text; + + // We need to handle select boxes special + if ( jQuery.nodeName( elem, "select" ) ) { + var index = elem.selectedIndex, + values = [], + options = elem.options, + one = elem.type == "select-one"; + + // Nothing was selected + if ( index < 0 ) + return null; + + // Loop through all the selected options + for ( var i = one ? index : 0, max = one ? index + 1 : options.length; i < max; i++ ) { + var option = options[ i ]; + + if ( option.selected ) { + // Get the specifc value for the option + value = jQuery(option).val(); + + // We don't need an array for one selects + if ( one ) + return value; + + // Multi-Selects return an array + values.push( value ); + } + } + + return values; + } + + // Everything else, we just grab the value + return (elem.value || "").replace(/\r/g, ""); + + } + + return undefined; + } + + if ( typeof value === "number" ) + value += ''; + + return this.each(function(){ + if ( this.nodeType != 1 ) + return; + + if ( jQuery.isArray(value) && /radio|checkbox/.test( this.type ) ) + this.checked = (jQuery.inArray(this.value, value) >= 0 || + jQuery.inArray(this.name, value) >= 0); + + else if ( jQuery.nodeName( this, "select" ) ) { + var values = jQuery.makeArray(value); + + jQuery( "option", this ).each(function(){ + this.selected = (jQuery.inArray( this.value, values ) >= 0 || + jQuery.inArray( this.text, values ) >= 0); + }); + + if ( !values.length ) + this.selectedIndex = -1; + + } else + this.value = value; + }); + }, + + html: function( value ) { + return value === undefined ? + (this[0] ? + this[0].innerHTML.replace(/ jQuery\d+="(?:\d+|null)"/g, "") : + null) : + this.empty().append( value ); + }, + + replaceWith: function( value ) { + return this.after( value ).remove(); + }, + + eq: function( i ) { + return this.slice( i, +i + 1 ); + }, + + slice: function() { + return this.pushStack( Array.prototype.slice.apply( this, arguments ), + "slice", Array.prototype.slice.call(arguments).join(",") ); + }, + + map: function( callback ) { + return this.pushStack( jQuery.map(this, function(elem, i){ + return callback.call( elem, i, elem ); + })); + }, + + andSelf: function() { + return this.add( this.prevObject ); + }, + + domManip: function( args, table, callback ) { + if ( this[0] ) { + var fragment = (this[0].ownerDocument || this[0]).createDocumentFragment(), + scripts = jQuery.clean( args, (this[0].ownerDocument || this[0]), fragment ), + first = fragment.firstChild; + + if ( first ) + for ( var i = 0, l = this.length; i < l; i++ ) + callback.call( root(this[i], first), this.length > 1 || i > 0 ? + fragment.cloneNode(true) : fragment ); + + if ( scripts ) + jQuery.each( scripts, evalScript ); + } + + return this; + + function root( elem, cur ) { + return table && jQuery.nodeName(elem, "table") && jQuery.nodeName(cur, "tr") ? + (elem.getElementsByTagName("tbody")[0] || + elem.appendChild(elem.ownerDocument.createElement("tbody"))) : + elem; + } + } +}; + +// Give the init function the jQuery prototype for later instantiation +jQuery.fn.init.prototype = jQuery.fn; + +function evalScript( i, elem ) { + if ( elem.src ) + jQuery.ajax({ + url: elem.src, + async: false, + dataType: "script" + }); + + else + jQuery.globalEval( elem.text || elem.textContent || elem.innerHTML || "" ); + + if ( elem.parentNode ) + elem.parentNode.removeChild( elem ); +} + +function now(){ + return +new Date; +} + +jQuery.extend = jQuery.fn.extend = function() { + // copy reference to target object + var target = arguments[0] || {}, i = 1, length = arguments.length, deep = false, options; + + // Handle a deep copy situation + if ( typeof target === "boolean" ) { + deep = target; + target = arguments[1] || {}; + // skip the boolean and the target + i = 2; + } + + // Handle case when target is a string or something (possible in deep copy) + if ( typeof target !== "object" && !jQuery.isFunction(target) ) + target = {}; + + // extend jQuery itself if only one argument is passed + if ( length == i ) { + target = this; + --i; + } + + for ( ; i < length; i++ ) + // Only deal with non-null/undefined values + if ( (options = arguments[ i ]) != null ) + // Extend the base object + for ( var name in options ) { + var src = target[ name ], copy = options[ name ]; + + // Prevent never-ending loop + if ( target === copy ) + continue; + + // Recurse if we're merging object values + if ( deep && copy && typeof copy === "object" && !copy.nodeType ) + target[ name ] = jQuery.extend( deep, + // Never move original objects, clone them + src || ( copy.length != null ? [ ] : { } ) + , copy ); + + // Don't bring in undefined values + else if ( copy !== undefined ) + target[ name ] = copy; + + } + + // Return the modified object + return target; +}; + +// exclude the following css properties to add px +var exclude = /z-?index|font-?weight|opacity|zoom|line-?height/i, + // cache defaultView + defaultView = document.defaultView || {}, + toString = Object.prototype.toString; + +jQuery.extend({ + noConflict: function( deep ) { + window.$ = _$; + + if ( deep ) + window.jQuery = _jQuery; + + return jQuery; + }, + + // See test/unit/core.js for details concerning isFunction. + // Since version 1.3, DOM methods and functions like alert + // aren't supported. They return false on IE (#2968). + isFunction: function( obj ) { + return toString.call(obj) === "[object Function]"; + }, + + isArray: function( obj ) { + return toString.call(obj) === "[object Array]"; + }, + + // check if an element is in a (or is an) XML document + isXMLDoc: function( elem ) { + return elem.nodeType === 9 && elem.documentElement.nodeName !== "HTML" || + !!elem.ownerDocument && jQuery.isXMLDoc( elem.ownerDocument ); + }, + + // Evalulates a script in a global context + globalEval: function( data ) { + if ( data && /\S/.test(data) ) { + // Inspired by code by Andrea Giammarchi + // http://webreflection.blogspot.com/2007/08/global-scope-evaluation-and-dom.html + var head = document.getElementsByTagName("head")[0] || document.documentElement, + script = document.createElement("script"); + + script.type = "text/javascript"; + if ( jQuery.support.scriptEval ) + script.appendChild( document.createTextNode( data ) ); + else + script.text = data; + + // Use insertBefore instead of appendChild to circumvent an IE6 bug. + // This arises when a base node is used (#2709). + head.insertBefore( script, head.firstChild ); + head.removeChild( script ); + } + }, + + nodeName: function( elem, name ) { + return elem.nodeName && elem.nodeName.toUpperCase() == name.toUpperCase(); + }, + + // args is for internal usage only + each: function( object, callback, args ) { + var name, i = 0, length = object.length; + + if ( args ) { + if ( length === undefined ) { + for ( name in object ) + if ( callback.apply( object[ name ], args ) === false ) + break; + } else + for ( ; i < length; ) + if ( callback.apply( object[ i++ ], args ) === false ) + break; + + // A special, fast, case for the most common use of each + } else { + if ( length === undefined ) { + for ( name in object ) + if ( callback.call( object[ name ], name, object[ name ] ) === false ) + break; + } else + for ( var value = object[0]; + i < length && callback.call( value, i, value ) !== false; value = object[++i] ){} + } + + return object; + }, + + prop: function( elem, value, type, i, name ) { + // Handle executable functions + if ( jQuery.isFunction( value ) ) + value = value.call( elem, i ); + + // Handle passing in a number to a CSS property + return typeof value === "number" && type == "curCSS" && !exclude.test( name ) ? + value + "px" : + value; + }, + + className: { + // internal only, use addClass("class") + add: function( elem, classNames ) { + jQuery.each((classNames || "").split(/\s+/), function(i, className){ + if ( elem.nodeType == 1 && !jQuery.className.has( elem.className, className ) ) + elem.className += (elem.className ? " " : "") + className; + }); + }, + + // internal only, use removeClass("class") + remove: function( elem, classNames ) { + if (elem.nodeType == 1) + elem.className = classNames !== undefined ? + jQuery.grep(elem.className.split(/\s+/), function(className){ + return !jQuery.className.has( classNames, className ); + }).join(" ") : + ""; + }, + + // internal only, use hasClass("class") + has: function( elem, className ) { + return elem && jQuery.inArray( className, (elem.className || elem).toString().split(/\s+/) ) > -1; + } + }, + + // A method for quickly swapping in/out CSS properties to get correct calculations + swap: function( elem, options, callback ) { + var old = {}; + // Remember the old values, and insert the new ones + for ( var name in options ) { + old[ name ] = elem.style[ name ]; + elem.style[ name ] = options[ name ]; + } + + callback.call( elem ); + + // Revert the old values + for ( var name in options ) + elem.style[ name ] = old[ name ]; + }, + + css: function( elem, name, force, extra ) { + if ( name == "width" || name == "height" ) { + var val, props = { position: "absolute", visibility: "hidden", display:"block" }, which = name == "width" ? [ "Left", "Right" ] : [ "Top", "Bottom" ]; + + function getWH() { + val = name == "width" ? elem.offsetWidth : elem.offsetHeight; + + if ( extra === "border" ) + return; + + jQuery.each( which, function() { + if ( !extra ) + val -= parseFloat(jQuery.curCSS( elem, "padding" + this, true)) || 0; + if ( extra === "margin" ) + val += parseFloat(jQuery.curCSS( elem, "margin" + this, true)) || 0; + else + val -= parseFloat(jQuery.curCSS( elem, "border" + this + "Width", true)) || 0; + }); + } + + if ( elem.offsetWidth !== 0 ) + getWH(); + else + jQuery.swap( elem, props, getWH ); + + return Math.max(0, Math.round(val)); + } + + return jQuery.curCSS( elem, name, force ); + }, + + curCSS: function( elem, name, force ) { + var ret, style = elem.style; + + // We need to handle opacity special in IE + if ( name == "opacity" && !jQuery.support.opacity ) { + ret = jQuery.attr( style, "opacity" ); + + return ret == "" ? + "1" : + ret; + } + + // Make sure we're using the right name for getting the float value + if ( name.match( /float/i ) ) + name = styleFloat; + + if ( !force && style && style[ name ] ) + ret = style[ name ]; + + else if ( defaultView.getComputedStyle ) { + + // Only "float" is needed here + if ( name.match( /float/i ) ) + name = "float"; + + name = name.replace( /([A-Z])/g, "-$1" ).toLowerCase(); + + var computedStyle = defaultView.getComputedStyle( elem, null ); + + if ( computedStyle ) + ret = computedStyle.getPropertyValue( name ); + + // We should always get a number back from opacity + if ( name == "opacity" && ret == "" ) + ret = "1"; + + } else if ( elem.currentStyle ) { + var camelCase = name.replace(/\-(\w)/g, function(all, letter){ + return letter.toUpperCase(); + }); + + ret = elem.currentStyle[ name ] || elem.currentStyle[ camelCase ]; + + // From the awesome hack by Dean Edwards + // http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291 + + // If we're not dealing with a regular pixel number + // but a number that has a weird ending, we need to convert it to pixels + if ( !/^\d+(px)?$/i.test( ret ) && /^\d/.test( ret ) ) { + // Remember the original values + var left = style.left, rsLeft = elem.runtimeStyle.left; + + // Put in the new values to get a computed value out + elem.runtimeStyle.left = elem.currentStyle.left; + style.left = ret || 0; + ret = style.pixelLeft + "px"; + + // Revert the changed values + style.left = left; + elem.runtimeStyle.left = rsLeft; + } + } + + return ret; + }, + + clean: function( elems, context, fragment ) { + context = context || document; + + // !context.createElement fails in IE with an error but returns typeof 'object' + if ( typeof context.createElement === "undefined" ) + context = context.ownerDocument || context[0] && context[0].ownerDocument || document; + + // If a single string is passed in and it's a single tag + // just do a createElement and skip the rest + if ( !fragment && elems.length === 1 && typeof elems[0] === "string" ) { + var match = /^<(\w+)\s*\/?>$/.exec(elems[0]); + if ( match ) + return [ context.createElement( match[1] ) ]; + } + + var ret = [], scripts = [], div = context.createElement("div"); + + jQuery.each(elems, function(i, elem){ + if ( typeof elem === "number" ) + elem += ''; + + if ( !elem ) + return; + + // Convert html string into DOM nodes + if ( typeof elem === "string" ) { + // Fix "XHTML"-style tags in all browsers + elem = elem.replace(/(<(\w+)[^>]*?)\/>/g, function(all, front, tag){ + return tag.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i) ? + all : + front + ">"; + }); + + // Trim whitespace, otherwise indexOf won't work as expected + var tags = elem.replace(/^\s+/, "").substring(0, 10).toLowerCase(); + + var wrap = + // option or optgroup + !tags.indexOf("", "" ] || + + !tags.indexOf("", "" ] || + + tags.match(/^<(thead|tbody|tfoot|colg|cap)/) && + [ 1, "", "
    " ] || + + !tags.indexOf("", "" ] || + + // matched above + (!tags.indexOf("", "" ] || + + !tags.indexOf("", "" ] || + + // IE can't serialize and