|
Server : Apache System : Linux vps.urbanovitalino.adv.br 3.10.0-1062.12.1.el7.x86_64 #1 SMP Tue Feb 4 23:02:59 UTC 2020 x86_64 User : urbanovitalinoad ( 1001) PHP Version : 7.3.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/urbanovitalinoad/public_html/servicedesk/public/lib/ |
Upload File : |
{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/inherits/inherits.js","webpack:///./node_modules/inherits/inherits_browser.js","webpack:///./node_modules/assert/assert.js","webpack:///./node_modules/object-assign/index.js","webpack:///./node_modules/script-loader/addScript.js","webpack:///./node_modules/console-browserify/index.js","webpack:///./lib/bundles/jquery-file-upload.js","webpack:///./vendor/blueimp/jquery-file-upload/js/jquery.fileupload.js?73ba","webpack:///./vendor/blueimp/jquery-file-upload/js/jquery.fileupload.js","webpack:///./vendor/blueimp/jquery-file-upload/js/jquery.iframe-transport.js?f46b","webpack:///./vendor/blueimp/jquery-file-upload/js/jquery.iframe-transport.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/util/util.js","webpack:///./node_modules/process/browser.js","webpack:///./node_modules/util/support/isBufferBrowser.js"],"names":[],"mappings":";QAAA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;;;QAGA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA,0CAA0C,gCAAgC;QAC1E;QACA;;QAEA;QACA;QACA;QACA,wDAAwD,kBAAkB;QAC1E;QACA,iDAAiD,cAAc;QAC/D;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,yCAAyC,iCAAiC;QAC1E,gHAAgH,mBAAmB,EAAE;QACrI;QACA;;QAEA;QACA;QACA;QACA,2BAA2B,0BAA0B,EAAE;QACvD,iCAAiC,eAAe;QAChD;QACA;QACA;;QAEA;QACA,sDAAsD,+DAA+D;;QAErH;QACA;;;QAGA;QACA;;;;;;;;AClFA;AACA,aAAa,mBAAO,CAAC,CAAM;AAC3B;AACA;AACA,CAAC;AACD,mBAAmB,mBAAO,CAAC,EAAuB;AAClD;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtBA,8CAAa;;AAEb,mBAAmB,mBAAO,CAAC,EAAe;;AAE1C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,uCAAuC,SAAS;AAChD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,WAAW,mBAAO,CAAC,CAAO;AAC1B;AACA;AACA;AACA,0BAA0B;AAC1B,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,8BAA8B;AAC9B;AACA,mDAAmD;;AAEnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,gBAAgB;AAChB,gDAAgD;;AAEhD;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH,sBAAsB;;AAEtB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,QAAQ;AACjC;AACA;AACA;AACA;AACA;AACA,yBAAyB,QAAQ;AACjC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;;AAEA,yBAAyB;AACzB;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,gCAAgC,oBAAoB;;AAEpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;ACzfA;AACA;AACA;AACA;AACA;;AAEa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;;AAEA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH,kCAAkC;AAClC;AACA;AACA;;AAEA;AACA,EAAE;AACF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,gBAAgB,sBAAsB;AACtC;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kBAAkB,oBAAoB;AACtC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;ACzFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA,EAAE;AACF;AACA;AACA;;;;;;;;;AC1BA;AACA,WAAW,mBAAO,CAAC,CAAM;AACzB,aAAa,mBAAO,CAAC,EAAQ;AAC7B,gBAAgB;;AAEhB;AACA;AACA;;AAEA;AACA;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,eAAe,sBAAsB;AACrC;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA,gCAAgC;AAChC;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,mBAAO,CAAC,GAA8D;AACtE,mBAAO,CAAC,GAAoE;;;;;;;;ACjC5E,mBAAO,CAAC,CAAgE,EAAE,mBAAO,CAAC,GAA0M,E;;;;;;;ACA5R,iVAAiV,iBAAiB,qDAAqD,sGAAsG,KAAK,wCAAwC,8FAA8F,KAAK,OAAO,sDAAsD,KAAK,GAAG,gBAAgB,iBAAiB,8kBAA8kB,mbAAmb,wDAAwD,yNAAyN,6GAA6G,OAAO,iCAAiC,SAAS,uDAAuD,2CAA2C,2BAA2B,yEAAyE,0CAA0C,4IAA4I,oBAAoB,uBAAuB,6BAA6B,2BAA2B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DAAwD,WAAW,+BAA+B,yBAAyB,8LAA8L,aAAa,uBAAuB,4BAA4B,aAAa,WAAW,UAAU,OAAO,KAAK,EAAE,6oBAA6oB,mBAAmB,0CAA0C,oDAAoD,SAAS,2CAA2C,wEAAwE,SAAS,2CAA2C,oDAAoD,SAAS,0CAA0C,2CAA2C,kNAAkN,SAAS,6CAA6C,kEAAkE,SAAS,OAAO,KAAK,EAAE,GAAG,EAAE,G;;;;;;;ACA99R;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA,4CAA4C;;AAE5C;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mBAAmB,iBAAiB;AACpC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mBAAmB,sBAAsB;AACzC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,uBAAuB,SAAS;AAChC;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;;AAGA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,4CAA4C,KAAK;;AAEjD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,KAAK;AACL;;AAEA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;;;AAGA;AACA;AACA,mCAAmC,OAAO;AAC1C;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;;AAGA;AACA;AACA,yDAAyD;AACzD;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT;AACA;AACA,WAAW;AACX;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,mBAAO,CAAC,CAAoB;;AAE/C;AACA;AACA;;;AAGA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB;AACA,WAAW,SAAS;AACpB;AACA,mBAAmB,mBAAO,CAAC,EAAU;;AAErC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA,mBAAmB,sBAAsB;AACzC;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,sBAAsB;AACzC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,kCAAkC;AAC7D,2BAA2B,mDAAmD;AAC9E;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC9rBA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;;;AAIA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qCAAqC;;AAErC;AACA;AACA;;AAEA,2BAA2B;AAC3B;AACA;AACA;AACA,4BAA4B,UAAU;;;;;;;;ACvLtC;AACA;AACA;AACA;AACA;AACA,C","file":"jquery-file-upload.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 500);\n","try {\n var util = require('util');\n if (typeof util.inherits !== 'function') throw '';\n module.exports = util.inherits;\n} catch (e) {\n module.exports = require('./inherits_browser.js');\n}\n","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n}\n","'use strict';\n\nvar objectAssign = require('object-assign');\n\n// compare and isBuffer taken from https://github.com/feross/buffer/blob/680e9e5e488f22aac27599a57dc844a6315928dd/index.js\n// original notice:\n\n/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh <feross@feross.org> <http://feross.org>\n * @license MIT\n */\nfunction compare(a, b) {\n if (a === b) {\n return 0;\n }\n\n var x = a.length;\n var y = b.length;\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i];\n y = b[i];\n break;\n }\n }\n\n if (x < y) {\n return -1;\n }\n if (y < x) {\n return 1;\n }\n return 0;\n}\nfunction isBuffer(b) {\n if (global.Buffer && typeof global.Buffer.isBuffer === 'function') {\n return global.Buffer.isBuffer(b);\n }\n return !!(b != null && b._isBuffer);\n}\n\n// based on node assert, original notice:\n// NB: The URL to the CommonJS spec is kept just for tradition.\n// node-assert has evolved a lot since then, both in API and behavior.\n\n// http://wiki.commonjs.org/wiki/Unit_Testing/1.0\n//\n// THIS IS NOT TESTED NOR LIKELY TO WORK OUTSIDE V8!\n//\n// Originally from narwhal.js (http://narwhaljs.org)\n// Copyright (c) 2009 Thomas Robinson <280north.com>\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the 'Software'), to\n// deal in the Software without restriction, including without limitation the\n// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n// sell copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN\n// ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nvar util = require('util/');\nvar hasOwn = Object.prototype.hasOwnProperty;\nvar pSlice = Array.prototype.slice;\nvar functionsHaveNames = (function () {\n return function foo() {}.name === 'foo';\n}());\nfunction pToString (obj) {\n return Object.prototype.toString.call(obj);\n}\nfunction isView(arrbuf) {\n if (isBuffer(arrbuf)) {\n return false;\n }\n if (typeof global.ArrayBuffer !== 'function') {\n return false;\n }\n if (typeof ArrayBuffer.isView === 'function') {\n return ArrayBuffer.isView(arrbuf);\n }\n if (!arrbuf) {\n return false;\n }\n if (arrbuf instanceof DataView) {\n return true;\n }\n if (arrbuf.buffer && arrbuf.buffer instanceof ArrayBuffer) {\n return true;\n }\n return false;\n}\n// 1. The assert module provides functions that throw\n// AssertionError's when particular conditions are not met. The\n// assert module must conform to the following interface.\n\nvar assert = module.exports = ok;\n\n// 2. The AssertionError is defined in assert.\n// new assert.AssertionError({ message: message,\n// actual: actual,\n// expected: expected })\n\nvar regex = /\\s*function\\s+([^\\(\\s]*)\\s*/;\n// based on https://github.com/ljharb/function.prototype.name/blob/adeeeec8bfcc6068b187d7d9fb3d5bb1d3a30899/implementation.js\nfunction getName(func) {\n if (!util.isFunction(func)) {\n return;\n }\n if (functionsHaveNames) {\n return func.name;\n }\n var str = func.toString();\n var match = str.match(regex);\n return match && match[1];\n}\nassert.AssertionError = function AssertionError(options) {\n this.name = 'AssertionError';\n this.actual = options.actual;\n this.expected = options.expected;\n this.operator = options.operator;\n if (options.message) {\n this.message = options.message;\n this.generatedMessage = false;\n } else {\n this.message = getMessage(this);\n this.generatedMessage = true;\n }\n var stackStartFunction = options.stackStartFunction || fail;\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, stackStartFunction);\n } else {\n // non v8 browsers so we can have a stacktrace\n var err = new Error();\n if (err.stack) {\n var out = err.stack;\n\n // try to strip useless frames\n var fn_name = getName(stackStartFunction);\n var idx = out.indexOf('\\n' + fn_name);\n if (idx >= 0) {\n // once we have located the function frame\n // we need to strip out everything before it (and its line)\n var next_line = out.indexOf('\\n', idx + 1);\n out = out.substring(next_line + 1);\n }\n\n this.stack = out;\n }\n }\n};\n\n// assert.AssertionError instanceof Error\nutil.inherits(assert.AssertionError, Error);\n\nfunction truncate(s, n) {\n if (typeof s === 'string') {\n return s.length < n ? s : s.slice(0, n);\n } else {\n return s;\n }\n}\nfunction inspect(something) {\n if (functionsHaveNames || !util.isFunction(something)) {\n return util.inspect(something);\n }\n var rawname = getName(something);\n var name = rawname ? ': ' + rawname : '';\n return '[Function' + name + ']';\n}\nfunction getMessage(self) {\n return truncate(inspect(self.actual), 128) + ' ' +\n self.operator + ' ' +\n truncate(inspect(self.expected), 128);\n}\n\n// At present only the three keys mentioned above are used and\n// understood by the spec. Implementations or sub modules can pass\n// other keys to the AssertionError's constructor - they will be\n// ignored.\n\n// 3. All of the following functions must throw an AssertionError\n// when a corresponding condition is not met, with a message that\n// may be undefined if not provided. All assertion methods provide\n// both the actual and expected values to the assertion error for\n// display purposes.\n\nfunction fail(actual, expected, message, operator, stackStartFunction) {\n throw new assert.AssertionError({\n message: message,\n actual: actual,\n expected: expected,\n operator: operator,\n stackStartFunction: stackStartFunction\n });\n}\n\n// EXTENSION! allows for well behaved errors defined elsewhere.\nassert.fail = fail;\n\n// 4. Pure assertion tests whether a value is truthy, as determined\n// by !!guard.\n// assert.ok(guard, message_opt);\n// This statement is equivalent to assert.equal(true, !!guard,\n// message_opt);. To test strictly for the value true, use\n// assert.strictEqual(true, guard, message_opt);.\n\nfunction ok(value, message) {\n if (!value) fail(value, true, message, '==', assert.ok);\n}\nassert.ok = ok;\n\n// 5. The equality assertion tests shallow, coercive equality with\n// ==.\n// assert.equal(actual, expected, message_opt);\n\nassert.equal = function equal(actual, expected, message) {\n if (actual != expected) fail(actual, expected, message, '==', assert.equal);\n};\n\n// 6. The non-equality assertion tests for whether two objects are not equal\n// with != assert.notEqual(actual, expected, message_opt);\n\nassert.notEqual = function notEqual(actual, expected, message) {\n if (actual == expected) {\n fail(actual, expected, message, '!=', assert.notEqual);\n }\n};\n\n// 7. The equivalence assertion tests a deep equality relation.\n// assert.deepEqual(actual, expected, message_opt);\n\nassert.deepEqual = function deepEqual(actual, expected, message) {\n if (!_deepEqual(actual, expected, false)) {\n fail(actual, expected, message, 'deepEqual', assert.deepEqual);\n }\n};\n\nassert.deepStrictEqual = function deepStrictEqual(actual, expected, message) {\n if (!_deepEqual(actual, expected, true)) {\n fail(actual, expected, message, 'deepStrictEqual', assert.deepStrictEqual);\n }\n};\n\nfunction _deepEqual(actual, expected, strict, memos) {\n // 7.1. All identical values are equivalent, as determined by ===.\n if (actual === expected) {\n return true;\n } else if (isBuffer(actual) && isBuffer(expected)) {\n return compare(actual, expected) === 0;\n\n // 7.2. If the expected value is a Date object, the actual value is\n // equivalent if it is also a Date object that refers to the same time.\n } else if (util.isDate(actual) && util.isDate(expected)) {\n return actual.getTime() === expected.getTime();\n\n // 7.3 If the expected value is a RegExp object, the actual value is\n // equivalent if it is also a RegExp object with the same source and\n // properties (`global`, `multiline`, `lastIndex`, `ignoreCase`).\n } else if (util.isRegExp(actual) && util.isRegExp(expected)) {\n return actual.source === expected.source &&\n actual.global === expected.global &&\n actual.multiline === expected.multiline &&\n actual.lastIndex === expected.lastIndex &&\n actual.ignoreCase === expected.ignoreCase;\n\n // 7.4. Other pairs that do not both pass typeof value == 'object',\n // equivalence is determined by ==.\n } else if ((actual === null || typeof actual !== 'object') &&\n (expected === null || typeof expected !== 'object')) {\n return strict ? actual === expected : actual == expected;\n\n // If both values are instances of typed arrays, wrap their underlying\n // ArrayBuffers in a Buffer each to increase performance\n // This optimization requires the arrays to have the same type as checked by\n // Object.prototype.toString (aka pToString). Never perform binary\n // comparisons for Float*Arrays, though, since e.g. +0 === -0 but their\n // bit patterns are not identical.\n } else if (isView(actual) && isView(expected) &&\n pToString(actual) === pToString(expected) &&\n !(actual instanceof Float32Array ||\n actual instanceof Float64Array)) {\n return compare(new Uint8Array(actual.buffer),\n new Uint8Array(expected.buffer)) === 0;\n\n // 7.5 For all other Object pairs, including Array objects, equivalence is\n // determined by having the same number of owned properties (as verified\n // with Object.prototype.hasOwnProperty.call), the same set of keys\n // (although not necessarily the same order), equivalent values for every\n // corresponding key, and an identical 'prototype' property. Note: this\n // accounts for both named and indexed properties on Arrays.\n } else if (isBuffer(actual) !== isBuffer(expected)) {\n return false;\n } else {\n memos = memos || {actual: [], expected: []};\n\n var actualIndex = memos.actual.indexOf(actual);\n if (actualIndex !== -1) {\n if (actualIndex === memos.expected.indexOf(expected)) {\n return true;\n }\n }\n\n memos.actual.push(actual);\n memos.expected.push(expected);\n\n return objEquiv(actual, expected, strict, memos);\n }\n}\n\nfunction isArguments(object) {\n return Object.prototype.toString.call(object) == '[object Arguments]';\n}\n\nfunction objEquiv(a, b, strict, actualVisitedObjects) {\n if (a === null || a === undefined || b === null || b === undefined)\n return false;\n // if one is a primitive, the other must be same\n if (util.isPrimitive(a) || util.isPrimitive(b))\n return a === b;\n if (strict && Object.getPrototypeOf(a) !== Object.getPrototypeOf(b))\n return false;\n var aIsArgs = isArguments(a);\n var bIsArgs = isArguments(b);\n if ((aIsArgs && !bIsArgs) || (!aIsArgs && bIsArgs))\n return false;\n if (aIsArgs) {\n a = pSlice.call(a);\n b = pSlice.call(b);\n return _deepEqual(a, b, strict);\n }\n var ka = objectKeys(a);\n var kb = objectKeys(b);\n var key, i;\n // having the same number of owned properties (keys incorporates\n // hasOwnProperty)\n if (ka.length !== kb.length)\n return false;\n //the same set of keys (although not necessarily the same order),\n ka.sort();\n kb.sort();\n //~~~cheap key test\n for (i = ka.length - 1; i >= 0; i--) {\n if (ka[i] !== kb[i])\n return false;\n }\n //equivalent values for every corresponding key, and\n //~~~possibly expensive deep test\n for (i = ka.length - 1; i >= 0; i--) {\n key = ka[i];\n if (!_deepEqual(a[key], b[key], strict, actualVisitedObjects))\n return false;\n }\n return true;\n}\n\n// 8. The non-equivalence assertion tests for any deep inequality.\n// assert.notDeepEqual(actual, expected, message_opt);\n\nassert.notDeepEqual = function notDeepEqual(actual, expected, message) {\n if (_deepEqual(actual, expected, false)) {\n fail(actual, expected, message, 'notDeepEqual', assert.notDeepEqual);\n }\n};\n\nassert.notDeepStrictEqual = notDeepStrictEqual;\nfunction notDeepStrictEqual(actual, expected, message) {\n if (_deepEqual(actual, expected, true)) {\n fail(actual, expected, message, 'notDeepStrictEqual', notDeepStrictEqual);\n }\n}\n\n\n// 9. The strict equality assertion tests strict equality, as determined by ===.\n// assert.strictEqual(actual, expected, message_opt);\n\nassert.strictEqual = function strictEqual(actual, expected, message) {\n if (actual !== expected) {\n fail(actual, expected, message, '===', assert.strictEqual);\n }\n};\n\n// 10. The strict non-equality assertion tests for strict inequality, as\n// determined by !==. assert.notStrictEqual(actual, expected, message_opt);\n\nassert.notStrictEqual = function notStrictEqual(actual, expected, message) {\n if (actual === expected) {\n fail(actual, expected, message, '!==', assert.notStrictEqual);\n }\n};\n\nfunction expectedException(actual, expected) {\n if (!actual || !expected) {\n return false;\n }\n\n if (Object.prototype.toString.call(expected) == '[object RegExp]') {\n return expected.test(actual);\n }\n\n try {\n if (actual instanceof expected) {\n return true;\n }\n } catch (e) {\n // Ignore. The instanceof check doesn't work for arrow functions.\n }\n\n if (Error.isPrototypeOf(expected)) {\n return false;\n }\n\n return expected.call({}, actual) === true;\n}\n\nfunction _tryBlock(block) {\n var error;\n try {\n block();\n } catch (e) {\n error = e;\n }\n return error;\n}\n\nfunction _throws(shouldThrow, block, expected, message) {\n var actual;\n\n if (typeof block !== 'function') {\n throw new TypeError('\"block\" argument must be a function');\n }\n\n if (typeof expected === 'string') {\n message = expected;\n expected = null;\n }\n\n actual = _tryBlock(block);\n\n message = (expected && expected.name ? ' (' + expected.name + ').' : '.') +\n (message ? ' ' + message : '.');\n\n if (shouldThrow && !actual) {\n fail(actual, expected, 'Missing expected exception' + message);\n }\n\n var userProvidedMessage = typeof message === 'string';\n var isUnwantedException = !shouldThrow && util.isError(actual);\n var isUnexpectedException = !shouldThrow && actual && !expected;\n\n if ((isUnwantedException &&\n userProvidedMessage &&\n expectedException(actual, expected)) ||\n isUnexpectedException) {\n fail(actual, expected, 'Got unwanted exception' + message);\n }\n\n if ((shouldThrow && actual && expected &&\n !expectedException(actual, expected)) || (!shouldThrow && actual)) {\n throw actual;\n }\n}\n\n// 11. Expected to throw an error:\n// assert.throws(block, Error_opt, message_opt);\n\nassert.throws = function(block, /*optional*/error, /*optional*/message) {\n _throws(true, block, error, message);\n};\n\n// EXTENSION! This is annoying to write outside this module.\nassert.doesNotThrow = function(block, /*optional*/error, /*optional*/message) {\n _throws(false, block, error, message);\n};\n\nassert.ifError = function(err) { if (err) throw err; };\n\n// Expose a strict only variant of assert\nfunction strict(value, message) {\n if (!value) fail(value, true, message, '==', strict);\n}\nassert.strict = objectAssign(strict, assert, {\n equal: assert.strictEqual,\n deepEqual: assert.deepStrictEqual,\n notEqual: assert.notStrictEqual,\n notDeepEqual: assert.notDeepStrictEqual\n});\nassert.strict.strict = assert.strict;\n\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n for (var key in obj) {\n if (hasOwn.call(obj, key)) keys.push(key);\n }\n return keys;\n};\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\nmodule.exports = function(src) {\n\tfunction log(error) {\n\t\t(typeof console !== \"undefined\")\n\t\t&& (console.error || console.log)(\"[Script Loader]\", error);\n\t}\n\n\t// Check for IE =< 8\n\tfunction isIE() {\n\t\treturn typeof attachEvent !== \"undefined\" && typeof addEventListener === \"undefined\";\n\t}\n\n\ttry {\n\t\tif (typeof execScript !== \"undefined\" && isIE()) {\n\t\t\texecScript(src);\n\t\t} else if (typeof eval !== \"undefined\") {\n\t\t\teval.call(null, src);\n\t\t} else {\n\t\t\tlog(\"EvalError: No eval function available\");\n\t\t}\n\t} catch (error) {\n\t\tlog(error);\n\t}\n}\n","/*global window, global*/\nvar util = require(\"util\")\nvar assert = require(\"assert\")\nfunction now() { return new Date().getTime() }\n\nvar slice = Array.prototype.slice\nvar console\nvar times = {}\n\nif (typeof global !== \"undefined\" && global.console) {\n console = global.console\n} else if (typeof window !== \"undefined\" && window.console) {\n console = window.console\n} else {\n console = {}\n}\n\nvar functions = [\n [log, \"log\"],\n [info, \"info\"],\n [warn, \"warn\"],\n [error, \"error\"],\n [time, \"time\"],\n [timeEnd, \"timeEnd\"],\n [trace, \"trace\"],\n [dir, \"dir\"],\n [consoleAssert, \"assert\"]\n]\n\nfor (var i = 0; i < functions.length; i++) {\n var tuple = functions[i]\n var f = tuple[0]\n var name = tuple[1]\n\n if (!console[name]) {\n console[name] = f\n }\n}\n\nmodule.exports = console\n\nfunction log() {}\n\nfunction info() {\n console.log.apply(console, arguments)\n}\n\nfunction warn() {\n console.log.apply(console, arguments)\n}\n\nfunction error() {\n console.warn.apply(console, arguments)\n}\n\nfunction time(label) {\n times[label] = now()\n}\n\nfunction timeEnd(label) {\n var time = times[label]\n if (!time) {\n throw new Error(\"No such label: \" + label)\n }\n\n delete times[label]\n var duration = now() - time\n console.log(label + \": \" + duration + \"ms\")\n}\n\nfunction trace() {\n var err = new Error()\n err.name = \"Trace\"\n err.message = util.format.apply(null, arguments)\n console.error(err.stack)\n}\n\nfunction dir(object) {\n console.log(util.inspect(object) + \"\\n\")\n}\n\nfunction consoleAssert(expression) {\n if (!expression) {\n var arr = slice.call(arguments, 1)\n assert.ok(false, util.format.apply(null, arr))\n }\n}\n","/**\n * ---------------------------------------------------------------------\n * GLPI - Gestionnaire Libre de Parc Informatique\n * Copyright (C) 2015-2021 Teclib' and contributors.\n *\n * http://glpi-project.org\n *\n * based on GLPI - Gestionnaire Libre de Parc Informatique\n * Copyright (C) 2003-2014 by the INDEPNET Development Team.\n *\n * ---------------------------------------------------------------------\n *\n * LICENSE\n *\n * This file is part of GLPI.\n *\n * GLPI is free software; you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation; either version 2 of the License, or\n * (at your option) any later version.\n *\n * GLPI is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with GLPI. If not, see <http://www.gnu.org/licenses/>.\n * ---------------------------------------------------------------------\n */\n\n// jQuery File Upload plugin\nrequire('../../vendor/blueimp/jquery-file-upload/js/jquery.fileupload');\nrequire('../../vendor/blueimp/jquery-file-upload/js/jquery.iframe-transport');\n","require(\"!!/tmp/glpi-9.5.5/glpi/node_modules/script-loader/addScript.js\")(require(\"!!/tmp/glpi-9.5.5/glpi/node_modules/raw-loader/index.js!/tmp/glpi-9.5.5/glpi/node_modules/strip-sourcemap-loader/index.js!/tmp/glpi-9.5.5/glpi/vendor/blueimp/jquery-file-upload/js/jquery.fileupload.js\"))","module.exports = \"/*\\n * jQuery File Upload Plugin\\n * https://github.com/blueimp/jQuery-File-Upload\\n *\\n * Copyright 2010, Sebastian Tschan\\n * https://blueimp.net\\n *\\n * Licensed under the MIT license:\\n * https://opensource.org/licenses/MIT\\n */\\n\\n/* global define, require */\\n/* eslint-disable new-cap */\\n\\n(function (factory) {\\n 'use strict';\\n if (typeof define === 'function' && define.amd) {\\n // Register as an anonymous AMD module:\\n define(['jquery', 'jquery-ui/ui/widget'], factory);\\n } else if (typeof exports === 'object') {\\n // Node/CommonJS:\\n factory(require('jquery'), require('./vendor/jquery.ui.widget'));\\n } else {\\n // Browser globals:\\n factory(window.jQuery);\\n }\\n})(function ($) {\\n 'use strict';\\n\\n // Detect file input support, based on\\n // https://viljamis.com/2012/file-upload-support-on-mobile/\\n $.support.fileInput = !(\\n new RegExp(\\n // Handle devices which give false positives for the feature detection:\\n '(Android (1\\\\\\\\.[0156]|2\\\\\\\\.[01]))' +\\n '|(Windows Phone (OS 7|8\\\\\\\\.0))|(XBLWP)|(ZuneWP)|(WPDesktop)' +\\n '|(w(eb)?OSBrowser)|(webOS)' +\\n '|(Kindle/(1\\\\\\\\.0|2\\\\\\\\.[05]|3\\\\\\\\.0))'\\n ).test(window.navigator.userAgent) ||\\n // Feature detection for all other devices:\\n $('<input type=\\\"file\\\"/>').prop('disabled')\\n );\\n\\n // The FileReader API is not actually used, but works as feature detection,\\n // as some Safari versions (5?) support XHR file uploads via the FormData API,\\n // but not non-multipart XHR file uploads.\\n // window.XMLHttpRequestUpload is not available on IE10, so we check for\\n // window.ProgressEvent instead to detect XHR2 file upload capability:\\n $.support.xhrFileUpload = !!(window.ProgressEvent && window.FileReader);\\n $.support.xhrFormDataFileUpload = !!window.FormData;\\n\\n // Detect support for Blob slicing (required for chunked uploads):\\n $.support.blobSlice =\\n window.Blob &&\\n (Blob.prototype.slice ||\\n Blob.prototype.webkitSlice ||\\n Blob.prototype.mozSlice);\\n\\n /**\\n * Helper function to create drag handlers for dragover/dragenter/dragleave\\n *\\n * @param {string} type Event type\\n * @returns {Function} Drag handler\\n */\\n function getDragHandler(type) {\\n var isDragOver = type === 'dragover';\\n return function (e) {\\n e.dataTransfer = e.originalEvent && e.originalEvent.dataTransfer;\\n var dataTransfer = e.dataTransfer;\\n if (\\n dataTransfer &&\\n $.inArray('Files', dataTransfer.types) !== -1 &&\\n this._trigger(type, $.Event(type, { delegatedEvent: e })) !== false\\n ) {\\n e.preventDefault();\\n if (isDragOver) {\\n dataTransfer.dropEffect = 'copy';\\n }\\n }\\n };\\n }\\n\\n // The fileupload widget listens for change events on file input fields defined\\n // via fileInput setting and paste or drop events of the given dropZone.\\n // In addition to the default jQuery Widget methods, the fileupload widget\\n // exposes the \\\"add\\\" and \\\"send\\\" methods, to add or directly send files using\\n // the fileupload API.\\n // By default, files added via file input selection, paste, drag & drop or\\n // \\\"add\\\" method are uploaded immediately, but it is possible to override\\n // the \\\"add\\\" callback option to queue file uploads.\\n $.widget('blueimp.fileupload', {\\n options: {\\n // The drop target element(s), by the default the complete document.\\n // Set to null to disable drag & drop support:\\n dropZone: $(document),\\n // The paste target element(s), by the default undefined.\\n // Set to a DOM node or jQuery object to enable file pasting:\\n pasteZone: undefined,\\n // The file input field(s), that are listened to for change events.\\n // If undefined, it is set to the file input fields inside\\n // of the widget element on plugin initialization.\\n // Set to null to disable the change listener.\\n fileInput: undefined,\\n // By default, the file input field is replaced with a clone after\\n // each input field change event. This is required for iframe transport\\n // queues and allows change events to be fired for the same file\\n // selection, but can be disabled by setting the following option to false:\\n replaceFileInput: true,\\n // The parameter name for the file form data (the request argument name).\\n // If undefined or empty, the name property of the file input field is\\n // used, or \\\"files[]\\\" if the file input name property is also empty,\\n // can be a string or an array of strings:\\n paramName: undefined,\\n // By default, each file of a selection is uploaded using an individual\\n // request for XHR type uploads. Set to false to upload file\\n // selections in one request each:\\n singleFileUploads: true,\\n // To limit the number of files uploaded with one XHR request,\\n // set the following option to an integer greater than 0:\\n limitMultiFileUploads: undefined,\\n // The following option limits the number of files uploaded with one\\n // XHR request to keep the request size under or equal to the defined\\n // limit in bytes:\\n limitMultiFileUploadSize: undefined,\\n // Multipart file uploads add a number of bytes to each uploaded file,\\n // therefore the following option adds an overhead for each file used\\n // in the limitMultiFileUploadSize configuration:\\n limitMultiFileUploadSizeOverhead: 512,\\n // Set the following option to true to issue all file upload requests\\n // in a sequential order:\\n sequentialUploads: false,\\n // To limit the number of concurrent uploads,\\n // set the following option to an integer greater than 0:\\n limitConcurrentUploads: undefined,\\n // Set the following option to true to force iframe transport uploads:\\n forceIframeTransport: false,\\n // Set the following option to the location of a redirect url on the\\n // origin server, for cross-domain iframe transport uploads:\\n redirect: undefined,\\n // The parameter name for the redirect url, sent as part of the form\\n // data and set to 'redirect' if this option is empty:\\n redirectParamName: undefined,\\n // Set the following option to the location of a postMessage window,\\n // to enable postMessage transport uploads:\\n postMessage: undefined,\\n // By default, XHR file uploads are sent as multipart/form-data.\\n // The iframe transport is always using multipart/form-data.\\n // Set to false to enable non-multipart XHR uploads:\\n multipart: true,\\n // To upload large files in smaller chunks, set the following option\\n // to a preferred maximum chunk size. If set to 0, null or undefined,\\n // or the browser does not support the required Blob API, files will\\n // be uploaded as a whole.\\n maxChunkSize: undefined,\\n // When a non-multipart upload or a chunked multipart upload has been\\n // aborted, this option can be used to resume the upload by setting\\n // it to the size of the already uploaded bytes. This option is most\\n // useful when modifying the options object inside of the \\\"add\\\" or\\n // \\\"send\\\" callbacks, as the options are cloned for each file upload.\\n uploadedBytes: undefined,\\n // By default, failed (abort or error) file uploads are removed from the\\n // global progress calculation. Set the following option to false to\\n // prevent recalculating the global progress data:\\n recalculateProgress: true,\\n // Interval in milliseconds to calculate and trigger progress events:\\n progressInterval: 100,\\n // Interval in milliseconds to calculate progress bitrate:\\n bitrateInterval: 500,\\n // By default, uploads are started automatically when adding files:\\n autoUpload: true,\\n // By default, duplicate file names are expected to be handled on\\n // the server-side. If this is not possible (e.g. when uploading\\n // files directly to Amazon S3), the following option can be set to\\n // an empty object or an object mapping existing filenames, e.g.:\\n // { \\\"image.jpg\\\": true, \\\"image (1).jpg\\\": true }\\n // If it is set, all files will be uploaded with unique filenames,\\n // adding increasing number suffixes if necessary, e.g.:\\n // \\\"image (2).jpg\\\"\\n uniqueFilenames: undefined,\\n\\n // Error and info messages:\\n messages: {\\n uploadedBytes: 'Uploaded bytes exceed file size'\\n },\\n\\n // Translation function, gets the message key to be translated\\n // and an object with context specific data as arguments:\\n i18n: function (message, context) {\\n // eslint-disable-next-line no-param-reassign\\n message = this.messages[message] || message.toString();\\n if (context) {\\n $.each(context, function (key, value) {\\n // eslint-disable-next-line no-param-reassign\\n message = message.replace('{' + key + '}', value);\\n });\\n }\\n return message;\\n },\\n\\n // Additional form data to be sent along with the file uploads can be set\\n // using this option, which accepts an array of objects with name and\\n // value properties, a function returning such an array, a FormData\\n // object (for XHR file uploads), or a simple object.\\n // The form of the first fileInput is given as parameter to the function:\\n formData: function (form) {\\n return form.serializeArray();\\n },\\n\\n // The add callback is invoked as soon as files are added to the fileupload\\n // widget (via file input selection, drag & drop, paste or add API call).\\n // If the singleFileUploads option is enabled, this callback will be\\n // called once for each file in the selection for XHR file uploads, else\\n // once for each file selection.\\n //\\n // The upload starts when the submit method is invoked on the data parameter.\\n // The data object contains a files property holding the added files\\n // and allows you to override plugin options as well as define ajax settings.\\n //\\n // Listeners for this callback can also be bound the following way:\\n // .on('fileuploadadd', func);\\n //\\n // data.submit() returns a Promise object and allows to attach additional\\n // handlers using jQuery's Deferred callbacks:\\n // data.submit().done(func).fail(func).always(func);\\n add: function (e, data) {\\n if (e.isDefaultPrevented()) {\\n return false;\\n }\\n if (\\n data.autoUpload ||\\n (data.autoUpload !== false &&\\n $(this).fileupload('option', 'autoUpload'))\\n ) {\\n data.process().done(function () {\\n data.submit();\\n });\\n }\\n },\\n\\n // Other callbacks:\\n\\n // Callback for the submit event of each file upload:\\n // submit: function (e, data) {}, // .on('fileuploadsubmit', func);\\n\\n // Callback for the start of each file upload request:\\n // send: function (e, data) {}, // .on('fileuploadsend', func);\\n\\n // Callback for successful uploads:\\n // done: function (e, data) {}, // .on('fileuploaddone', func);\\n\\n // Callback for failed (abort or error) uploads:\\n // fail: function (e, data) {}, // .on('fileuploadfail', func);\\n\\n // Callback for completed (success, abort or error) requests:\\n // always: function (e, data) {}, // .on('fileuploadalways', func);\\n\\n // Callback for upload progress events:\\n // progress: function (e, data) {}, // .on('fileuploadprogress', func);\\n\\n // Callback for global upload progress events:\\n // progressall: function (e, data) {}, // .on('fileuploadprogressall', func);\\n\\n // Callback for uploads start, equivalent to the global ajaxStart event:\\n // start: function (e) {}, // .on('fileuploadstart', func);\\n\\n // Callback for uploads stop, equivalent to the global ajaxStop event:\\n // stop: function (e) {}, // .on('fileuploadstop', func);\\n\\n // Callback for change events of the fileInput(s):\\n // change: function (e, data) {}, // .on('fileuploadchange', func);\\n\\n // Callback for paste events to the pasteZone(s):\\n // paste: function (e, data) {}, // .on('fileuploadpaste', func);\\n\\n // Callback for drop events of the dropZone(s):\\n // drop: function (e, data) {}, // .on('fileuploaddrop', func);\\n\\n // Callback for dragover events of the dropZone(s):\\n // dragover: function (e) {}, // .on('fileuploaddragover', func);\\n\\n // Callback before the start of each chunk upload request (before form data initialization):\\n // chunkbeforesend: function (e, data) {}, // .on('fileuploadchunkbeforesend', func);\\n\\n // Callback for the start of each chunk upload request:\\n // chunksend: function (e, data) {}, // .on('fileuploadchunksend', func);\\n\\n // Callback for successful chunk uploads:\\n // chunkdone: function (e, data) {}, // .on('fileuploadchunkdone', func);\\n\\n // Callback for failed (abort or error) chunk uploads:\\n // chunkfail: function (e, data) {}, // .on('fileuploadchunkfail', func);\\n\\n // Callback for completed (success, abort or error) chunk upload requests:\\n // chunkalways: function (e, data) {}, // .on('fileuploadchunkalways', func);\\n\\n // The plugin options are used as settings object for the ajax calls.\\n // The following are jQuery ajax settings required for the file uploads:\\n processData: false,\\n contentType: false,\\n cache: false,\\n timeout: 0\\n },\\n\\n // jQuery versions before 1.8 require promise.pipe if the return value is\\n // used, as promise.then in older versions has a different behavior, see:\\n // https://blog.jquery.com/2012/08/09/jquery-1-8-released/\\n // https://bugs.jquery.com/ticket/11010\\n // https://github.com/blueimp/jQuery-File-Upload/pull/3435\\n _promisePipe: (function () {\\n var parts = $.fn.jquery.split('.');\\n return Number(parts[0]) > 1 || Number(parts[1]) > 7 ? 'then' : 'pipe';\\n })(),\\n\\n // A list of options that require reinitializing event listeners and/or\\n // special initialization code:\\n _specialOptions: [\\n 'fileInput',\\n 'dropZone',\\n 'pasteZone',\\n 'multipart',\\n 'forceIframeTransport'\\n ],\\n\\n _blobSlice:\\n $.support.blobSlice &&\\n function () {\\n var slice = this.slice || this.webkitSlice || this.mozSlice;\\n return slice.apply(this, arguments);\\n },\\n\\n _BitrateTimer: function () {\\n this.timestamp = Date.now ? Date.now() : new Date().getTime();\\n this.loaded = 0;\\n this.bitrate = 0;\\n this.getBitrate = function (now, loaded, interval) {\\n var timeDiff = now - this.timestamp;\\n if (!this.bitrate || !interval || timeDiff > interval) {\\n this.bitrate = (loaded - this.loaded) * (1000 / timeDiff) * 8;\\n this.loaded = loaded;\\n this.timestamp = now;\\n }\\n return this.bitrate;\\n };\\n },\\n\\n _isXHRUpload: function (options) {\\n return (\\n !options.forceIframeTransport &&\\n ((!options.multipart && $.support.xhrFileUpload) ||\\n $.support.xhrFormDataFileUpload)\\n );\\n },\\n\\n _getFormData: function (options) {\\n var formData;\\n if ($.type(options.formData) === 'function') {\\n return options.formData(options.form);\\n }\\n if ($.isArray(options.formData)) {\\n return options.formData;\\n }\\n if ($.type(options.formData) === 'object') {\\n formData = [];\\n $.each(options.formData, function (name, value) {\\n formData.push({ name: name, value: value });\\n });\\n return formData;\\n }\\n return [];\\n },\\n\\n _getTotal: function (files) {\\n var total = 0;\\n $.each(files, function (index, file) {\\n total += file.size || 1;\\n });\\n return total;\\n },\\n\\n _initProgressObject: function (obj) {\\n var progress = {\\n loaded: 0,\\n total: 0,\\n bitrate: 0\\n };\\n if (obj._progress) {\\n $.extend(obj._progress, progress);\\n } else {\\n obj._progress = progress;\\n }\\n },\\n\\n _initResponseObject: function (obj) {\\n var prop;\\n if (obj._response) {\\n for (prop in obj._response) {\\n if (Object.prototype.hasOwnProperty.call(obj._response, prop)) {\\n delete obj._response[prop];\\n }\\n }\\n } else {\\n obj._response = {};\\n }\\n },\\n\\n _onProgress: function (e, data) {\\n if (e.lengthComputable) {\\n var now = Date.now ? Date.now() : new Date().getTime(),\\n loaded;\\n if (\\n data._time &&\\n data.progressInterval &&\\n now - data._time < data.progressInterval &&\\n e.loaded !== e.total\\n ) {\\n return;\\n }\\n data._time = now;\\n loaded =\\n Math.floor(\\n (e.loaded / e.total) * (data.chunkSize || data._progress.total)\\n ) + (data.uploadedBytes || 0);\\n // Add the difference from the previously loaded state\\n // to the global loaded counter:\\n this._progress.loaded += loaded - data._progress.loaded;\\n this._progress.bitrate = this._bitrateTimer.getBitrate(\\n now,\\n this._progress.loaded,\\n data.bitrateInterval\\n );\\n data._progress.loaded = data.loaded = loaded;\\n data._progress.bitrate = data.bitrate = data._bitrateTimer.getBitrate(\\n now,\\n loaded,\\n data.bitrateInterval\\n );\\n // Trigger a custom progress event with a total data property set\\n // to the file size(s) of the current upload and a loaded data\\n // property calculated accordingly:\\n this._trigger(\\n 'progress',\\n $.Event('progress', { delegatedEvent: e }),\\n data\\n );\\n // Trigger a global progress event for all current file uploads,\\n // including ajax calls queued for sequential file uploads:\\n this._trigger(\\n 'progressall',\\n $.Event('progressall', { delegatedEvent: e }),\\n this._progress\\n );\\n }\\n },\\n\\n _initProgressListener: function (options) {\\n var that = this,\\n xhr = options.xhr ? options.xhr() : $.ajaxSettings.xhr();\\n // Accesss to the native XHR object is required to add event listeners\\n // for the upload progress event:\\n if (xhr.upload) {\\n $(xhr.upload).on('progress', function (e) {\\n var oe = e.originalEvent;\\n // Make sure the progress event properties get copied over:\\n e.lengthComputable = oe.lengthComputable;\\n e.loaded = oe.loaded;\\n e.total = oe.total;\\n that._onProgress(e, options);\\n });\\n options.xhr = function () {\\n return xhr;\\n };\\n }\\n },\\n\\n _deinitProgressListener: function (options) {\\n var xhr = options.xhr ? options.xhr() : $.ajaxSettings.xhr();\\n if (xhr.upload) {\\n $(xhr.upload).off('progress');\\n }\\n },\\n\\n _isInstanceOf: function (type, obj) {\\n // Cross-frame instanceof check\\n return Object.prototype.toString.call(obj) === '[object ' + type + ']';\\n },\\n\\n _getUniqueFilename: function (name, map) {\\n // eslint-disable-next-line no-param-reassign\\n name = String(name);\\n if (map[name]) {\\n // eslint-disable-next-line no-param-reassign\\n name = name.replace(/(?: \\\\(([\\\\d]+)\\\\))?(\\\\.[^.]+)?$/, function (\\n _,\\n p1,\\n p2\\n ) {\\n var index = p1 ? Number(p1) + 1 : 1;\\n var ext = p2 || '';\\n return ' (' + index + ')' + ext;\\n });\\n return this._getUniqueFilename(name, map);\\n }\\n map[name] = true;\\n return name;\\n },\\n\\n _initXHRData: function (options) {\\n var that = this,\\n formData,\\n file = options.files[0],\\n // Ignore non-multipart setting if not supported:\\n multipart = options.multipart || !$.support.xhrFileUpload,\\n paramName =\\n $.type(options.paramName) === 'array'\\n ? options.paramName[0]\\n : options.paramName;\\n options.headers = $.extend({}, options.headers);\\n if (options.contentRange) {\\n options.headers['Content-Range'] = options.contentRange;\\n }\\n if (!multipart || options.blob || !this._isInstanceOf('File', file)) {\\n options.headers['Content-Disposition'] =\\n 'attachment; filename=\\\"' +\\n encodeURI(file.uploadName || file.name) +\\n '\\\"';\\n }\\n if (!multipart) {\\n options.contentType = file.type || 'application/octet-stream';\\n options.data = options.blob || file;\\n } else if ($.support.xhrFormDataFileUpload) {\\n if (options.postMessage) {\\n // window.postMessage does not allow sending FormData\\n // objects, so we just add the File/Blob objects to\\n // the formData array and let the postMessage window\\n // create the FormData object out of this array:\\n formData = this._getFormData(options);\\n if (options.blob) {\\n formData.push({\\n name: paramName,\\n value: options.blob\\n });\\n } else {\\n $.each(options.files, function (index, file) {\\n formData.push({\\n name:\\n ($.type(options.paramName) === 'array' &&\\n options.paramName[index]) ||\\n paramName,\\n value: file\\n });\\n });\\n }\\n } else {\\n if (that._isInstanceOf('FormData', options.formData)) {\\n formData = options.formData;\\n } else {\\n formData = new FormData();\\n $.each(this._getFormData(options), function (index, field) {\\n formData.append(field.name, field.value);\\n });\\n }\\n if (options.blob) {\\n formData.append(\\n paramName,\\n options.blob,\\n file.uploadName || file.name\\n );\\n } else {\\n $.each(options.files, function (index, file) {\\n // This check allows the tests to run with\\n // dummy objects:\\n if (\\n that._isInstanceOf('File', file) ||\\n that._isInstanceOf('Blob', file)\\n ) {\\n var fileName = file.uploadName || file.name;\\n if (options.uniqueFilenames) {\\n fileName = that._getUniqueFilename(\\n fileName,\\n options.uniqueFilenames\\n );\\n }\\n formData.append(\\n ($.type(options.paramName) === 'array' &&\\n options.paramName[index]) ||\\n paramName,\\n file,\\n fileName\\n );\\n }\\n });\\n }\\n }\\n options.data = formData;\\n }\\n // Blob reference is not needed anymore, free memory:\\n options.blob = null;\\n },\\n\\n _initIframeSettings: function (options) {\\n var targetHost = $('<a></a>').prop('href', options.url).prop('host');\\n // Setting the dataType to iframe enables the iframe transport:\\n options.dataType = 'iframe ' + (options.dataType || '');\\n // The iframe transport accepts a serialized array as form data:\\n options.formData = this._getFormData(options);\\n // Add redirect url to form data on cross-domain uploads:\\n if (options.redirect && targetHost && targetHost !== location.host) {\\n options.formData.push({\\n name: options.redirectParamName || 'redirect',\\n value: options.redirect\\n });\\n }\\n },\\n\\n _initDataSettings: function (options) {\\n if (this._isXHRUpload(options)) {\\n if (!this._chunkedUpload(options, true)) {\\n if (!options.data) {\\n this._initXHRData(options);\\n }\\n this._initProgressListener(options);\\n }\\n if (options.postMessage) {\\n // Setting the dataType to postmessage enables the\\n // postMessage transport:\\n options.dataType = 'postmessage ' + (options.dataType || '');\\n }\\n } else {\\n this._initIframeSettings(options);\\n }\\n },\\n\\n _getParamName: function (options) {\\n var fileInput = $(options.fileInput),\\n paramName = options.paramName;\\n if (!paramName) {\\n paramName = [];\\n fileInput.each(function () {\\n var input = $(this),\\n name = input.prop('name') || 'files[]',\\n i = (input.prop('files') || [1]).length;\\n while (i) {\\n paramName.push(name);\\n i -= 1;\\n }\\n });\\n if (!paramName.length) {\\n paramName = [fileInput.prop('name') || 'files[]'];\\n }\\n } else if (!$.isArray(paramName)) {\\n paramName = [paramName];\\n }\\n return paramName;\\n },\\n\\n _initFormSettings: function (options) {\\n // Retrieve missing options from the input field and the\\n // associated form, if available:\\n if (!options.form || !options.form.length) {\\n options.form = $(options.fileInput.prop('form'));\\n // If the given file input doesn't have an associated form,\\n // use the default widget file input's form:\\n if (!options.form.length) {\\n options.form = $(this.options.fileInput.prop('form'));\\n }\\n }\\n options.paramName = this._getParamName(options);\\n if (!options.url) {\\n options.url = options.form.prop('action') || location.href;\\n }\\n // The HTTP request method must be \\\"POST\\\" or \\\"PUT\\\":\\n options.type = (\\n options.type ||\\n ($.type(options.form.prop('method')) === 'string' &&\\n options.form.prop('method')) ||\\n ''\\n ).toUpperCase();\\n if (\\n options.type !== 'POST' &&\\n options.type !== 'PUT' &&\\n options.type !== 'PATCH'\\n ) {\\n options.type = 'POST';\\n }\\n if (!options.formAcceptCharset) {\\n options.formAcceptCharset = options.form.attr('accept-charset');\\n }\\n },\\n\\n _getAJAXSettings: function (data) {\\n var options = $.extend({}, this.options, data);\\n this._initFormSettings(options);\\n this._initDataSettings(options);\\n return options;\\n },\\n\\n // jQuery 1.6 doesn't provide .state(),\\n // while jQuery 1.8+ removed .isRejected() and .isResolved():\\n _getDeferredState: function (deferred) {\\n if (deferred.state) {\\n return deferred.state();\\n }\\n if (deferred.isResolved()) {\\n return 'resolved';\\n }\\n if (deferred.isRejected()) {\\n return 'rejected';\\n }\\n return 'pending';\\n },\\n\\n // Maps jqXHR callbacks to the equivalent\\n // methods of the given Promise object:\\n _enhancePromise: function (promise) {\\n promise.success = promise.done;\\n promise.error = promise.fail;\\n promise.complete = promise.always;\\n return promise;\\n },\\n\\n // Creates and returns a Promise object enhanced with\\n // the jqXHR methods abort, success, error and complete:\\n _getXHRPromise: function (resolveOrReject, context, args) {\\n var dfd = $.Deferred(),\\n promise = dfd.promise();\\n // eslint-disable-next-line no-param-reassign\\n context = context || this.options.context || promise;\\n if (resolveOrReject === true) {\\n dfd.resolveWith(context, args);\\n } else if (resolveOrReject === false) {\\n dfd.rejectWith(context, args);\\n }\\n promise.abort = dfd.promise;\\n return this._enhancePromise(promise);\\n },\\n\\n // Adds convenience methods to the data callback argument:\\n _addConvenienceMethods: function (e, data) {\\n var that = this,\\n getPromise = function (args) {\\n return $.Deferred().resolveWith(that, args).promise();\\n };\\n data.process = function (resolveFunc, rejectFunc) {\\n if (resolveFunc || rejectFunc) {\\n data._processQueue = this._processQueue = (this._processQueue ||\\n getPromise([this]))\\n [that._promisePipe](function () {\\n if (data.errorThrown) {\\n return $.Deferred().rejectWith(that, [data]).promise();\\n }\\n return getPromise(arguments);\\n })\\n [that._promisePipe](resolveFunc, rejectFunc);\\n }\\n return this._processQueue || getPromise([this]);\\n };\\n data.submit = function () {\\n if (this.state() !== 'pending') {\\n data.jqXHR = this.jqXHR =\\n that._trigger(\\n 'submit',\\n $.Event('submit', { delegatedEvent: e }),\\n this\\n ) !== false && that._onSend(e, this);\\n }\\n return this.jqXHR || that._getXHRPromise();\\n };\\n data.abort = function () {\\n if (this.jqXHR) {\\n return this.jqXHR.abort();\\n }\\n this.errorThrown = 'abort';\\n that._trigger('fail', null, this);\\n return that._getXHRPromise(false);\\n };\\n data.state = function () {\\n if (this.jqXHR) {\\n return that._getDeferredState(this.jqXHR);\\n }\\n if (this._processQueue) {\\n return that._getDeferredState(this._processQueue);\\n }\\n };\\n data.processing = function () {\\n return (\\n !this.jqXHR &&\\n this._processQueue &&\\n that._getDeferredState(this._processQueue) === 'pending'\\n );\\n };\\n data.progress = function () {\\n return this._progress;\\n };\\n data.response = function () {\\n return this._response;\\n };\\n },\\n\\n // Parses the Range header from the server response\\n // and returns the uploaded bytes:\\n _getUploadedBytes: function (jqXHR) {\\n var range = jqXHR.getResponseHeader('Range'),\\n parts = range && range.split('-'),\\n upperBytesPos = parts && parts.length > 1 && parseInt(parts[1], 10);\\n return upperBytesPos && upperBytesPos + 1;\\n },\\n\\n // Uploads a file in multiple, sequential requests\\n // by splitting the file up in multiple blob chunks.\\n // If the second parameter is true, only tests if the file\\n // should be uploaded in chunks, but does not invoke any\\n // upload requests:\\n _chunkedUpload: function (options, testOnly) {\\n options.uploadedBytes = options.uploadedBytes || 0;\\n var that = this,\\n file = options.files[0],\\n fs = file.size,\\n ub = options.uploadedBytes,\\n mcs = options.maxChunkSize || fs,\\n slice = this._blobSlice,\\n dfd = $.Deferred(),\\n promise = dfd.promise(),\\n jqXHR,\\n upload;\\n if (\\n !(\\n this._isXHRUpload(options) &&\\n slice &&\\n (ub || ($.type(mcs) === 'function' ? mcs(options) : mcs) < fs)\\n ) ||\\n options.data\\n ) {\\n return false;\\n }\\n if (testOnly) {\\n return true;\\n }\\n if (ub >= fs) {\\n file.error = options.i18n('uploadedBytes');\\n return this._getXHRPromise(false, options.context, [\\n null,\\n 'error',\\n file.error\\n ]);\\n }\\n // The chunk upload method:\\n upload = function () {\\n // Clone the options object for each chunk upload:\\n var o = $.extend({}, options),\\n currentLoaded = o._progress.loaded;\\n o.blob = slice.call(\\n file,\\n ub,\\n ub + ($.type(mcs) === 'function' ? mcs(o) : mcs),\\n file.type\\n );\\n // Store the current chunk size, as the blob itself\\n // will be dereferenced after data processing:\\n o.chunkSize = o.blob.size;\\n // Expose the chunk bytes position range:\\n o.contentRange =\\n 'bytes ' + ub + '-' + (ub + o.chunkSize - 1) + '/' + fs;\\n // Trigger chunkbeforesend to allow form data to be updated for this chunk\\n that._trigger('chunkbeforesend', null, o);\\n // Process the upload data (the blob and potential form data):\\n that._initXHRData(o);\\n // Add progress listeners for this chunk upload:\\n that._initProgressListener(o);\\n jqXHR = (\\n (that._trigger('chunksend', null, o) !== false && $.ajax(o)) ||\\n that._getXHRPromise(false, o.context)\\n )\\n .done(function (result, textStatus, jqXHR) {\\n ub = that._getUploadedBytes(jqXHR) || ub + o.chunkSize;\\n // Create a progress event if no final progress event\\n // with loaded equaling total has been triggered\\n // for this chunk:\\n if (currentLoaded + o.chunkSize - o._progress.loaded) {\\n that._onProgress(\\n $.Event('progress', {\\n lengthComputable: true,\\n loaded: ub - o.uploadedBytes,\\n total: ub - o.uploadedBytes\\n }),\\n o\\n );\\n }\\n options.uploadedBytes = o.uploadedBytes = ub;\\n o.result = result;\\n o.textStatus = textStatus;\\n o.jqXHR = jqXHR;\\n that._trigger('chunkdone', null, o);\\n that._trigger('chunkalways', null, o);\\n if (ub < fs) {\\n // File upload not yet complete,\\n // continue with the next chunk:\\n upload();\\n } else {\\n dfd.resolveWith(o.context, [result, textStatus, jqXHR]);\\n }\\n })\\n .fail(function (jqXHR, textStatus, errorThrown) {\\n o.jqXHR = jqXHR;\\n o.textStatus = textStatus;\\n o.errorThrown = errorThrown;\\n that._trigger('chunkfail', null, o);\\n that._trigger('chunkalways', null, o);\\n dfd.rejectWith(o.context, [jqXHR, textStatus, errorThrown]);\\n })\\n .always(function () {\\n that._deinitProgressListener(o);\\n });\\n };\\n this._enhancePromise(promise);\\n promise.abort = function () {\\n return jqXHR.abort();\\n };\\n upload();\\n return promise;\\n },\\n\\n _beforeSend: function (e, data) {\\n if (this._active === 0) {\\n // the start callback is triggered when an upload starts\\n // and no other uploads are currently running,\\n // equivalent to the global ajaxStart event:\\n this._trigger('start');\\n // Set timer for global bitrate progress calculation:\\n this._bitrateTimer = new this._BitrateTimer();\\n // Reset the global progress values:\\n this._progress.loaded = this._progress.total = 0;\\n this._progress.bitrate = 0;\\n }\\n // Make sure the container objects for the .response() and\\n // .progress() methods on the data object are available\\n // and reset to their initial state:\\n this._initResponseObject(data);\\n this._initProgressObject(data);\\n data._progress.loaded = data.loaded = data.uploadedBytes || 0;\\n data._progress.total = data.total = this._getTotal(data.files) || 1;\\n data._progress.bitrate = data.bitrate = 0;\\n this._active += 1;\\n // Initialize the global progress values:\\n this._progress.loaded += data.loaded;\\n this._progress.total += data.total;\\n },\\n\\n _onDone: function (result, textStatus, jqXHR, options) {\\n var total = options._progress.total,\\n response = options._response;\\n if (options._progress.loaded < total) {\\n // Create a progress event if no final progress event\\n // with loaded equaling total has been triggered:\\n this._onProgress(\\n $.Event('progress', {\\n lengthComputable: true,\\n loaded: total,\\n total: total\\n }),\\n options\\n );\\n }\\n response.result = options.result = result;\\n response.textStatus = options.textStatus = textStatus;\\n response.jqXHR = options.jqXHR = jqXHR;\\n this._trigger('done', null, options);\\n },\\n\\n _onFail: function (jqXHR, textStatus, errorThrown, options) {\\n var response = options._response;\\n if (options.recalculateProgress) {\\n // Remove the failed (error or abort) file upload from\\n // the global progress calculation:\\n this._progress.loaded -= options._progress.loaded;\\n this._progress.total -= options._progress.total;\\n }\\n response.jqXHR = options.jqXHR = jqXHR;\\n response.textStatus = options.textStatus = textStatus;\\n response.errorThrown = options.errorThrown = errorThrown;\\n this._trigger('fail', null, options);\\n },\\n\\n _onAlways: function (jqXHRorResult, textStatus, jqXHRorError, options) {\\n // jqXHRorResult, textStatus and jqXHRorError are added to the\\n // options object via done and fail callbacks\\n this._trigger('always', null, options);\\n },\\n\\n _onSend: function (e, data) {\\n if (!data.submit) {\\n this._addConvenienceMethods(e, data);\\n }\\n var that = this,\\n jqXHR,\\n aborted,\\n slot,\\n pipe,\\n options = that._getAJAXSettings(data),\\n send = function () {\\n that._sending += 1;\\n // Set timer for bitrate progress calculation:\\n options._bitrateTimer = new that._BitrateTimer();\\n jqXHR =\\n jqXHR ||\\n (\\n ((aborted ||\\n that._trigger(\\n 'send',\\n $.Event('send', { delegatedEvent: e }),\\n options\\n ) === false) &&\\n that._getXHRPromise(false, options.context, aborted)) ||\\n that._chunkedUpload(options) ||\\n $.ajax(options)\\n )\\n .done(function (result, textStatus, jqXHR) {\\n that._onDone(result, textStatus, jqXHR, options);\\n })\\n .fail(function (jqXHR, textStatus, errorThrown) {\\n that._onFail(jqXHR, textStatus, errorThrown, options);\\n })\\n .always(function (jqXHRorResult, textStatus, jqXHRorError) {\\n that._deinitProgressListener(options);\\n that._onAlways(\\n jqXHRorResult,\\n textStatus,\\n jqXHRorError,\\n options\\n );\\n that._sending -= 1;\\n that._active -= 1;\\n if (\\n options.limitConcurrentUploads &&\\n options.limitConcurrentUploads > that._sending\\n ) {\\n // Start the next queued upload,\\n // that has not been aborted:\\n var nextSlot = that._slots.shift();\\n while (nextSlot) {\\n if (that._getDeferredState(nextSlot) === 'pending') {\\n nextSlot.resolve();\\n break;\\n }\\n nextSlot = that._slots.shift();\\n }\\n }\\n if (that._active === 0) {\\n // The stop callback is triggered when all uploads have\\n // been completed, equivalent to the global ajaxStop event:\\n that._trigger('stop');\\n }\\n });\\n return jqXHR;\\n };\\n this._beforeSend(e, options);\\n if (\\n this.options.sequentialUploads ||\\n (this.options.limitConcurrentUploads &&\\n this.options.limitConcurrentUploads <= this._sending)\\n ) {\\n if (this.options.limitConcurrentUploads > 1) {\\n slot = $.Deferred();\\n this._slots.push(slot);\\n pipe = slot[that._promisePipe](send);\\n } else {\\n this._sequence = this._sequence[that._promisePipe](send, send);\\n pipe = this._sequence;\\n }\\n // Return the piped Promise object, enhanced with an abort method,\\n // which is delegated to the jqXHR object of the current upload,\\n // and jqXHR callbacks mapped to the equivalent Promise methods:\\n pipe.abort = function () {\\n aborted = [undefined, 'abort', 'abort'];\\n if (!jqXHR) {\\n if (slot) {\\n slot.rejectWith(options.context, aborted);\\n }\\n return send();\\n }\\n return jqXHR.abort();\\n };\\n return this._enhancePromise(pipe);\\n }\\n return send();\\n },\\n\\n _onAdd: function (e, data) {\\n var that = this,\\n result = true,\\n options = $.extend({}, this.options, data),\\n files = data.files,\\n filesLength = files.length,\\n limit = options.limitMultiFileUploads,\\n limitSize = options.limitMultiFileUploadSize,\\n overhead = options.limitMultiFileUploadSizeOverhead,\\n batchSize = 0,\\n paramName = this._getParamName(options),\\n paramNameSet,\\n paramNameSlice,\\n fileSet,\\n i,\\n j = 0;\\n if (!filesLength) {\\n return false;\\n }\\n if (limitSize && files[0].size === undefined) {\\n limitSize = undefined;\\n }\\n if (\\n !(options.singleFileUploads || limit || limitSize) ||\\n !this._isXHRUpload(options)\\n ) {\\n fileSet = [files];\\n paramNameSet = [paramName];\\n } else if (!(options.singleFileUploads || limitSize) && limit) {\\n fileSet = [];\\n paramNameSet = [];\\n for (i = 0; i < filesLength; i += limit) {\\n fileSet.push(files.slice(i, i + limit));\\n paramNameSlice = paramName.slice(i, i + limit);\\n if (!paramNameSlice.length) {\\n paramNameSlice = paramName;\\n }\\n paramNameSet.push(paramNameSlice);\\n }\\n } else if (!options.singleFileUploads && limitSize) {\\n fileSet = [];\\n paramNameSet = [];\\n for (i = 0; i < filesLength; i = i + 1) {\\n batchSize += files[i].size + overhead;\\n if (\\n i + 1 === filesLength ||\\n batchSize + files[i + 1].size + overhead > limitSize ||\\n (limit && i + 1 - j >= limit)\\n ) {\\n fileSet.push(files.slice(j, i + 1));\\n paramNameSlice = paramName.slice(j, i + 1);\\n if (!paramNameSlice.length) {\\n paramNameSlice = paramName;\\n }\\n paramNameSet.push(paramNameSlice);\\n j = i + 1;\\n batchSize = 0;\\n }\\n }\\n } else {\\n paramNameSet = paramName;\\n }\\n data.originalFiles = files;\\n $.each(fileSet || files, function (index, element) {\\n var newData = $.extend({}, data);\\n newData.files = fileSet ? element : [element];\\n newData.paramName = paramNameSet[index];\\n that._initResponseObject(newData);\\n that._initProgressObject(newData);\\n that._addConvenienceMethods(e, newData);\\n result = that._trigger(\\n 'add',\\n $.Event('add', { delegatedEvent: e }),\\n newData\\n );\\n return result;\\n });\\n return result;\\n },\\n\\n _replaceFileInput: function (data) {\\n var input = data.fileInput,\\n inputClone = input.clone(true),\\n restoreFocus = input.is(document.activeElement);\\n // Add a reference for the new cloned file input to the data argument:\\n data.fileInputClone = inputClone;\\n $('<form></form>').append(inputClone)[0].reset();\\n // Detaching allows to insert the fileInput on another form\\n // without loosing the file input value:\\n input.after(inputClone).detach();\\n // If the fileInput had focus before it was detached,\\n // restore focus to the inputClone.\\n if (restoreFocus) {\\n inputClone.trigger('focus');\\n }\\n // Avoid memory leaks with the detached file input:\\n $.cleanData(input.off('remove'));\\n // Replace the original file input element in the fileInput\\n // elements set with the clone, which has been copied including\\n // event handlers:\\n this.options.fileInput = this.options.fileInput.map(function (i, el) {\\n if (el === input[0]) {\\n return inputClone[0];\\n }\\n return el;\\n });\\n // If the widget has been initialized on the file input itself,\\n // override this.element with the file input clone:\\n if (input[0] === this.element[0]) {\\n this.element = inputClone;\\n }\\n },\\n\\n _handleFileTreeEntry: function (entry, path) {\\n var that = this,\\n dfd = $.Deferred(),\\n entries = [],\\n dirReader,\\n errorHandler = function (e) {\\n if (e && !e.entry) {\\n e.entry = entry;\\n }\\n // Since $.when returns immediately if one\\n // Deferred is rejected, we use resolve instead.\\n // This allows valid files and invalid items\\n // to be returned together in one set:\\n dfd.resolve([e]);\\n },\\n successHandler = function (entries) {\\n that\\n ._handleFileTreeEntries(entries, path + entry.name + '/')\\n .done(function (files) {\\n dfd.resolve(files);\\n })\\n .fail(errorHandler);\\n },\\n readEntries = function () {\\n dirReader.readEntries(function (results) {\\n if (!results.length) {\\n successHandler(entries);\\n } else {\\n entries = entries.concat(results);\\n readEntries();\\n }\\n }, errorHandler);\\n };\\n // eslint-disable-next-line no-param-reassign\\n path = path || '';\\n if (entry.isFile) {\\n if (entry._file) {\\n // Workaround for Chrome bug #149735\\n entry._file.relativePath = path;\\n dfd.resolve(entry._file);\\n } else {\\n entry.file(function (file) {\\n file.relativePath = path;\\n dfd.resolve(file);\\n }, errorHandler);\\n }\\n } else if (entry.isDirectory) {\\n dirReader = entry.createReader();\\n readEntries();\\n } else {\\n // Return an empty list for file system items\\n // other than files or directories:\\n dfd.resolve([]);\\n }\\n return dfd.promise();\\n },\\n\\n _handleFileTreeEntries: function (entries, path) {\\n var that = this;\\n return $.when\\n .apply(\\n $,\\n $.map(entries, function (entry) {\\n return that._handleFileTreeEntry(entry, path);\\n })\\n )\\n [this._promisePipe](function () {\\n return Array.prototype.concat.apply([], arguments);\\n });\\n },\\n\\n _getDroppedFiles: function (dataTransfer) {\\n // eslint-disable-next-line no-param-reassign\\n dataTransfer = dataTransfer || {};\\n var items = dataTransfer.items;\\n if (\\n items &&\\n items.length &&\\n (items[0].webkitGetAsEntry || items[0].getAsEntry)\\n ) {\\n return this._handleFileTreeEntries(\\n $.map(items, function (item) {\\n var entry;\\n if (item.webkitGetAsEntry) {\\n entry = item.webkitGetAsEntry();\\n if (entry) {\\n // Workaround for Chrome bug #149735:\\n entry._file = item.getAsFile();\\n }\\n return entry;\\n }\\n return item.getAsEntry();\\n })\\n );\\n }\\n return $.Deferred().resolve($.makeArray(dataTransfer.files)).promise();\\n },\\n\\n _getSingleFileInputFiles: function (fileInput) {\\n // eslint-disable-next-line no-param-reassign\\n fileInput = $(fileInput);\\n var entries =\\n fileInput.prop('webkitEntries') || fileInput.prop('entries'),\\n files,\\n value;\\n if (entries && entries.length) {\\n return this._handleFileTreeEntries(entries);\\n }\\n files = $.makeArray(fileInput.prop('files'));\\n if (!files.length) {\\n value = fileInput.prop('value');\\n if (!value) {\\n return $.Deferred().resolve([]).promise();\\n }\\n // If the files property is not available, the browser does not\\n // support the File API and we add a pseudo File object with\\n // the input value as name with path information removed:\\n files = [{ name: value.replace(/^.*\\\\\\\\/, '') }];\\n } else if (files[0].name === undefined && files[0].fileName) {\\n // File normalization for Safari 4 and Firefox 3:\\n $.each(files, function (index, file) {\\n file.name = file.fileName;\\n file.size = file.fileSize;\\n });\\n }\\n return $.Deferred().resolve(files).promise();\\n },\\n\\n _getFileInputFiles: function (fileInput) {\\n if (!(fileInput instanceof $) || fileInput.length === 1) {\\n return this._getSingleFileInputFiles(fileInput);\\n }\\n return $.when\\n .apply($, $.map(fileInput, this._getSingleFileInputFiles))\\n [this._promisePipe](function () {\\n return Array.prototype.concat.apply([], arguments);\\n });\\n },\\n\\n _onChange: function (e) {\\n var that = this,\\n data = {\\n fileInput: $(e.target),\\n form: $(e.target.form)\\n };\\n this._getFileInputFiles(data.fileInput).always(function (files) {\\n data.files = files;\\n if (that.options.replaceFileInput) {\\n that._replaceFileInput(data);\\n }\\n if (\\n that._trigger(\\n 'change',\\n $.Event('change', { delegatedEvent: e }),\\n data\\n ) !== false\\n ) {\\n that._onAdd(e, data);\\n }\\n });\\n },\\n\\n _onPaste: function (e) {\\n var items =\\n e.originalEvent &&\\n e.originalEvent.clipboardData &&\\n e.originalEvent.clipboardData.items,\\n data = { files: [] };\\n if (items && items.length) {\\n $.each(items, function (index, item) {\\n var file = item.getAsFile && item.getAsFile();\\n if (file) {\\n data.files.push(file);\\n }\\n });\\n if (\\n this._trigger(\\n 'paste',\\n $.Event('paste', { delegatedEvent: e }),\\n data\\n ) !== false\\n ) {\\n this._onAdd(e, data);\\n }\\n }\\n },\\n\\n _onDrop: function (e) {\\n e.dataTransfer = e.originalEvent && e.originalEvent.dataTransfer;\\n var that = this,\\n dataTransfer = e.dataTransfer,\\n data = {};\\n if (dataTransfer && dataTransfer.files && dataTransfer.files.length) {\\n e.preventDefault();\\n this._getDroppedFiles(dataTransfer).always(function (files) {\\n data.files = files;\\n if (\\n that._trigger(\\n 'drop',\\n $.Event('drop', { delegatedEvent: e }),\\n data\\n ) !== false\\n ) {\\n that._onAdd(e, data);\\n }\\n });\\n }\\n },\\n\\n _onDragOver: getDragHandler('dragover'),\\n\\n _onDragEnter: getDragHandler('dragenter'),\\n\\n _onDragLeave: getDragHandler('dragleave'),\\n\\n _initEventHandlers: function () {\\n if (this._isXHRUpload(this.options)) {\\n this._on(this.options.dropZone, {\\n dragover: this._onDragOver,\\n drop: this._onDrop,\\n // event.preventDefault() on dragenter is required for IE10+:\\n dragenter: this._onDragEnter,\\n // dragleave is not required, but added for completeness:\\n dragleave: this._onDragLeave\\n });\\n this._on(this.options.pasteZone, {\\n paste: this._onPaste\\n });\\n }\\n if ($.support.fileInput) {\\n this._on(this.options.fileInput, {\\n change: this._onChange\\n });\\n }\\n },\\n\\n _destroyEventHandlers: function () {\\n this._off(this.options.dropZone, 'dragenter dragleave dragover drop');\\n this._off(this.options.pasteZone, 'paste');\\n this._off(this.options.fileInput, 'change');\\n },\\n\\n _destroy: function () {\\n this._destroyEventHandlers();\\n },\\n\\n _setOption: function (key, value) {\\n var reinit = $.inArray(key, this._specialOptions) !== -1;\\n if (reinit) {\\n this._destroyEventHandlers();\\n }\\n this._super(key, value);\\n if (reinit) {\\n this._initSpecialOptions();\\n this._initEventHandlers();\\n }\\n },\\n\\n _initSpecialOptions: function () {\\n var options = this.options;\\n if (options.fileInput === undefined) {\\n options.fileInput = this.element.is('input[type=\\\"file\\\"]')\\n ? this.element\\n : this.element.find('input[type=\\\"file\\\"]');\\n } else if (!(options.fileInput instanceof $)) {\\n options.fileInput = $(options.fileInput);\\n }\\n if (!(options.dropZone instanceof $)) {\\n options.dropZone = $(options.dropZone);\\n }\\n if (!(options.pasteZone instanceof $)) {\\n options.pasteZone = $(options.pasteZone);\\n }\\n },\\n\\n _getRegExp: function (str) {\\n var parts = str.split('/'),\\n modifiers = parts.pop();\\n parts.shift();\\n return new RegExp(parts.join('/'), modifiers);\\n },\\n\\n _isRegExpOption: function (key, value) {\\n return (\\n key !== 'url' &&\\n $.type(value) === 'string' &&\\n /^\\\\/.*\\\\/[igm]{0,3}$/.test(value)\\n );\\n },\\n\\n _initDataAttributes: function () {\\n var that = this,\\n options = this.options,\\n data = this.element.data();\\n // Initialize options set via HTML5 data-attributes:\\n $.each(this.element[0].attributes, function (index, attr) {\\n var key = attr.name.toLowerCase(),\\n value;\\n if (/^data-/.test(key)) {\\n // Convert hyphen-ated key to camelCase:\\n key = key.slice(5).replace(/-[a-z]/g, function (str) {\\n return str.charAt(1).toUpperCase();\\n });\\n value = data[key];\\n if (that._isRegExpOption(key, value)) {\\n value = that._getRegExp(value);\\n }\\n options[key] = value;\\n }\\n });\\n },\\n\\n _create: function () {\\n this._initDataAttributes();\\n this._initSpecialOptions();\\n this._slots = [];\\n this._sequence = this._getXHRPromise(true);\\n this._sending = this._active = 0;\\n this._initProgressObject(this);\\n this._initEventHandlers();\\n },\\n\\n // This method is exposed to the widget API and allows to query\\n // the number of active uploads:\\n active: function () {\\n return this._active;\\n },\\n\\n // This method is exposed to the widget API and allows to query\\n // the widget upload progress.\\n // It returns an object with loaded, total and bitrate properties\\n // for the running uploads:\\n progress: function () {\\n return this._progress;\\n },\\n\\n // This method is exposed to the widget API and allows adding files\\n // using the fileupload API. The data parameter accepts an object which\\n // must have a files property and can contain additional options:\\n // .fileupload('add', {files: filesList});\\n add: function (data) {\\n var that = this;\\n if (!data || this.options.disabled) {\\n return;\\n }\\n if (data.fileInput && !data.files) {\\n this._getFileInputFiles(data.fileInput).always(function (files) {\\n data.files = files;\\n that._onAdd(null, data);\\n });\\n } else {\\n data.files = $.makeArray(data.files);\\n this._onAdd(null, data);\\n }\\n },\\n\\n // This method is exposed to the widget API and allows sending files\\n // using the fileupload API. The data parameter accepts an object which\\n // must have a files or fileInput property and can contain additional options:\\n // .fileupload('send', {files: filesList});\\n // The method returns a Promise object for the file upload call.\\n send: function (data) {\\n if (data && !this.options.disabled) {\\n if (data.fileInput && !data.files) {\\n var that = this,\\n dfd = $.Deferred(),\\n promise = dfd.promise(),\\n jqXHR,\\n aborted;\\n promise.abort = function () {\\n aborted = true;\\n if (jqXHR) {\\n return jqXHR.abort();\\n }\\n dfd.reject(null, 'abort', 'abort');\\n return promise;\\n };\\n this._getFileInputFiles(data.fileInput).always(function (files) {\\n if (aborted) {\\n return;\\n }\\n if (!files.length) {\\n dfd.reject();\\n return;\\n }\\n data.files = files;\\n jqXHR = that._onSend(null, data);\\n jqXHR.then(\\n function (result, textStatus, jqXHR) {\\n dfd.resolve(result, textStatus, jqXHR);\\n },\\n function (jqXHR, textStatus, errorThrown) {\\n dfd.reject(jqXHR, textStatus, errorThrown);\\n }\\n );\\n });\\n return this._enhancePromise(promise);\\n }\\n data.files = $.makeArray(data.files);\\n if (data.files.length) {\\n return this._onSend(null, data);\\n }\\n }\\n return this._getXHRPromise(false, data && data.context);\\n }\\n });\\n});\\n\"","require(\"!!/tmp/glpi-9.5.5/glpi/node_modules/script-loader/addScript.js\")(require(\"!!/tmp/glpi-9.5.5/glpi/node_modules/raw-loader/index.js!/tmp/glpi-9.5.5/glpi/node_modules/strip-sourcemap-loader/index.js!/tmp/glpi-9.5.5/glpi/vendor/blueimp/jquery-file-upload/js/jquery.iframe-transport.js\"))","module.exports = \"/*\\n * jQuery Iframe Transport Plugin\\n * https://github.com/blueimp/jQuery-File-Upload\\n *\\n * Copyright 2011, Sebastian Tschan\\n * https://blueimp.net\\n *\\n * Licensed under the MIT license:\\n * https://opensource.org/licenses/MIT\\n */\\n\\n/* global define, require */\\n\\n(function (factory) {\\n 'use strict';\\n if (typeof define === 'function' && define.amd) {\\n // Register as an anonymous AMD module:\\n define(['jquery'], factory);\\n } else if (typeof exports === 'object') {\\n // Node/CommonJS:\\n factory(require('jquery'));\\n } else {\\n // Browser globals:\\n factory(window.jQuery);\\n }\\n})(function ($) {\\n 'use strict';\\n\\n // Helper variable to create unique names for the transport iframes:\\n var counter = 0,\\n jsonAPI = $,\\n jsonParse = 'parseJSON';\\n\\n if ('JSON' in window && 'parse' in JSON) {\\n jsonAPI = JSON;\\n jsonParse = 'parse';\\n }\\n\\n // The iframe transport accepts four additional options:\\n // options.fileInput: a jQuery collection of file input fields\\n // options.paramName: the parameter name for the file form data,\\n // overrides the name property of the file input field(s),\\n // can be a string or an array of strings.\\n // options.formData: an array of objects with name and value properties,\\n // equivalent to the return data of .serializeArray(), e.g.:\\n // [{name: 'a', value: 1}, {name: 'b', value: 2}]\\n // options.initialIframeSrc: the URL of the initial iframe src,\\n // by default set to \\\"javascript:false;\\\"\\n $.ajaxTransport('iframe', function (options) {\\n if (options.async) {\\n // javascript:false as initial iframe src\\n // prevents warning popups on HTTPS in IE6:\\n // eslint-disable-next-line no-script-url\\n var initialIframeSrc = options.initialIframeSrc || 'javascript:false;',\\n form,\\n iframe,\\n addParamChar;\\n return {\\n send: function (_, completeCallback) {\\n form = $('<form style=\\\"display:none;\\\"></form>');\\n form.attr('accept-charset', options.formAcceptCharset);\\n addParamChar = /\\\\?/.test(options.url) ? '&' : '?';\\n // XDomainRequest only supports GET and POST:\\n if (options.type === 'DELETE') {\\n options.url = options.url + addParamChar + '_method=DELETE';\\n options.type = 'POST';\\n } else if (options.type === 'PUT') {\\n options.url = options.url + addParamChar + '_method=PUT';\\n options.type = 'POST';\\n } else if (options.type === 'PATCH') {\\n options.url = options.url + addParamChar + '_method=PATCH';\\n options.type = 'POST';\\n }\\n // IE versions below IE8 cannot set the name property of\\n // elements that have already been added to the DOM,\\n // so we set the name along with the iframe HTML markup:\\n counter += 1;\\n iframe = $(\\n '<iframe src=\\\"' +\\n initialIframeSrc +\\n '\\\" name=\\\"iframe-transport-' +\\n counter +\\n '\\\"></iframe>'\\n ).on('load', function () {\\n var fileInputClones,\\n paramNames = $.isArray(options.paramName)\\n ? options.paramName\\n : [options.paramName];\\n iframe.off('load').on('load', function () {\\n var response;\\n // Wrap in a try/catch block to catch exceptions thrown\\n // when trying to access cross-domain iframe contents:\\n try {\\n response = iframe.contents();\\n // Google Chrome and Firefox do not throw an\\n // exception when calling iframe.contents() on\\n // cross-domain requests, so we unify the response:\\n if (!response.length || !response[0].firstChild) {\\n throw new Error();\\n }\\n } catch (e) {\\n response = undefined;\\n }\\n // The complete callback returns the\\n // iframe content document as response object:\\n completeCallback(200, 'success', { iframe: response });\\n // Fix for IE endless progress bar activity bug\\n // (happens on form submits to iframe targets):\\n $('<iframe src=\\\"' + initialIframeSrc + '\\\"></iframe>').appendTo(\\n form\\n );\\n window.setTimeout(function () {\\n // Removing the form in a setTimeout call\\n // allows Chrome's developer tools to display\\n // the response result\\n form.remove();\\n }, 0);\\n });\\n form\\n .prop('target', iframe.prop('name'))\\n .prop('action', options.url)\\n .prop('method', options.type);\\n if (options.formData) {\\n $.each(options.formData, function (index, field) {\\n $('<input type=\\\"hidden\\\"/>')\\n .prop('name', field.name)\\n .val(field.value)\\n .appendTo(form);\\n });\\n }\\n if (\\n options.fileInput &&\\n options.fileInput.length &&\\n options.type === 'POST'\\n ) {\\n fileInputClones = options.fileInput.clone();\\n // Insert a clone for each file input field:\\n options.fileInput.after(function (index) {\\n return fileInputClones[index];\\n });\\n if (options.paramName) {\\n options.fileInput.each(function (index) {\\n $(this).prop('name', paramNames[index] || options.paramName);\\n });\\n }\\n // Appending the file input fields to the hidden form\\n // removes them from their original location:\\n form\\n .append(options.fileInput)\\n .prop('enctype', 'multipart/form-data')\\n // enctype must be set as encoding for IE:\\n .prop('encoding', 'multipart/form-data');\\n // Remove the HTML5 form attribute from the input(s):\\n options.fileInput.removeAttr('form');\\n }\\n window.setTimeout(function () {\\n // Submitting the form in a setTimeout call fixes an issue with\\n // Safari 13 not triggering the iframe load event after resetting\\n // the load event handler, see also:\\n // https://github.com/blueimp/jQuery-File-Upload/issues/3633\\n form.submit();\\n // Insert the file input fields at their original location\\n // by replacing the clones with the originals:\\n if (fileInputClones && fileInputClones.length) {\\n options.fileInput.each(function (index, input) {\\n var clone = $(fileInputClones[index]);\\n // Restore the original name and form properties:\\n $(input)\\n .prop('name', clone.prop('name'))\\n .attr('form', clone.attr('form'));\\n clone.replaceWith(input);\\n });\\n }\\n }, 0);\\n });\\n form.append(iframe).appendTo(document.body);\\n },\\n abort: function () {\\n if (iframe) {\\n // javascript:false as iframe src aborts the request\\n // and prevents warning popups on HTTPS in IE6.\\n iframe.off('load').prop('src', initialIframeSrc);\\n }\\n if (form) {\\n form.remove();\\n }\\n }\\n };\\n }\\n });\\n\\n // The iframe transport returns the iframe content document as response.\\n // The following adds converters from iframe to text, json, html, xml\\n // and script.\\n // Please note that the Content-Type for JSON responses has to be text/plain\\n // or text/html, if the browser doesn't include application/json in the\\n // Accept header, else IE will show a download dialog.\\n // The Content-Type for XML responses on the other hand has to be always\\n // application/xml or text/xml, so IE properly parses the XML response.\\n // See also\\n // https://github.com/blueimp/jQuery-File-Upload/wiki/Setup#content-type-negotiation\\n $.ajaxSetup({\\n converters: {\\n 'iframe text': function (iframe) {\\n return iframe && $(iframe[0].body).text();\\n },\\n 'iframe json': function (iframe) {\\n return iframe && jsonAPI[jsonParse]($(iframe[0].body).text());\\n },\\n 'iframe html': function (iframe) {\\n return iframe && $(iframe[0].body).html();\\n },\\n 'iframe xml': function (iframe) {\\n var xmlDoc = iframe && iframe[0];\\n return xmlDoc && $.isXMLDoc(xmlDoc)\\n ? xmlDoc\\n : $.parseXML(\\n (xmlDoc.XMLDocument && xmlDoc.XMLDocument.xml) ||\\n $(xmlDoc.body).html()\\n );\\n },\\n 'iframe script': function (iframe) {\\n return iframe && $.globalEval($(iframe[0].body).text());\\n }\\n }\\n });\\n});\\n\"","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nvar getOwnPropertyDescriptors = Object.getOwnPropertyDescriptors ||\n function getOwnPropertyDescriptors(obj) {\n var keys = Object.keys(obj);\n var descriptors = {};\n for (var i = 0; i < keys.length; i++) {\n descriptors[keys[i]] = Object.getOwnPropertyDescriptor(obj, keys[i]);\n }\n return descriptors;\n };\n\nvar formatRegExp = /%[sdj%]/g;\nexports.format = function(f) {\n if (!isString(f)) {\n var objects = [];\n for (var i = 0; i < arguments.length; i++) {\n objects.push(inspect(arguments[i]));\n }\n return objects.join(' ');\n }\n\n var i = 1;\n var args = arguments;\n var len = args.length;\n var str = String(f).replace(formatRegExp, function(x) {\n if (x === '%%') return '%';\n if (i >= len) return x;\n switch (x) {\n case '%s': return String(args[i++]);\n case '%d': return Number(args[i++]);\n case '%j':\n try {\n return JSON.stringify(args[i++]);\n } catch (_) {\n return '[Circular]';\n }\n default:\n return x;\n }\n });\n for (var x = args[i]; i < len; x = args[++i]) {\n if (isNull(x) || !isObject(x)) {\n str += ' ' + x;\n } else {\n str += ' ' + inspect(x);\n }\n }\n return str;\n};\n\n\n// Mark that a method should not be used.\n// Returns a modified function which warns once by default.\n// If --no-deprecation is set, then it is a no-op.\nexports.deprecate = function(fn, msg) {\n if (typeof process !== 'undefined' && process.noDeprecation === true) {\n return fn;\n }\n\n // Allow for deprecating things in the process of starting up.\n if (typeof process === 'undefined') {\n return function() {\n return exports.deprecate(fn, msg).apply(this, arguments);\n };\n }\n\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (process.throwDeprecation) {\n throw new Error(msg);\n } else if (process.traceDeprecation) {\n console.trace(msg);\n } else {\n console.error(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n};\n\n\nvar debugs = {};\nvar debugEnviron;\nexports.debuglog = function(set) {\n if (isUndefined(debugEnviron))\n debugEnviron = process.env.NODE_DEBUG || '';\n set = set.toUpperCase();\n if (!debugs[set]) {\n if (new RegExp('\\\\b' + set + '\\\\b', 'i').test(debugEnviron)) {\n var pid = process.pid;\n debugs[set] = function() {\n var msg = exports.format.apply(exports, arguments);\n console.error('%s %d: %s', set, pid, msg);\n };\n } else {\n debugs[set] = function() {};\n }\n }\n return debugs[set];\n};\n\n\n/**\n * Echos the value of a value. Trys to print the value out\n * in the best way possible given the different types.\n *\n * @param {Object} obj The object to print out.\n * @param {Object} opts Optional options object that alters the output.\n */\n/* legacy: obj, showHidden, depth, colors*/\nfunction inspect(obj, opts) {\n // default options\n var ctx = {\n seen: [],\n stylize: stylizeNoColor\n };\n // legacy...\n if (arguments.length >= 3) ctx.depth = arguments[2];\n if (arguments.length >= 4) ctx.colors = arguments[3];\n if (isBoolean(opts)) {\n // legacy...\n ctx.showHidden = opts;\n } else if (opts) {\n // got an \"options\" object\n exports._extend(ctx, opts);\n }\n // set default options\n if (isUndefined(ctx.showHidden)) ctx.showHidden = false;\n if (isUndefined(ctx.depth)) ctx.depth = 2;\n if (isUndefined(ctx.colors)) ctx.colors = false;\n if (isUndefined(ctx.customInspect)) ctx.customInspect = true;\n if (ctx.colors) ctx.stylize = stylizeWithColor;\n return formatValue(ctx, obj, ctx.depth);\n}\nexports.inspect = inspect;\n\n\n// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics\ninspect.colors = {\n 'bold' : [1, 22],\n 'italic' : [3, 23],\n 'underline' : [4, 24],\n 'inverse' : [7, 27],\n 'white' : [37, 39],\n 'grey' : [90, 39],\n 'black' : [30, 39],\n 'blue' : [34, 39],\n 'cyan' : [36, 39],\n 'green' : [32, 39],\n 'magenta' : [35, 39],\n 'red' : [31, 39],\n 'yellow' : [33, 39]\n};\n\n// Don't use 'blue' not visible on cmd.exe\ninspect.styles = {\n 'special': 'cyan',\n 'number': 'yellow',\n 'boolean': 'yellow',\n 'undefined': 'grey',\n 'null': 'bold',\n 'string': 'green',\n 'date': 'magenta',\n // \"name\": intentionally not styling\n 'regexp': 'red'\n};\n\n\nfunction stylizeWithColor(str, styleType) {\n var style = inspect.styles[styleType];\n\n if (style) {\n return '\\u001b[' + inspect.colors[style][0] + 'm' + str +\n '\\u001b[' + inspect.colors[style][1] + 'm';\n } else {\n return str;\n }\n}\n\n\nfunction stylizeNoColor(str, styleType) {\n return str;\n}\n\n\nfunction arrayToHash(array) {\n var hash = {};\n\n array.forEach(function(val, idx) {\n hash[val] = true;\n });\n\n return hash;\n}\n\n\nfunction formatValue(ctx, value, recurseTimes) {\n // Provide a hook for user-specified inspect functions.\n // Check that value is an object with an inspect function on it\n if (ctx.customInspect &&\n value &&\n isFunction(value.inspect) &&\n // Filter out the util module, it's inspect function is special\n value.inspect !== exports.inspect &&\n // Also filter out any prototype objects using the circular check.\n !(value.constructor && value.constructor.prototype === value)) {\n var ret = value.inspect(recurseTimes, ctx);\n if (!isString(ret)) {\n ret = formatValue(ctx, ret, recurseTimes);\n }\n return ret;\n }\n\n // Primitive types cannot have properties\n var primitive = formatPrimitive(ctx, value);\n if (primitive) {\n return primitive;\n }\n\n // Look up the keys of the object.\n var keys = Object.keys(value);\n var visibleKeys = arrayToHash(keys);\n\n if (ctx.showHidden) {\n keys = Object.getOwnPropertyNames(value);\n }\n\n // IE doesn't make error fields non-enumerable\n // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx\n if (isError(value)\n && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) {\n return formatError(value);\n }\n\n // Some type of object without properties can be shortcutted.\n if (keys.length === 0) {\n if (isFunction(value)) {\n var name = value.name ? ': ' + value.name : '';\n return ctx.stylize('[Function' + name + ']', 'special');\n }\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n }\n if (isDate(value)) {\n return ctx.stylize(Date.prototype.toString.call(value), 'date');\n }\n if (isError(value)) {\n return formatError(value);\n }\n }\n\n var base = '', array = false, braces = ['{', '}'];\n\n // Make Array say that they are Array\n if (isArray(value)) {\n array = true;\n braces = ['[', ']'];\n }\n\n // Make functions say that they are functions\n if (isFunction(value)) {\n var n = value.name ? ': ' + value.name : '';\n base = ' [Function' + n + ']';\n }\n\n // Make RegExps say that they are RegExps\n if (isRegExp(value)) {\n base = ' ' + RegExp.prototype.toString.call(value);\n }\n\n // Make dates with properties first say the date\n if (isDate(value)) {\n base = ' ' + Date.prototype.toUTCString.call(value);\n }\n\n // Make error with message first say the error\n if (isError(value)) {\n base = ' ' + formatError(value);\n }\n\n if (keys.length === 0 && (!array || value.length == 0)) {\n return braces[0] + base + braces[1];\n }\n\n if (recurseTimes < 0) {\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n } else {\n return ctx.stylize('[Object]', 'special');\n }\n }\n\n ctx.seen.push(value);\n\n var output;\n if (array) {\n output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);\n } else {\n output = keys.map(function(key) {\n return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);\n });\n }\n\n ctx.seen.pop();\n\n return reduceToSingleString(output, base, braces);\n}\n\n\nfunction formatPrimitive(ctx, value) {\n if (isUndefined(value))\n return ctx.stylize('undefined', 'undefined');\n if (isString(value)) {\n var simple = '\\'' + JSON.stringify(value).replace(/^\"|\"$/g, '')\n .replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"') + '\\'';\n return ctx.stylize(simple, 'string');\n }\n if (isNumber(value))\n return ctx.stylize('' + value, 'number');\n if (isBoolean(value))\n return ctx.stylize('' + value, 'boolean');\n // For some reason typeof null is \"object\", so special case here.\n if (isNull(value))\n return ctx.stylize('null', 'null');\n}\n\n\nfunction formatError(value) {\n return '[' + Error.prototype.toString.call(value) + ']';\n}\n\n\nfunction formatArray(ctx, value, recurseTimes, visibleKeys, keys) {\n var output = [];\n for (var i = 0, l = value.length; i < l; ++i) {\n if (hasOwnProperty(value, String(i))) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n String(i), true));\n } else {\n output.push('');\n }\n }\n keys.forEach(function(key) {\n if (!key.match(/^\\d+$/)) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n key, true));\n }\n });\n return output;\n}\n\n\nfunction formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {\n var name, str, desc;\n desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };\n if (desc.get) {\n if (desc.set) {\n str = ctx.stylize('[Getter/Setter]', 'special');\n } else {\n str = ctx.stylize('[Getter]', 'special');\n }\n } else {\n if (desc.set) {\n str = ctx.stylize('[Setter]', 'special');\n }\n }\n if (!hasOwnProperty(visibleKeys, key)) {\n name = '[' + key + ']';\n }\n if (!str) {\n if (ctx.seen.indexOf(desc.value) < 0) {\n if (isNull(recurseTimes)) {\n str = formatValue(ctx, desc.value, null);\n } else {\n str = formatValue(ctx, desc.value, recurseTimes - 1);\n }\n if (str.indexOf('\\n') > -1) {\n if (array) {\n str = str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n').substr(2);\n } else {\n str = '\\n' + str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n');\n }\n }\n } else {\n str = ctx.stylize('[Circular]', 'special');\n }\n }\n if (isUndefined(name)) {\n if (array && key.match(/^\\d+$/)) {\n return str;\n }\n name = JSON.stringify('' + key);\n if (name.match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/)) {\n name = name.substr(1, name.length - 2);\n name = ctx.stylize(name, 'name');\n } else {\n name = name.replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"')\n .replace(/(^\"|\"$)/g, \"'\");\n name = ctx.stylize(name, 'string');\n }\n }\n\n return name + ': ' + str;\n}\n\n\nfunction reduceToSingleString(output, base, braces) {\n var numLinesEst = 0;\n var length = output.reduce(function(prev, cur) {\n numLinesEst++;\n if (cur.indexOf('\\n') >= 0) numLinesEst++;\n return prev + cur.replace(/\\u001b\\[\\d\\d?m/g, '').length + 1;\n }, 0);\n\n if (length > 60) {\n return braces[0] +\n (base === '' ? '' : base + '\\n ') +\n ' ' +\n output.join(',\\n ') +\n ' ' +\n braces[1];\n }\n\n return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1];\n}\n\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\nfunction isArray(ar) {\n return Array.isArray(ar);\n}\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n return typeof arg === 'boolean';\n}\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n return arg === null;\n}\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n return typeof arg === 'string';\n}\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n return typeof arg === 'symbol';\n}\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n return isObject(re) && objectToString(re) === '[object RegExp]';\n}\nexports.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\nexports.isObject = isObject;\n\nfunction isDate(d) {\n return isObject(d) && objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\n\nfunction isError(e) {\n return isObject(e) &&\n (objectToString(e) === '[object Error]' || e instanceof Error);\n}\nexports.isError = isError;\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n return arg === null ||\n typeof arg === 'boolean' ||\n typeof arg === 'number' ||\n typeof arg === 'string' ||\n typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\nexports.isPrimitive = isPrimitive;\n\nexports.isBuffer = require('./support/isBuffer');\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n\n\nfunction pad(n) {\n return n < 10 ? '0' + n.toString(10) : n.toString(10);\n}\n\n\nvar months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',\n 'Oct', 'Nov', 'Dec'];\n\n// 26 Feb 16:19:34\nfunction timestamp() {\n var d = new Date();\n var time = [pad(d.getHours()),\n pad(d.getMinutes()),\n pad(d.getSeconds())].join(':');\n return [d.getDate(), months[d.getMonth()], time].join(' ');\n}\n\n\n// log is just a thin wrapper to console.log that prepends a timestamp\nexports.log = function() {\n console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));\n};\n\n\n/**\n * Inherit the prototype methods from one constructor into another.\n *\n * The Function.prototype.inherits from lang.js rewritten as a standalone\n * function (not on Function.prototype). NOTE: If this file is to be loaded\n * during bootstrapping this function needs to be rewritten using some native\n * functions as prototype setup using normal JavaScript does not work as\n * expected during bootstrapping (see mirror.js in r114903).\n *\n * @param {function} ctor Constructor function which needs to inherit the\n * prototype.\n * @param {function} superCtor Constructor function to inherit prototype from.\n */\nexports.inherits = require('inherits');\n\nexports._extend = function(origin, add) {\n // Don't do anything if add isn't an object\n if (!add || !isObject(add)) return origin;\n\n var keys = Object.keys(add);\n var i = keys.length;\n while (i--) {\n origin[keys[i]] = add[keys[i]];\n }\n return origin;\n};\n\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nvar kCustomPromisifiedSymbol = typeof Symbol !== 'undefined' ? Symbol('util.promisify.custom') : undefined;\n\nexports.promisify = function promisify(original) {\n if (typeof original !== 'function')\n throw new TypeError('The \"original\" argument must be of type Function');\n\n if (kCustomPromisifiedSymbol && original[kCustomPromisifiedSymbol]) {\n var fn = original[kCustomPromisifiedSymbol];\n if (typeof fn !== 'function') {\n throw new TypeError('The \"util.promisify.custom\" argument must be of type Function');\n }\n Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n value: fn, enumerable: false, writable: false, configurable: true\n });\n return fn;\n }\n\n function fn() {\n var promiseResolve, promiseReject;\n var promise = new Promise(function (resolve, reject) {\n promiseResolve = resolve;\n promiseReject = reject;\n });\n\n var args = [];\n for (var i = 0; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n args.push(function (err, value) {\n if (err) {\n promiseReject(err);\n } else {\n promiseResolve(value);\n }\n });\n\n try {\n original.apply(this, args);\n } catch (err) {\n promiseReject(err);\n }\n\n return promise;\n }\n\n Object.setPrototypeOf(fn, Object.getPrototypeOf(original));\n\n if (kCustomPromisifiedSymbol) Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n value: fn, enumerable: false, writable: false, configurable: true\n });\n return Object.defineProperties(\n fn,\n getOwnPropertyDescriptors(original)\n );\n}\n\nexports.promisify.custom = kCustomPromisifiedSymbol\n\nfunction callbackifyOnRejected(reason, cb) {\n // `!reason` guard inspired by bluebird (Ref: https://goo.gl/t5IS6M).\n // Because `null` is a special error value in callbacks which means \"no error\n // occurred\", we error-wrap so the callback consumer can distinguish between\n // \"the promise rejected with null\" or \"the promise fulfilled with undefined\".\n if (!reason) {\n var newReason = new Error('Promise was rejected with a falsy value');\n newReason.reason = reason;\n reason = newReason;\n }\n return cb(reason);\n}\n\nfunction callbackify(original) {\n if (typeof original !== 'function') {\n throw new TypeError('The \"original\" argument must be of type Function');\n }\n\n // We DO NOT return the promise as it gives the user a false sense that\n // the promise is actually somehow related to the callback's execution\n // and that the callback throwing will reject the promise.\n function callbackified() {\n var args = [];\n for (var i = 0; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n\n var maybeCb = args.pop();\n if (typeof maybeCb !== 'function') {\n throw new TypeError('The last argument must be of type Function');\n }\n var self = this;\n var cb = function() {\n return maybeCb.apply(self, arguments);\n };\n // In true node style we process the callback on `nextTick` with all the\n // implications (stack, `uncaughtException`, `async_hooks`)\n original.apply(this, args)\n .then(function(ret) { process.nextTick(cb, null, ret) },\n function(rej) { process.nextTick(callbackifyOnRejected, rej, cb) });\n }\n\n Object.setPrototypeOf(callbackified, Object.getPrototypeOf(original));\n Object.defineProperties(callbackified,\n getOwnPropertyDescriptors(original));\n return callbackified;\n}\nexports.callbackify = callbackify;\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","module.exports = function isBuffer(arg) {\n return arg && typeof arg === 'object'\n && typeof arg.copy === 'function'\n && typeof arg.fill === 'function'\n && typeof arg.readUInt8 === 'function';\n}"],"sourceRoot":""}