Compare commits

..
1134 Commits
Author SHA1 Message Date
n1474335 17ec5c2683 8.2.0 2018-08-21 19:11:15 +01:00
n1474335 8d1839b9e2 Updated CHANGELOG.md 2018-08-21 19:10:35 +01:00
n1474335 23213a4ac5 Merge branch 'PenguinGeorge-info-links' 2018-08-21 19:08:08 +01:00
n1474335 e81c81351d Added more infoLinks and updated newOperation script to include prompt for them. 2018-08-21 19:07:13 +01:00
n1474335 757096d97a Added image licencing info 2018-08-20 01:20:02 +01:00
n1474335 2393eac218 Removed src/test.mjs 2018-08-20 00:50:59 +01:00
n1474335 745d21d1bc 8.1.4 2018-08-20 00:26:49 +01:00
n1474335 cb34518a89 Recipes with a single backslash argument are now parsed correctly. Fixes #319 2018-08-20 00:26:44 +01:00
n1474335 740f3924df Pressing return on a highlighted search result now correctly adds it to the recipe in Firefox. 2018-08-20 00:10:57 +01:00
n1474335 f052ed9b00 Compile message no longer overflows on small screens 2018-08-20 00:04:49 +01:00
n1474335 2507362741 8.1.3 2018-08-19 23:08:02 +01:00
n1474335 481a4266b0 Reset progress on statechange events. Fixes #329. 2018-08-19 23:07:53 +01:00
n1474335 92d9abf43a 8.1.2 2018-08-19 22:58:35 +01:00
n1474335 5bcdd99870 'Change IP format' operation now uses the correct arguments. Fixes #332 2018-08-19 22:58:31 +01:00
n1474335 e11bb38625 8.1.1 2018-08-19 22:50:54 +01:00
n1474335 affe057cab Added 'Decimal' option for toggleStrings. Closes #337. 2018-08-19 22:50:49 +01:00
n1474335 c1b2fc9400 Updated CHANGELOG.md 2018-08-19 17:39:49 +01:00
n1474335 782e0f3475 8.1.0 2018-08-19 17:37:19 +01:00
n1474335 6be7ac89d4 Merge branch 'sevzero-esm' 2018-08-19 17:37:03 +01:00
n1474335 ad2424cfdd Tidied up 'Dechunk HTTP Response' operation 2018-08-19 17:36:40 +01:00
n1474335 b9703e2bb6 8.0.2 2018-08-19 17:14:36 +01:00
n1474335 198b67104f Merge branch 'Cynser-fix-date-time' 2018-08-19 17:14:20 +01:00
n1474335 8dab0eac58 Removed excess newline 2018-08-19 17:14:07 +01:00
Cynser 8b78383732 Newline at end of files 2018-08-16 03:31:09 +01:00
Cynser f1c31ea966 Added some tests for the Translate DateTime Format operation 2018-08-16 03:28:11 +01:00
Cynser 1a1fad7433 Fixed DateTime format arguments 2018-08-16 03:01:19 +01:00
d98762625 ab248a0209 Merge pull request #333 from d98762625/update-cla-doc
Update CLA info in README
2018-08-14 12:09:19 +01:00
d98762625 6155dbb6e9 Update CLA info in README 2018-08-14 09:35:41 +01:00
n1474335 f7310369e6 8.0.1 2018-08-09 19:17:35 +01:00
n1474335 9b7f4e824a Improvements and basic tests for Magic op and addition of deep cloning for dishes 2018-08-09 19:17:24 +01:00
n1474335 2b6c280858 8.0.0 2018-08-06 08:17:36 +01:00
n1474335 6de74b8211 Merge branch 'esm' 2018-08-06 08:16:51 +01:00
n1474335 3e5b3900bc CSS tweak to dropdown toggle height 2018-08-06 07:53:30 +01:00
n1474335 0453bd098b Removed phantomjs-prebuilt from direct dependencies 2018-08-06 07:39:25 +01:00
n1474335 4dc6dac885 Added CHANGELOG.md 2018-08-06 07:35:30 +01:00
n1474335 8da9af8989 Updated dependencies 2018-08-04 19:32:30 +01:00
n1474335 bd34f6bb6d Merge branch 'Dachande663-operation-haversine' into esm 2018-08-03 21:19:14 +01:00
n1474335 ff59a9d130 Moved Haversine Distance operation in categories 2018-08-03 21:18:53 +01:00
n1474335 63e0e4eaeb Merge branch 'operation-haversine' of https://github.com/Dachande663/CyberChef into Dachande663-operation-haversine 2018-08-03 21:12:54 +01:00
n1474335 c9635bee06 Merge branch 'feature-bootstrap4' into esm 2018-08-03 20:22:27 +01:00
n1474335 1b2d09c1e5 Merge branch 'esm' into feature-bootstrap4 2018-08-03 20:21:59 +01:00
n1474335 a947e06140 Added option to turn off background auto magic 2018-08-03 20:18:19 +01:00
n1474335 53b92ae8ef Further CSS tweaks 2018-08-03 19:58:44 +01:00
Luke Lanchester 87b77215e4 Added Haversine distance operation
This operation calculates the great circle distance between two GPS co-ordinates, returning the value
2018-08-03 18:20:38 +01:00
n1474335 2a55f1317a Fixed themes for MD 2018-08-02 13:21:02 +01:00
n1474335 c3a353837f Linted 2018-07-27 15:54:49 +00:00
n1474335 035b6dfa95 Added font and icon 2018-07-27 15:52:32 +00:00
n1474335 33b2fd8d69 Improved magic and staleness indicator animations 2018-07-27 15:18:08 +00:00
n1474335 541e4ff8cd Added functionality to Magic button and improved the icon 2018-07-27 13:37:38 +00:00
n1474335 ba5c503c48 Added Magic button and tweaked margins for Windows 2018-07-26 17:47:14 +00:00
n1474335 651ca6cf5d Fixed all HTML operations 2018-07-15 13:25:44 +01:00
n1474335 ab44100312 Changed table-condensed to table-sm 2018-07-13 13:03:13 +00:00
n1474335 a39e2c165d Fixed input and output cards 2018-07-13 12:10:24 +00:00
n1474335 d182261ff3 Switched to unbordered args 2018-07-13 10:30:24 +00:00
n1474335 052c32e2ce Arguments are now bordered white boxes again 2018-07-13 00:03:04 +01:00
n1474335 dcf3152dee Operation cursor now indicates that it can be dragged 2018-06-20 00:27:40 +01:00
n1474335 4338e2626b Replaced Bootstrap alert with Material Design snackbar 2018-06-20 00:18:59 +01:00
n1474335 67dffbec32 Actually fixed flow control operation argument text colour 2018-06-19 01:06:10 +01:00
n1474335 7504f89666 Fixed flow control operation argument text colour 2018-06-19 01:03:55 +01:00
n1474335 ba79144036 Operation arguments are now arranged using CSS Grid 2018-06-19 00:55:08 +01:00
n1474335 974ab29e36 Switched toggle string dropdown sides and removed form-control padding 2018-06-17 23:52:00 +01:00
n1474335 fa523e0d4a Changed banner icons to Material Design 2018-06-17 14:09:52 +01:00
n1474335 ab9bc7e390 Fixed boolean arg checkboxes 2018-06-17 13:49:32 +01:00
n1474335 4147ec719b Converted modals to Bootstrap 4 Material Design 2018-06-17 12:44:12 +01:00
n1474335 4ca14ed0ce 'From Hexdump' now supports an alternative style of Wireshark hexdumps. Test added. 2018-06-13 13:00:49 +00:00
n1474335 7d410fcdc9 Converted op-icons to material design and improved controls. 2018-06-10 14:55:15 +01:00
n1474335 2bacd6424d Converted operation arguments to material design 2018-06-10 12:03:55 +01:00
n1474335 27b0505ede Merged ESM into feature-bootstrap4 2018-06-09 10:48:35 +01:00
n1474335 1ce6e32086 Merged ESM into feature-bootstrap4. Started work on text inputs. 2018-06-09 10:43:36 +01:00
n1474335 40a1da10e3 Merge branch 'esm' of github.com:gchq/CyberChef into esm 2018-06-03 17:33:39 +01:00
n1474335 1ef4f71d8b ESM: Added BackgroundWorkerWaiter for running Magic on output in the background 2018-06-03 17:33:13 +01:00
n1474335 a0f034b843 ESM: Fixed magic errors 2018-06-01 12:43:36 +00:00
n1474335 37c8d1b7ea ESM: Fixed OpModules import to make inline version function correctly 2018-05-29 16:22:04 +00:00
n1474335 6a4bc3c9df ESM: Fixed PGP ops and added tests 2018-05-29 16:00:24 +00:00
n1474335 78c1c4d680 ESM: Added builder script to generate new operations. npm run newop 2018-05-29 14:18:39 +00:00
n1474335 60340fc8ae ESM: Removed legacy files 2018-05-29 01:20:44 +01:00
n1474335 be0fc7591d Merge branch 'picapi-ip-convert' into esm 2018-05-29 00:48:45 +01:00
n1474335 7f9a2eeb6b ESM: Tidied up IP operations 2018-05-29 00:48:30 +01:00
n1474335 40b29d770a Merge branch 'artemisbot-esmconversion' into esm 2018-05-28 15:47:50 -07:00
n1474335 3f3a3e0016 ESM: Tidied up recently added operations 2018-05-28 15:42:43 -07:00
Matt C 6a561185df ESM: Ported RegEx operations 2018-05-28 00:39:03 +01:00
Matt C 049656ec6b ESM: Ported PublicKey operations 2018-05-27 23:53:43 +01:00
Matt C 709630f39b Ported Image operations + some cleanup 2018-05-27 23:27:11 +01:00
Matt C eb3a2502f5 Ported rest of Code ops & enabled/fixed some tests 2018-05-27 22:07:09 +01:00
n1474335 ade056e881 Merge branch 'artemisbot-esmconversion' into esm 2018-05-27 16:13:43 +01:00
n1474335 6768038a2f ESM: Tidied up recently ported ops 2018-05-27 16:13:18 +01:00
Matt C 905bc6699e ESM: Ported case converters, generic beautifier and syntax highlighting 2018-05-26 18:04:53 +01:00
sevzero ed84614389 Fixed issues raised by Travis 2018-05-24 13:39:14 +00:00
sevzero 67bd2605c0 Updated variable scope in legacy HTTP.js file 2018-05-24 13:21:50 +00:00
sevzero 83c145c2ac Reduced variable scopes 2018-05-24 13:17:46 +00:00
sevzero 53bf52c989 Added decoder for chunked HTTP encoding
This decoder will join up a HTTP response sent using chunked transfer encoding, raised in issue #168.

This is useful when attempting to extract files or gzipped responses sent using chunked transfer encoding, particularly when combined with the gunzip operation.
2018-05-24 13:09:04 +00:00
Matt C 176e83a79f Converted JS operations
Deleted legacy files, neatened args in other ported ops
2018-05-23 20:36:29 +01:00
Matt C 95f81ad740 Ported Bitwise operations
also enabled bitshift tests
2018-05-23 18:59:57 +01:00
Matt C 9ffab374db Converted PBKDF2 and RC2, enabled tests, deleted legacy Cipher file
Also made DESDecrypt test pass
2018-05-23 18:31:26 +01:00
Matt C 46b8b2fa7e Converted DES and TripleDES ops 2018-05-23 18:23:03 +01:00
Matt C 189e077247 Ported blowfish operations and library to ESM modules 2018-05-23 16:54:12 +01:00
n1474335 c29ea53405 ESM: Ported Punycode, HTTP and PRNG operations 2018-05-21 19:08:24 +00:00
n1474335 0d1e5311dc ESM: Changed thrown errors to OperationErrors 2018-05-21 18:34:52 +00:00
n1474335 cefe3fc542 ESM: Ported Bzip2, Diff and Tar operations 2018-05-21 18:23:05 +00:00
n1474335 749b0510e7 ESM: Ported BSON, ToTable, Filetime and XKCD operations 2018-05-21 17:37:32 +00:00
n1474335 eed28f67d5 ESM: Ported UUID, OTP, Numberwang and PHP operations 2018-05-21 12:35:11 +00:00
n1474335 739e06d7d3 Merge branch 'd98762625-port-flowcontrol' into esm 2018-05-21 11:45:28 +00:00
n1474335 28b24b725f ESM: Tidied up FlowControl ops 2018-05-21 11:39:10 +00:00
n1474335 1472f82205 Merge branch 'port-flowcontrol' of https://github.com/d98762625/CyberChef into d98762625-port-flowcontrol 2018-05-21 11:27:00 +00:00
n1474335 4990a1f9f1 ESM: Added file exists check to npm postinstall script. 2018-05-21 11:25:13 +00:00
d98762625 10556f528f update comments 2018-05-21 11:12:58 +01:00
d98762625 8ff6596657 add other flowcontrol ops. Update tests 2018-05-21 10:58:35 +01:00
d98762625 046e1ebad9 Merge branch 'esm' into port-flowcontrol 2018-05-21 09:02:58 +01:00
d98762625 9f52689fde Merge branch 'esm' of github.com:gchq/CyberChef into esm 2018-05-21 09:02:21 +01:00
n1474335 093a7c8c8a ESM: Config files are now initialised correctly. 2018-05-20 17:05:59 +01:00
n1474335 ee519c7352 Merged esm branch into feature-magic. Ported FileType ops. 2018-05-20 16:49:42 +01:00
d98762625 ec0ecf5151 add comments 2018-05-18 12:52:16 +01:00
d98762625 bfb405c4a6 Add Jump 2018-05-18 12:50:23 +01:00
d98762625 bca73b496f add Merge (without Fork). Add flowcontrol setter to Operation 2018-05-18 12:38:37 +01:00
d98762625 72d943aca2 Add register 2018-05-18 12:24:31 +01:00
d98762625 0f6ee68731 edit setter in Register 2018-05-18 12:23:58 +01:00
d98762625 3f08fa3b23 update package-lock 2018-05-18 11:40:24 +01:00
n1474335 1dddcb4345 ESM: Ported various tests for completed operations 2018-05-17 15:34:00 +00:00
n1474335 3fd1f4e6d9 ESM: Ported all Hash and Checksum operations 2018-05-17 15:11:34 +00:00
Callum Fraser 3ba12ae9ac Made variables non-private, and followed convention for the references to the IP lib. 2018-05-16 22:32:46 +01:00
Callum Fraser ea36687205 Merge branch 'esm' of https://github.com/gchq/CyberChef into ip-convert 2018-05-16 21:52:40 +01:00
Callum Fraser c17e897674 Ported the ParseIPv4Header operation. 2018-05-16 21:51:51 +01:00
Callum Fraser b7bdd4eed6 Ported the GroupIPAddresses operation. 2018-05-16 21:51:24 +01:00
Callum Fraser 792218df9c Ported the ChangeIPFormat operation. 2018-05-16 21:51:04 +01:00
Callum Fraser 161f89c038 Ported the TCPIPChecksum operation.
Main content has been moved to the IP lib file, as it is used in multiple files.
Changed the name, due to it originally containing a backslash, which caused issues with the script.
2018-05-16 21:50:48 +01:00
Callum Fraser 1920e9c7fb Added more content to the Ip.mjs file, required for other functions. 2018-05-16 21:37:48 +01:00
n1474335 5362508a99 ESM: Ported HTML, Unicode, Quoted Printable and Endian operations 2018-05-16 17:10:50 +00:00
n1474335 f26d175cad ESM: Ported Base58, Base and BCD operations 2018-05-16 16:25:05 +00:00
n1474335 84df055888 ESM: Ported MS and Entropy operations 2018-05-16 11:39:30 +01:00
n1474335 ebcc5bd9c8 ESM: Added generateConfig calls to relevant grunt tasks 2018-05-16 10:25:29 +01:00
n1474335 b760c2f1a0 ESM: Fixed OperationError detection and tidied up ops. 2018-05-16 10:17:49 +01:00
n1474335 acb8a342a7 Merge branch 'esmconversion' of https://github.com/artemisbot/CyberChef into esm 2018-05-16 09:28:24 +01:00
Callum Fraser 654596ea79 Ported "Parse IPv6 Address" 2018-05-15 23:48:33 +01:00
Callum Fraser 8d2adfaae7 Updated the Ip core file with more required functions/variables 2018-05-15 23:48:18 +01:00
Callum Fraser 5b6d57fd47 Ported "Parse IP Range". 2018-05-15 23:31:03 +01:00
Callum Fraser 39ba83eefb Created a Ip for now which contains all the helper functions, they may be moved into their corrosponding files in the future 2018-05-15 23:30:35 +01:00
Matt C 03f435915b Imported OperationError to TranslateDateTimeFormat 2018-05-15 18:50:04 +01:00
n1474335 07715bd167 ESM: Rewritten src/web/ in ESM format. 2018-05-15 17:36:45 +00:00
Matt C 2e4f5b7070 Changed all error returns to OperationErrors 2018-05-15 18:01:04 +01:00
Matt C b3ee251ee3 ESM: Port Extract.js module 2018-05-15 16:30:17 +01:00
n1474335 c90acd24f5 ESM: Added author tag to Sum op 2018-05-15 15:21:50 +00:00
n1474335 e41eb3d8a2 Merge branch 'port-arithmetic' of https://github.com/d98762625/CyberChef into esm 2018-05-15 15:16:56 +00:00
Matt C 3c214ce17c Deleted PGP file 2018-05-15 16:07:51 +01:00
Matt C 285e512483 Actually made these ops work 2018-05-15 16:04:57 +01:00
n1474335 b8d3b33963 ESM: Ported CharEnc operations 2018-05-15 15:03:41 +00:00
d98762625 3bbfc130d4 create arithmetic specific delimiter options 2018-05-15 14:59:28 +01:00
d98762625 6ddc1b1c9c export Arithmetic funcs individually. Use existing Delim 2018-05-15 14:32:39 +01:00
d98762625 f79dd29ed3 port standard deviation ops 2018-05-15 10:47:06 +01:00
d98762625 1198094d3b port median operation 2018-05-15 10:42:51 +01:00
d98762625 2716be397c port mean operation 2018-05-15 10:40:26 +01:00
d98762625 9de93022d6 port divide operation 2018-05-15 10:33:58 +01:00
d98762625 bf28410812 port multiply operation 2018-05-15 10:24:35 +01:00
d98762625 30288c6237 add Subtract op 2018-05-15 10:19:06 +01:00
Matt C 2b0c327001 Ported x86 Disassembler & PGP ops 2018-05-15 10:15:31 +01:00
d98762625 4fe34a4839 port Sum operation 2018-05-15 10:12:59 +01:00
Matt C b8d39f49b2 Convert URL operations
Delete legacy URL module
2018-05-14 22:15:28 +01:00
Matt C c9e9499106 Merge remote-tracking branch 'upstream/esm' into esmconversion 2018-05-14 20:39:13 +01:00
n1474335 a7d763287e ESM: Ported AES operations 2018-05-14 18:23:16 +00:00
n1474335 61832a9e2a ESM: whitespace tidying 2018-05-14 18:07:17 +00:00
n1474335 cbb5e7c611 Merge branch 'esmconversion' of https://github.com/artemisbot/CyberChef into esm 2018-05-14 17:49:57 +00:00
n1474335 bad45f19d6 ESM: Ported DateTime operations 2018-05-14 17:48:57 +00:00
Matt C e6f19c3dfd Fixed linebreaks in test index (thanks VSCode) 2018-05-14 18:33:16 +01:00
Matt C 24e4e268dc Converted RC4, RC4Drop and Derive EVP 2018-05-14 18:30:52 +01:00
n1474335 10005ce104 ESM: Ported OS operations 2018-05-14 17:16:42 +00:00
Matt C 4008dbf38a Merge remote-tracking branch 'upstream/esm' into esmconversion
Also removed substitute operation from legacy module
2018-05-14 18:09:21 +01:00
n1474335 cefe5bbaa8 ESM: Ported Convert operations 2018-05-14 17:03:23 +00:00
n1474335 d327dd47b2 ESM: Ported SeqUtils operations 2018-05-14 16:46:54 +00:00
n1474335 66c768fe31 ESM: Ported Tidy operations. Updated portOperation script to attempt to find the run function and list related constants. 2018-05-14 15:55:17 +00:00
n1474335 037e2f3771 ESM: Ported StrUtils and NetBIOS operations. 2018-05-14 14:31:04 +00:00
n1474335 a98d37e61c Merged master into esm branch 2018-05-14 11:58:01 +00:00
George J 77a0238406 Fixes syntax error 2018-05-13 13:27:52 +01:00
Matt C 2d6a56343b Converted substitute operation, added tests & moved to OperationError 2018-05-11 16:32:19 +01:00
Matt C 350d10d98b Added toggleString support 2018-05-11 10:03:06 +01:00
n1474335 dcc28438ff 7.11.1 2018-05-10 15:34:23 +00:00
n1474335 df7c1721f5 PGP ops no longer require a key to be in date 2018-05-10 15:34:10 +00:00
Matt C 6bec68021c Converted Vignere, added more tests and cleaned stuff up 2018-05-09 21:13:09 +01:00
Matt C 789ec94eff Converted Bifid & moved over tests 2018-05-09 20:28:28 +01:00
Matt C f87666f659 Converted Affine/Atbash operations to mjs & added tests 2018-05-09 20:18:33 +01:00
n1474335 6987e6b1b9 ESM: Ported Bit shift, MAC address and Morse Code operations. 2018-05-07 12:12:58 +01:00
n1474335 0ca0e7427d Merge branch 'esm' of github.com:gchq/CyberChef into esm 2018-05-07 11:35:35 +01:00
n1474335 be61419b80 ESM: Added remaining ByteRepr operations. 2018-05-06 13:18:41 +01:00
n1474335 1f877817f4 ESM: Added portOperation.mjs script. Added To and From Hexdump operations. 2018-05-06 12:24:01 +01:00
George J c7f13ff67f Added 'More Info' links to the descriptions of many operations for #265 2018-05-05 00:43:42 +01:00
n1474335 403296cc59 7.11.0 2018-05-04 16:11:50 +00:00
n1474335 addb2b4448 Merge branch 'JustAnotherMark-totable-operation' 2018-05-04 16:10:39 +00:00
n1474335 8556bdcdeb Tidied up 'To Table' operation, adding better CSV parsing support. 2018-05-04 16:10:22 +00:00
n1474335 8fc5f59647 Merge branch 'totable-operation' of https://github.com/JustAnotherMark/CyberChef into JustAnotherMark-totable-operation 2018-05-01 15:41:51 +00:00
n1474335 f7729c0fd2 7.10.3 2018-04-30 17:55:26 +00:00
n1474335 e2376c7c71 'BSON serialise' errors are now thrown correctly 2018-04-30 17:55:21 +00:00
n1474335 2cefd3b941 Updated dependencies 2018-04-30 17:52:43 +00:00
n1474335 4cff1c8fa9 Merge branch 'd98762625-op-errors' into esm 2018-04-30 17:26:11 +00:00
n1474335 0dbc7d4fd1 Tidied up OperationError code. 2018-04-30 17:25:13 +00:00
n1474335 68ab2da866 7.10.2 2018-04-30 16:51:24 +00:00
n1474335 72f7f0b70c Utils.fromHex function now defaults to automatically strip all delimiters. Fixes #295 2018-04-30 16:51:04 +00:00
n1474335 d18a7df3bc 7.10.1 2018-04-29 21:45:07 +01:00
n1474335 f81012ef6e CRC Checksum operations now send their input as ArrayBuffers. Tests added. Fixes #293 2018-04-29 21:44:54 +01:00
d98762625 cc20ad9567 Add OperationError error type and use for errors to be printed to the output panel 2018-04-27 10:59:53 +01:00
Mark Jones 411bba53a8 Fix code style issues raised by linting. 2018-04-26 13:00:35 +01:00
Mark Jones e2af3c78e7 Added ToTable operation to output data as ASCII or HTML tables. 2018-04-26 00:33:19 +01:00
n1474335 a8aa1bc5e8 Added File and JSON Dish types and updated types for compression ops. 2018-04-21 13:41:42 +01:00
n1474335 76a066ab74 The raw, unpresented dish is now returned to the app after baking, where it can be retrieved as various different data types. 2018-04-21 12:25:48 +01:00
n1474335 30aa4e05ef ESM: 'grunt test' now generates configs before running 2018-04-11 18:08:42 +00:00
n1474335 4e38b09e18 ESM: Config scripts now run synchronously before webpack builds start 2018-04-11 17:58:40 +00:00
n1474335 23f69bd21d Merge branch 'd98762625-set-operations' into esm 2018-04-11 17:31:19 +00:00
n1474335 dc5ce31087 ESM: .gitignore now ignores generated files 2018-04-11 17:30:15 +00:00
n1474335 e99331f305 ESM: Tidied up Set operations 2018-04-11 17:29:02 +00:00
d98762625 955a082614 add lint command to package.json. Remove old conflict remnants 2018-04-09 15:38:44 +01:00
d98762625 bbc580e71b Quick fix for empty recipe error. Changed deflate back to compression module 2018-04-09 15:21:09 +01:00
d98762625 76f27dbcdb pull from upstream 2018-04-09 11:23:18 +01:00
d98762625 543dce5721 remove setOps operation 2018-04-09 11:19:05 +01:00
d98762625 adc4f78e99 Add other set operations 2018-04-09 11:13:23 +01:00
d98762625 852c95a994 add Set Difference operation 2018-04-09 10:23:05 +01:00
n1474335 b7ed1becba ESM: Added new List<File> Dish type. Added present() method for displaying operation output in a nice way. Testing required. 2018-04-06 18:11:13 +00:00
d98762625 03ecaa81f7 move Set Intersection into its own operation class 2018-04-06 16:52:59 +01:00
d98762625 5f93c667a2 Pull SetUnion into its own operation 2018-04-06 16:27:24 +01:00
n1474335 cb66508b8a jsesc is now transpiled with babel 2018-04-06 15:44:49 +01:00
n1474335 ae55fde591 Merge branch 'artemisbot-esm' into esm 2018-04-06 12:41:13 +00:00
n1474335 fad4713a90 ESM: Tidied up Rotate operations 2018-04-06 12:40:39 +00:00
n1474335 c56038a1e2 Added error message for loading errors. Closes #254 2018-04-05 15:58:19 +00:00
d98762625 f491461a57 inital move of two ops 2018-04-04 17:37:19 +01:00
d98762625 7ce1bf1048 merge esm 2018-04-04 16:00:37 +01:00
Matt C af51090ebb Added rotate ESM tests 2018-04-03 23:29:47 +01:00
Matt C 7e86f02e4e Deleted legacy Rotate module 2018-04-03 22:51:50 +01:00
Matt C 4988ead918 Rotate module converted to ESM
4 Ops:
- ROT-13
- ROT-47
- Rotate left
- Rotate right
+ module containing common functions
2018-04-03 22:50:26 +01:00
n1474335 083d2d1cc4 ESM: Added Zlib ops and created a Zlib library. 2018-04-02 20:46:55 +01:00
n1474335 fbb3a02315 ESM: The operations index is now generated automatically 2018-04-02 19:24:25 +01:00
n1474335 eeb1d0a891 ESM: Added Hex ops and created a Hex library. 2018-04-02 18:06:48 +01:00
n1474335 0011e9caa8 Added .editorconfig 2018-04-02 17:32:17 +01:00
n1474335 041cd9fb8e ESM: Added remaining Base64 ops and created a Base64 library. Added the prefer-const eslint rule. 2018-04-02 17:10:51 +01:00
n1474335 81e62a6c22 Merge branch 'master' of github.com:gchq/CyberChef 2018-03-29 00:00:09 +01:00
n1474335 c501720cdd 7.10.0 2018-03-28 23:58:52 +01:00
n1474335 92b5aa08f3 Updated dependencies 2018-03-28 23:58:43 +01:00
n1474335 1097170a68 Updated dependencies 2018-03-28 23:56:33 +01:00
n1474335 e6e2b169dc Merge branch 'tlwr-feature-add-pgp-kbpgp' 2018-03-28 23:27:01 +01:00
n1474335 e41145427e Tidied up PGP operations and added progress callback 2018-03-28 23:26:48 +01:00
n1474335 caadf8e762 Added tags to X.509 operation description 2018-03-28 10:22:22 +00:00
n1474335 1143c23ad9 Merge branch 'feature-add-pgp-kbpgp' of https://github.com/tlwr/CyberChef into tlwr-feature-add-pgp-kbpgp 2018-03-27 00:07:20 +01:00
n1474335 9b4fc3d3aa Converted the core to ES modules 2018-03-26 23:14:23 +01:00
n1474335 c1bb93eec1 7.9.0 2018-03-26 22:43:58 +01:00
n1474335 1ae9c82e29 Merge branch 'feature-updates' 2018-03-26 22:43:48 +01:00
n1474335 715ca1c292 Added Bcrypt, Scrypt, BSON and string operations along with many new tests. 2018-03-26 22:25:36 +01:00
d98762625 e403adb9a1 fix more linting errors 2018-03-25 17:51:36 +01:00
d98762625 f3610e7c95 fix lint errors 2018-03-25 17:44:10 +01:00
d98762625 951568ce22 use bind for partial application of power set function 2018-03-25 17:27:14 +01:00
d98762625 e8bb9e264d more comments 2018-03-25 17:10:55 +01:00
d98762625 208cb05c74 reuse difference function for symmetric difference 2018-03-25 17:03:05 +01:00
d98762625 2c68be3193 add comments 2018-03-25 16:42:33 +01:00
n1474335 2f5b0533d8 Added note to 'From UNIX Timestamp' op regarding date formats. 2018-03-23 20:08:53 +00:00
n1474335 5ece79c74d 7.8.1 2018-03-23 20:02:03 +00:00
n1474335 12c226f874 Updated DisassembleX86-64 library to fix issue with call instrution. Closes #246. 2018-03-23 20:01:56 +00:00
d98762625 20e54a8ecf add tests for setOperations 2018-03-22 18:11:24 +00:00
71846 7d15bfe58a initial functionality commit 2018-03-16 14:42:55 +00:00
n1474335 567474ce00 Removed confusing delimiters from fuzzy hash comparison ops 2018-03-04 18:49:05 +00:00
n1474335 209a5b7274 7.8.0 2018-03-04 18:45:23 +00:00
n1474335 e962c9594b Merge branch 'feature-fuzzy-hashes' 2018-03-04 18:45:15 +00:00
n1474335 242bad09ea Added SSDEEP and CTPH operations 2018-03-04 18:41:41 +00:00
n1474335 8dd223f1cb 7.7.8 2018-03-04 17:51:39 +00:00
n1474335 d15662dea4 Merge branch 'bug-hashes' 2018-03-04 17:49:36 +00:00
n1474335 f47a408755 Fix for UTF-8/binary handling in hashing operations. Added tests to prevent future breakages. Closes #249. 2018-03-04 17:39:53 +00:00
n1474335 bcc8804495 Updated buttons, fonts and collapse 2018-03-02 16:30:20 +00:00
n1474335 5a7bb092c7 Fixed popovers in Bootstrap v4 2018-03-02 15:32:27 +00:00
n1474335 d166dda229 Started updating Bootstrap to v4 2018-03-02 14:04:58 +00:00
n1474335 8360c9e9f9 Fixed noindex meta tag for standalone version 2018-03-02 11:15:37 +00:00
n1474335 328142dac7 Added 's' to the standalone version string 2018-03-01 20:32:09 +00:00
n1474335 372b2378a8 7.7.7 2018-03-01 19:45:47 +00:00
n1474335 574207c626 Updated many dependencies including Webpack (v4) and crypto-api (v0.8) 2018-03-01 19:45:34 +00:00
n1474335 ead64dcb47 7.7.6 2018-02-28 16:40:22 +00:00
n1474335 da473de9f0 Switched from uas_parser.js to ua-parser-js library to improve library management and remove ReDos vulnerabilities. Also improved performance of two native regexes. Thanks to James Davis for raising awareness. 2018-02-28 16:40:15 +00:00
n1474335 a177e2ab7e 7.7.5 2018-02-21 11:24:46 +00:00
n1474335 8cef6db482 Added IPv6 interface IDs to the 'Format MAC address' operation 2018-02-21 11:24:38 +00:00
n1474335 79a3128491 Changed fragment to query in sitemap 2018-02-20 17:39:46 +00:00
n1474335 cb1fe80214 Added robots meta tag to inline version to prevent indexing. 2018-02-20 17:34:19 +00:00
n1474335 19f2e6dae0 Fixed robots.txt copy 2018-02-20 17:15:06 +00:00
n1474335 74394a773d Fixed URL in sitemap 2018-02-20 17:09:02 +00:00
n1474335 d491e95d1c 7.7.4 2018-02-20 17:04:47 +00:00
n1474335 881523ce54 Merge branch 'sitemap' 2018-02-20 17:04:34 +00:00
n1474335 502a9fbb92 Added dynamically generated sitemap and robots.txt file to prevent crawling of inline version 2018-02-20 16:52:27 +00:00
n1474335 56d33ea487 Magic operation now calculates the entropy of each option and displays tooltips explaining the properties. 2018-02-19 17:25:28 +00:00
n1474335 cc44fe6557 7.7.3 2018-02-16 13:33:41 +00:00
n1474335 5b1ac3de18 Reduced byte length in 'Unescape Unicode Characters' 2018-02-16 13:33:33 +00:00
n1474335 559741fd07 Fixed a few small bugs 2018-02-15 18:46:17 +00:00
n1474335 b3c52a8601 Magic operation now brute forces character encodings. Linted. 2018-02-15 17:38:39 +00:00
n1474335 5a2a649d8e 7.7.2 2018-02-15 13:41:17 +00:00
n1474335 1aef193b40 Fixed file loading error message 2018-02-15 13:41:13 +00:00
n1474335 27ec4aa923 Magic operation now recognises useful operations such as 'Render Image' even though their output cannot be analysed 2018-02-15 13:39:55 +00:00
n1474335 1760ab2305 Recipe errors are now ignored in the Magic operation 2018-02-14 17:00:14 +00:00
n1474335 99ade42e9a Added 'Intensive mode' to the Magic operation, where it brute-forces various simple encodings like XOR or bit rotates. 2018-02-14 16:08:59 +00:00
n1474335 544d78f461 The Magic operation now only checks the most commonly used Internet languages by default, to lower false positives and improve performance. 2018-02-14 13:08:03 +00:00
n1474335 750fa45c04 7.7.1 2018-02-14 10:34:14 +00:00
n1474335 50f2819699 OR now calls the correct function instead of duplicating XOR. Closes #243. 2018-02-14 10:34:08 +00:00
n1474335 ab55b91da1 7.7.0 2018-02-13 15:51:45 +00:00
n1474335 59f7774964 Merge branch 'feature-xkcd-rand' 2018-02-13 15:51:02 +00:00
n1474335 b5eb44af9f When highlighting operation descriptions in search results, HTML tags are now ignored. 2018-02-13 15:43:55 +00:00
n1474335 8518fa67f2 Added 'XKCD Random Number' operation 2018-02-13 15:05:55 +00:00
n1474335 f6b68f9880 Increased file overlay slice to 4096 for larger screen support 2018-02-12 13:57:01 +00:00
n1474335 2bc563b693 Added support for 238 languages to the Magic operation. 2018-02-10 17:53:59 +00:00
n1474335 23bdfd04a2 Magic operation now shows matching ops even if they are not run. 2018-02-10 15:31:50 +00:00
n1474335 6624f25a64 Magic operation now detects UTF8 and gives a probability score for each language 2018-02-10 15:10:53 +00:00
n1474335 f6b2783f8b File overlays now show a blurred representation of the file in the background. 2018-02-09 16:26:39 +00:00
n1474335 078849041f 7.6.3 2018-01-26 19:14:15 +00:00
n1474335 1c711f5e03 Updated dependencies 2018-01-26 19:14:05 +00:00
n1474335 614af0602a 7.6.2 2018-01-25 18:41:53 +00:00
n1474335 e55cfe0bc1 Fixed 'Syntax highlighter' operation. Using highlight.js instead of google-code-prettify. 2018-01-25 18:41:47 +00:00
n1474335 2b703b2b9b HTML outputs are now unescaped correctly when converted to a string 2018-01-25 16:25:19 +00:00
n1474335 170feaaff2 7.6.1 2018-01-25 14:03:19 +00:00
n1474335 870c2b6d8b Fixed deep copy bug with Fork/Register ingredient values. 2018-01-25 14:03:13 +00:00
n1474335 eee8b7db56 Fixed dispatchEvent call in recipe loading chain. 2018-01-25 13:46:06 +00:00
n1474335 3c669a075e 7.6.0 2018-01-25 13:45:05 +00:00
n1474335 f528930ad2 Added 'Sleep' operation. 2018-01-25 13:44:39 +00:00
n1474335 231322eddf 7.5.6 2018-01-24 16:54:42 +00:00
n1474335 8e6763c165 'Register' and 'Fork' now play well together. 2018-01-24 16:54:37 +00:00
n1474335 f091918575 7.5.5 2018-01-24 15:50:10 +00:00
n1474335 bb077c87b3 'Extract file paths' operation now handles 8.3 windows file paths correctly. 2018-01-24 15:50:05 +00:00
n1474335 865ee6a720 Magic operation tidying 2018-01-23 01:15:13 +00:00
n1474335 6947d2a7f3 Magic operation now displays an ordered table of the most likely decodings. 2018-01-22 23:34:24 +00:00
n1474335 28abd00d82 Added speculative execution of recipes to determine the most likely decodings. 2018-01-22 22:06:26 +00:00
n1474335 57314b77e5 Merge branch 'master' into feature-magic 2018-01-22 20:04:51 +00:00
n1474335 fe8f8bc712 Setting a text value in the input now closes any open files. 2018-01-22 19:58:21 +00:00
n1474335 b035f6c410 Added detection patterns for X.509 certs, Morse Code, Tar, images and BCD. 2018-01-22 19:57:41 +00:00
n1474335 abe87830cd Operation tooltips now disappear if you hover over them while dragging an opertion. 2018-01-22 17:51:04 +00:00
n1474335 615a020469 Added detection patterns for UNIX timestamps, Zlib deflate, Gzip, Zip and Bzip2. 2018-01-22 17:50:00 +00:00
n1474335 7490651a06 7.5.4 2018-01-22 17:10:02 +00:00
n1474335 6220128a74 Fixed delimiter options in StrUtils. Closes #238. 2018-01-22 17:09:58 +00:00
n1474335 ec205f4f7d 7.5.3 2018-01-18 19:53:01 +00:00
n1474335 512487328d Fixed bugs in pretty recipe format generation 2018-01-18 18:35:17 +00:00
n1474335 6fbb2f26d1 7.5.2 2018-01-18 15:27:26 +00:00
n1474335 c91bfeaa81 Merge branch 'qistoph-SplitAndJoin' 2018-01-18 15:26:34 +00:00
n1474335 aa2b3b2843 Changed order of split delimiters, placing comma first. 2018-01-18 15:26:09 +00:00
Chris van Marle 90d8be48d4 Make Split more flexible so it can be used to join 2018-01-17 15:52:25 +01:00
n1474335 48f8ca693d Added detection patterns for Octal, Binary, Decimal, Hexdumps, HTML Entities, URL encoding, escaped Unicode, and Quoted Printable encoding. 2018-01-14 18:26:06 +00:00
n1474335 a1624a9215 Added detection patterns for non-standard Base64 alphabets, Base58 and Base32. 2018-01-14 17:28:56 +00:00
n1474335 fc2828fee3 Added Magic operation with the ability to detect language, file type and some encoding types. 2018-01-14 16:07:39 +00:00
Toby Lorne aa3f781e18 Merge pull request #3 from artemisbot/features/add-pgp-kbpgp
Update to master & add verify/sign
2018-01-13 12:33:28 +00:00
n1474335 aa6890432c 7.5.1 2018-01-12 23:59:03 +00:00
n1474335 192d0ed8a6 Merge branch 'feature-unicode-strings' 2018-01-12 23:57:20 +00:00
n1474335 fff188eb30 Merged master into feature-unicode-strings 2018-01-12 23:57:02 +00:00
n1474335 71067939e3 Added Regex tests and updated description 2018-01-12 23:51:51 +00:00
n1474335 b07c014b48 Added more modifiers to the Regex operation 2018-01-12 23:42:48 +00:00
n1474335 f2c073798b 'Strings' now supports various different match types in ASCII and Unicode 2018-01-12 23:09:27 +00:00
n1474335 4cc38db895 Added documentation. 2018-01-12 22:14:06 +00:00
n1474335 2762319dbb 7.5.0 2018-01-12 18:29:10 +00:00
n1474335 8e5d43dfa8 Merge branch 'feature-hamming' 2018-01-12 18:28:55 +00:00
n1474335 82ad8cc444 BigNumber Dish types are now converted to fixed notation instead of exponential when translated between types 2018-01-12 18:28:40 +00:00
Matt C 50a3cc57ad Fixed missing newline 2018-01-12 18:18:52 +00:00
n1474335 1d6bf39548 Added 'Hamming Distance' operation. 2018-01-12 18:17:28 +00:00
Matt C 7554cbda72 Added PGP Sign/Verify operations 2018-01-12 16:52:15 +00:00
Matt C 6a67fe09de Added passphrase support to importing private key 2018-01-12 12:03:46 +00:00
Matt C f07263ca2a Fix decrypt operation 2018-01-12 11:45:16 +00:00
Matt C bfbefb7318 Merge branch 'master' into features/add-pgp-kbpgp 2018-01-11 22:57:31 +00:00
n1474335 ec02b7deda Regexes are now checked for 0-length matches and incremented manually to avoid infinite loops 2018-01-10 19:44:25 +00:00
n1474335 fa938f832f Fixed IE 11 detection so that support message is correctly shown. 2018-01-10 18:38:17 +00:00
n1474335 6f59d9217c Changed 'Number' option to 'Integer' in PRNG op 2018-01-06 17:01:01 +00:00
n1474335 7176e5ca6e 7.4.0 2018-01-06 16:34:06 +00:00
n1474335 429829471f Merge branch 'feature-paste-performance' 2018-01-06 16:33:12 +00:00
n1474335 4760e539b7 PRNG operation now supports BigNumbers as output 2018-01-06 16:30:17 +00:00
n1474335 f53e7ad617 Chef now defaults to treat as UTF8 if option is not set 2018-01-06 16:21:42 +00:00
n1474335 28c83fa921 Dish translation now obeys UTF8 rules 2018-01-06 16:02:50 +00:00
n1474335 4588cd151c Data pasted into the input is treat as a file if it's over the IO threshold 2018-01-06 15:29:58 +00:00
n1474335 2d9f87abef Added more loading messages 2018-01-05 20:26:51 +00:00
n1474335 491e6f5f5f 7.3.0 2018-01-05 18:50:48 +00:00
n1474335 ab7c05284d Merge branch 'artemisbot-features/big-number' 2018-01-05 18:50:13 +00:00
n1474335 0586fa0e01 Fixed failing Fork test that required an error. 2018-01-05 18:49:51 +00:00
n1474335 53eba2337c BCD operations now support BigNumbers 2018-01-05 18:38:23 +00:00
n1474335 283d3e1e7b Blank BigNumber dishes are now treat as NaN instead of erroring 2018-01-05 18:20:06 +00:00
n1474335 7992a540ae Conversion operations now support BigNumbers 2018-01-05 18:14:03 +00:00
n1474335 3f3e7a78eb Arithmetic operations now support BigNumbers 2018-01-05 18:04:55 +00:00
n1474335 8d3d39acd3 Merge branch 'features/big-number' of https://github.com/artemisbot/CyberChef into artemisbot-features/big-number 2018-01-05 17:31:27 +00:00
n1474335 7b20aba2ff Improved descriptions for 'Unescape string' and 'Escape string' operations 2018-01-04 18:32:03 +00:00
n1474335 bbfb732d8f 7.2.3 2018-01-04 17:48:08 +00:00
n1474335 566adbcda5 'Unescape string' operation now works with capitalised hex 2018-01-04 17:48:01 +00:00
n1474335 1bff490fa4 7.2.2 2018-01-04 14:43:54 +00:00
n1474335 d38375a08c Improved error handling for file uploads 2018-01-04 14:43:49 +00:00
n1474335 56551712d6 Began implementing UTF-16 support in the 'Strings' operation. 2018-01-03 16:51:10 +00:00
Matt C c241d2f90b Adds basic BigNumber type support
Fixes `To Base` & `From Base` issues as reported on twitter
2018-01-03 11:26:31 +00:00
n1474335 0ba28dc891 Updated README.md 2018-01-02 16:02:46 +00:00
n1474335 ac9af6d2ba 7.2.1 2018-01-02 15:33:08 +00:00
n1474335 90d9e087f7 'Take bytes' and 'Drop bytes' operations now support ArrayBuffers 2018-01-02 15:33:02 +00:00
n1474335 50b24d9a56 Fixed no-trailing-space lint 2018-01-02 14:46:35 +00:00
n1474335 10f42e9a7f 7.2.0 2018-01-02 00:13:34 +00:00
n1474335 987bd303a0 Merge branch 'forge' 2018-01-02 00:13:20 +00:00
n1474335 a3f58fb831 Added 'Pseudo-Random Number Generator' operation. 2018-01-01 20:50:01 +00:00
n1474335 f52f5a0edb Added 'RC2 Encrypt' and 'RC2 Decrypt' operations. 2018-01-01 19:50:06 +00:00
n1474335 b58942f69a Rewrote PBKDF2 operation to use Forge instead of CryptoJS and improved the API for both PBKDF2 and EVP operations. 2018-01-01 18:49:22 +00:00
n1474335 68e52d1645 Removed CryptoJS encodings from Blowfish operations. 2018-01-01 17:54:45 +00:00
n1474335 9fc7e6cd98 Rewrote AES, DES and Triple DES operations to use Forge instead of CryptoJS, simplifying their options and adding many tests. Removed Rabbit operations. Fixes #63 and #210. 2018-01-01 16:09:58 +00:00
n1474335 87f346d88c 7.1.0 2017-12-29 17:48:22 +00:00
n1474335 e423ff2639 Merge branch 'feature-logging' 2017-12-29 17:48:14 +00:00
n1474335 fa6905ef00 Added more comprehensive logging to FlowControl ops and added '>' prefix to all ChefWorker logs to improve clarity 2017-12-29 17:32:23 +00:00
n1474335 8684bc0158 Removed duplicate logging message 2017-12-28 18:33:59 +00:00
n1474335 a96eb450de Improved Recipe logging 2017-12-28 18:24:29 +00:00
n1474335 d079420d46 Added logging with configurable levels to make debugging easier. 2017-12-28 18:17:38 +00:00
n1474335 124ff83206 7.0.0 2017-12-28 16:10:39 +00:00
n1474335 2c9e67ad1d Merge branch 'feature-files' 2017-12-28 16:09:11 +00:00
n1474335 75a554e215 'To Base64' and 'To Hexdump' operations now support ArrayBuffers 2017-12-28 15:59:58 +00:00
n1474335 849d41ee56 Removed padLeft and padRight in favour of String.prototype.padStart and padEnd. 'To Hex' now supports ArrayBuffers. 2017-12-28 14:38:57 +00:00
n1474335 e18ec5f2b2 Changed inputType to ArrayBuffer for 'Frequency distribution', 'Chi Square' and 'Extract EXIF' operations. 2017-12-28 00:24:16 +00:00
n1474335 50e4daeaf2 Output info tidied up for file outputs 2017-12-27 23:05:32 +00:00
n1474335 f7f07f2cb5 Loading a new file only causes a statechange event once the whole file has loaded 2017-12-27 15:52:38 +00:00
n1474335 e2161ec934 Resolved conflicts 2017-12-27 12:50:29 +00:00
n1474335 1e4d2ba90d Updated documentation for file support 2017-12-27 12:45:22 +00:00
n1474335 caf794b01d Threshold for treating output as a file is now configurable 2017-12-27 12:29:10 +00:00
n1474335 e81122739b Files can now be moved from the output to the input 2017-12-27 02:26:24 +00:00
n1474335 a0aa363203 Download filenames now persist 2017-12-27 02:01:17 +00:00
n1474335 bad0816115 Output files can be viewed in slices 2017-12-27 01:52:41 +00:00
n1474335 53a3f3d452 Changed inputType for file magic byte operations to ArrayBuffer 2017-12-26 22:05:10 +00:00
n1474335 ff94172b3c Output files can now be downloaded using FileSaver (supports large files ~500MB) 2017-12-26 01:32:51 +00:00
n1474335 af71ca6a25 Output over 1MiB is passed back as an ArrayBuffer and an output file card is displayed. 2017-12-26 00:44:40 +00:00
n1474335 0e7989111f Removed CryptoJS from Utils.js. UTF8 conversion is now achieved with the much smaller and actively maintained utf8 library. 2017-12-25 23:11:52 +00:00
Toby Lorne db8955d90d WIP: add encrypt and decrypt operations
Currently the encrypt operation works only to my public key and not to
keys generated by the generate key pair operation. Probably something
wrong with the generate operation.
2017-12-24 17:44:32 +00:00
Toby Lorne 5a5ce1101b Merge pull request #2 from artemisbot/features/add-pgp-kbpgp
Promisified generation of key pair
2017-12-23 17:33:42 +00:00
n1474335 8ee3742216 6.8.0 2017-12-21 15:13:54 +00:00
n1474335 194eb184f3 Merge branch 'bwhitn-math' 2017-12-21 15:13:35 +00:00
n1474335 98f59ace3a Small tweaks to the arithmetic ops 2017-12-21 15:12:06 +00:00
n1474335 c1fb6d9776 Merge branch 'math' of https://github.com/bwhitn/CyberChef into bwhitn-math 2017-12-21 14:46:37 +00:00
Matt C 670566b7eb Promisified generation of key pair 2017-12-21 14:23:31 +00:00
bwhitn fc7d2c2f52 separated all functions and updated comments/descriptions 2017-12-21 05:58:31 -08:00
bwhitn 0fea84ed7a WIP 2017-12-21 00:19:47 -05:00
n1474335 5e7f8e3976 Removed unnecessary whitespace 2017-12-20 16:34:21 +00:00
n1474335 fe4c5f5899 6.7.2 2017-12-20 15:56:56 +00:00
n1474335 d47b7b9242 Merge branch 'bug-numberwang' 2017-12-20 15:56:47 +00:00
n1474335 09b6661e35 Fixed trailing spaces 2017-12-20 15:51:57 +00:00
n1474335 57b1667b69 Fixed the Numberwang algorithm to correctly recognise recently discovered Numberwang values. Fixes #204 2017-12-20 15:45:58 +00:00
n1474335 5e9380b550 6.7.1 2017-12-20 13:43:31 +00:00
n1474335 fc8a0480fb Merge branch 'bug-css-selector' 2017-12-20 13:43:00 +00:00
n1474335 317327d097 CSS selector operation now works in a web worker. Fixes #218 2017-12-20 13:30:51 +00:00
n1474335 ecd0ac2521 Updated dependencies 2017-12-19 16:53:57 +00:00
n1474335 f9eaf67db2 6.7.0 2017-12-19 15:02:23 +00:00
n1474335 99e0c8d5e3 Merge branch 'bwhitn-chi' 2017-12-19 15:02:08 +00:00
n1474335 7a951d86d8 Tidied up Chi Square operation 2017-12-19 15:02:01 +00:00
n1474335 d9dfaec84c Merge branch 'chi' of https://github.com/bwhitn/CyberChef into bwhitn-chi 2017-12-19 14:45:50 +00:00
n1474335 80719ae368 6.6.3 2017-12-19 14:41:34 +00:00
n1474335 9407809356 Merge branch 'bwhitn-fixHOTP' 2017-12-19 14:40:30 +00:00
n1474335 f7e958e7a1 Changed HOTP inputType to byteArray 2017-12-19 14:38:13 +00:00
n1474335 5d75f8636a Resolved conflict 2017-12-19 14:31:40 +00:00
n1474335 22aaeb3ff5 6.6.2 2017-12-19 14:25:12 +00:00
n1474335 8c29ce95e2 Merge branch 'artemisbot-bug/uuid' 2017-12-19 14:24:59 +00:00
n1474335 049fc66785 Added note to Default.js to show that crypto is included in that module. 2017-12-19 14:24:47 +00:00
n1474335 029c55fd53 Merge branch 'bug/uuid' of https://github.com/artemisbot/CyberChef into artemisbot-bug/uuid 2017-12-19 14:15:31 +00:00
n1474335 7b433b9bd6 6.6.1 2017-12-19 14:12:24 +00:00
n1474335 5ec210990b Fixed NetBIOS space removal 2017-12-19 14:12:18 +00:00
n1474335 a7a0cacddb Merge branch 'bwhitn-fixNB' 2017-12-19 13:54:02 +00:00
n1474335 e61ced93d6 Removed dependency for Utils.js from NetBIOS.js 2017-12-19 13:53:33 +00:00
n1474335 df122da1d2 Merge branch 'fixNB' of https://github.com/bwhitn/CyberChef into bwhitn-fixNB 2017-12-19 13:26:49 +00:00
n1474335 31d90939fe 6.6.0 2017-12-19 13:19:46 +00:00
n1474335 67b0fdf73e Merge branch 'bwhitn-control' 2017-12-19 13:18:58 +00:00
n1474335 12fc8c22dd Made some naming changes to Label-related operations. 2017-12-19 13:18:25 +00:00
n1474335 4e00ac9300 Files are now uploaded in a worker and not displayed in the input by default. Added ArrayBuffer Dish type. 2017-12-18 20:39:55 +00:00
bwhitn 4ca2a30249 Fixed minor errors 2017-12-18 05:33:52 -08:00
bwhitn 08a31523b2 changed the function comment 2017-12-18 05:04:11 -08:00
Matt C 4b29a61065 Fixes UUID incompatibility with webworkers 2017-12-18 09:53:23 +00:00
bwhitn 06c83cb44c forgot a equal sign 2017-12-17 23:58:53 -05:00
bwhitn 75a5fc0ddc Added Test, function checks, and cleaned some output. 2017-12-17 23:58:53 -05:00
bwhitn 946d165aa0 fixed decode 2017-12-17 23:57:35 -05:00
bwhitn 224d79be05 merged with master 2017-12-17 23:56:30 -05:00
bwhitn 435ed587a5 Fixed HOTP, TOTP and added test for HOTP 2017-12-17 23:53:13 -05:00
bwhitn 81082ea001 I really need to learn git 2017-12-17 23:45:15 -05:00
bwhitn 1d3229a729 rebase to current 2017-12-17 23:35:34 -05:00
bwhitn a9e60d3450 minor fix 2017-12-17 23:29:16 -05:00
bwhitn f9ddee7d80 Inital commit for pull 2017-12-17 23:29:16 -05:00
bwhitn ef0d3b73b0 changed op array 2017-12-17 23:29:16 -05:00
bwhitn 5368040e83 Added additional arithmetic source 2017-12-17 23:29:16 -05:00
bwhitn b9b4147c2f start of math operations 2017-12-17 23:28:09 -05:00
bwhitn caae0ec5ca Merge pull request #2 from gchq/master
update
2017-12-17 20:16:25 -08:00
bwhitn 2b47631f4d minor fix 2017-12-17 22:15:13 -05:00
bwhitn 298e8e8491 Inital commit for pull 2017-12-17 21:57:09 -05:00
bwhitn 6ad3728314 changed op array 2017-12-17 15:29:31 -05:00
bwhitn 772f9a806e Added additional arithmetic source 2017-12-17 15:20:58 -05:00
bwhitn ae8d1f2178 start of math operations 2017-12-17 15:19:10 -05:00
bwhitn 9bc6c46dc3 Fixed HOTP, TOTP and added test for HOTP 2017-12-16 09:10:52 -05:00
n1474335 b48e940f2d Merge branch 'control' of https://github.com/bwhitn/CyberChef into bwhitn-control 2017-12-08 13:47:45 +00:00
tlwr dcd8f98e8c Fix linting in PGP operations 2017-11-26 20:13:49 +00:00
tlwr 60c8da7bbb Add operation "Generate PGP Key Pair"
Have not yet found a nice way of working with the kbpgp API as it is
very callback heavy. Probably just my rusty javascript.
2017-11-25 16:00:33 +00:00
bwhitn e500cfae75 Fixed errors 2017-11-24 10:31:26 -08:00
bwhitn f01c0adee2 Changed jumps from index based to label base. Updated test. 2017-11-24 10:12:08 -08:00
n1474335 021cae1a95 6.5.0 2017-11-24 16:33:46 +00:00
n1474335 f66cd8f983 Merge branch 'jarmovanlenthe-master' 2017-11-24 16:32:45 +00:00
n1474335 fe8049199a Moved PhpDeserialize.js to PHP.js to encompass possible future PHP-related ops 2017-11-24 16:32:11 +00:00
n1474335 cfb6dd9471 Merge branch 'master' of https://github.com/jarmovanlenthe/CyberChef into jarmovanlenthe-master 2017-11-24 15:19:56 +00:00
bwhitn 7abda44fd6 Added Negative Matching to conditional jumps so negative lookahead is not required. 2017-11-24 05:48:40 -08:00
bwhitn 47ce240e70 Merge pull request #1 from gchq/master
updating
2017-11-24 07:50:13 -05:00
n1474335 c23d7fd79c 6.4.6 2017-11-20 17:47:48 +00:00
n1474335 555fed2d51 Merge branch 'artemisbot-features/keybindings' 2017-11-20 17:46:09 +00:00
n1474335 7a2f68e14a Cosmetic changes to keybindings code 2017-11-20 17:45:50 +00:00
n1474335 8fd08cb2bf Merge branch 'features/keybindings' of https://github.com/artemisbot/CyberChef into artemisbot-features/keybindings 2017-11-20 16:57:16 +00:00
n1474335 7a2b75c861 Updated dependencies 2017-11-20 16:57:04 +00:00
Jarmo van Lenthe 00074f914f Change test to Apache-2.0 license 2017-11-16 07:37:11 -05:00
Jarmo van Lenthe ea352e05f0 Change PHP Serialization operation to Apache-2.0 license. 2017-11-15 16:00:53 -05:00
Jarmo van Lenthe 305956cbe3 Fix copyright statement 2017-11-13 07:15:06 -05:00
Jarmo van Lenthe 5399d27875 Add space after for 2017-11-12 22:23:38 -05:00
Jarmo van Lenthe 29047c2481 Add JSDoc to helper functions and reformat while true. 2017-11-12 22:20:16 -05:00
Jarmo van Lenthe 50a32e90d9 Reformatted PHP deserialization. 2017-11-12 22:11:16 -05:00
Jarmo van Lenthe f596fe8404 Add tests for PHP deserialization 2017-11-12 22:10:28 -05:00
Jarmo van Lenthe 4be7f89fd8 Add PHP Deserialization. 2017-11-12 21:37:29 -05:00
Matt C 8b30fdf7f1 Adds ability for user to use Meta key instead of alt for keybindings
- includes dynamically updating keybinding list
2017-11-04 12:55:28 +00:00
n1474335 2cd4256ece Updated dependencies 2017-10-26 17:00:13 +00:00
n1474335 c6a65c4686 6.4.5 2017-10-23 17:32:47 +00:00
n1474335 1553b5f54b Fixed lint 2017-10-23 17:32:36 +00:00
n1474335 2ddd2e0a60 Added 'Copy output' button. Closes #198. 2017-10-23 17:31:53 +00:00
Matt C d924ede9cf Merge remote-tracking branch 'upstream/master' into features/keybindings 2017-10-17 19:37:14 +01:00
Matt C 638e03856b Initial keybinding functionality + documentation
Todo:
- allow user to specify whether to use alt or meta key (relatively easy to implement)
- keybinding icon for about pane
2017-10-17 19:36:51 +01:00
n1474335 8afd77b32d 6.4.4 2017-10-13 11:29:45 +00:00
n1474335 599fefb39b Fixed 'Parse URI' operation and improved error handling from worker 2017-10-13 11:29:22 +00:00
n1474335 ec7294d734 6.4.3 2017-10-13 09:35:34 +00:00
n1474335 c0d03db9e8 Merge branch 'qistoph-numsort' 2017-10-13 09:35:25 +00:00
n1474335 0365f96678 Merge branch 'numsort' of https://github.com/qistoph/CyberChef into qistoph-numsort 2017-10-13 09:33:09 +00:00
n1474335 40d8b42478 6.4.2 2017-10-13 09:19:22 +00:00
n1474335 e5a32ac57d Added links to Gitter chat room 2017-10-13 09:19:16 +00:00
Chris van Marle 390d5927a4 BugFix: compare odd size elements, like empty line 2017-10-12 14:23:04 +02:00
n1474335 b61a1b4edb 6.4.1 2017-10-09 15:39:10 +00:00
n1474335 1d78578fc2 Merge branch 'slurdge-master' 2017-10-09 15:20:52 +00:00
n1474335 0e3751407b Cleaned lint. 2017-10-09 15:17:20 +00:00
slurdge 7feafbf0e7 Fixes the lint problems and add JSDoc 2017-10-09 16:02:12 +02:00
slurdge cfd9b16f8b Factorize all CryptoApi.hash calls and pass string directly. Fixes #193 2017-10-09 15:43:37 +02:00
n1474335 1bbc73ec50 Removed devDependencies badge from README.md 2017-10-05 16:33:20 +00:00
n1474335 dc9ba583d5 Merge branch 'master' of github.com:gchq/CyberChef 2017-10-05 16:29:09 +00:00
n1474335 6b5ff83927 Updated dependencies 2017-10-05 16:28:49 +00:00
n1474335 a5ffa406a8 6.4.0 2017-10-04 23:08:23 +01:00
n1474335 6234afc119 Added disassembly examples to README and index.html 2017-10-04 23:08:16 +01:00
n1474335 ef2ead262b Fixed merge conflict 2017-10-04 22:54:24 +01:00
n1474335 cd5265fad4 Added 'Disassemble x86' operation 2017-10-04 22:35:44 +01:00
n1474335 0c4ef1cc94 OperationConfig now exports a natural version as well as the val-loader version 2017-10-04 15:56:51 +00:00
n1474335 4fee6cd5d8 6.3.2 2017-10-03 17:49:29 +00:00
n1474335 da63420d67 Added dependency badges to README 2017-10-03 17:49:19 +00:00
n1474335 72c79c684b Lint improvements 2017-10-03 17:14:40 +00:00
n1474335 a997ec0695 Updated dependencies 2017-10-03 16:56:37 +00:00
n1474335 e3be2a9531 Merge branch 'master' of github.com:gchq/CyberChef 2017-10-03 16:46:35 +00:00
n1474335 bd1790b692 6.3.1 2017-09-28 19:45:37 +00:00
n1474335 90763dee6a Added 'Register' example to FAQ 2017-09-28 19:45:29 +00:00
n1474335 16879a9190 Added 'Register' example 2017-09-28 20:43:07 +01:00
n1474335 2afd23fcf7 6.3.0 2017-09-28 19:33:01 +00:00
n1474335 39fd0f9b34 Merge branch 'feature-registers' 2017-09-28 19:31:59 +00:00
n1474335 ee57a92daa Improved register reference regex 2017-09-28 19:24:28 +00:00
n1474335 ab7cc878c3 Removed debug code 2017-09-28 18:40:29 +00:00
n1474335 877ab57f0a Multiple Register operations can now be called in a single recipe 2017-09-28 18:39:35 +00:00
n1474335 e2ac297102 Register values now displayed in the recipe 2017-09-28 17:35:52 +00:00
n1474335 b86dceb3c6 Added Register operation 2017-09-28 16:27:39 +00:00
n1474335 35c9dca955 6.2.1 2017-09-27 15:44:10 +00:00
n1474335 d54d7011d9 Removed excess auto-baking on input load from URI 2017-09-27 15:44:00 +00:00
n1474335 392652ed8e 6.2.0 2017-09-27 15:33:37 +00:00
n1474335 7557e1e9e5 Added Snefru hashing operation 2017-09-27 15:33:14 +00:00
n1474335 d924da2f25 6.1.0 2017-09-22 17:36:03 +00:00
n1474335 be4d1eabaa Merge branch 'feature-hashing' 2017-09-22 17:34:18 +00:00
n1474335 db98e56e72 Reduced extraneous auto bakes 2017-09-22 17:33:46 +00:00
n1474335 e2a35ea844 Updated Whirlpool and HAS-160 operations to work with modules 2017-09-22 17:01:39 +00:00
n1474335 7966b2bde6 Merge branch 'master' into feature-hashing 2017-09-22 16:09:13 +00:00
n1474335 9391b947c6 Merge branch 'master' of github.com:gchq/CyberChef 2017-09-22 16:05:59 +00:00
n1474335 e61e3bcf9b Updated the dev server to work on external interfaces 2017-09-22 16:05:15 +00:00
n1474335 89ca2cc631 6.0.2 2017-09-20 22:26:54 +01:00
n1474335 e2cae035f2 Accessibility checks are now made before trying to access local storage. Fixes #174. 2017-09-20 22:26:47 +01:00
n1474335 d79a0e737a Added HAS-160 and Whirlpool hashing operations 2017-09-20 09:43:14 +00:00
n1474335 c60ec7c170 6.0.1 2017-09-20 01:18:46 +01:00
n1474335 e42b19d324 Removed excess auto-baking 2017-09-20 01:16:15 +01:00
n1474335 3be370aefa 6.0.0 2017-09-20 00:56:32 +01:00
n1474335 b13917fbdc Merge branch 'feature-threading' 2017-09-20 00:55:37 +01:00
n1474335 9028761821 Loading message fade and cancelBake bugfix 2017-09-20 00:48:37 +01:00
n1474335 f6b52b7c82 Operations can now set options from within the worker 2017-09-20 00:37:57 +01:00
n1474335 13f07abb8a Highlighting now works with the web worker 2017-09-19 23:34:03 +01:00
n1474335 8c960f0661 Moved worker handling code from App.js to WorkerWaiter.js 2017-09-17 19:27:02 +01:00
n1474335 77203a4363 Excluded MetaConfig from JSDoc 2017-09-17 14:59:11 +01:00
n1474335 d3246b7c8b Merged upstream master 2017-09-17 14:53:17 +01:00
n1474335 c93edec55b Switched to val-loader and compiling MetaConfig 2017-09-17 13:47:33 +01:00
n1474335 83d258c396 5.20.0 2017-09-14 15:06:11 +00:00
n1474335 81acb5bdab Merge branch 'feature-hashing' 2017-09-14 15:01:29 +00:00
n1474335 0b79019e0f Added test file. 2017-09-14 14:59:28 +00:00
n1474335 be07298741 Added tests for all hashing operations 2017-09-14 14:54:56 +00:00
n1474335 2d779fdcd0 Added SHA2 512/224 and 512/256 variants as well as RIPEMD 128, 160, 256 and 320. 2017-09-14 14:53:46 +00:00
n1474335 35382faf28 Updated all dependencies and set node version to 8.4 to fix docstrap bug in travis builds (until it is fixed) 2017-09-14 10:20:16 +00:00
n1474335 dba0b104ab Added docs to GH Pages 2017-09-13 15:21:31 +00:00
n1474335 174cabdc74 Added 'CRC-16 Checksum' operation 2017-09-12 15:50:46 +00:00
n1474335 3c52a9faab Added Keccak and Shake to 'Generate all hashes' operation 2017-09-12 15:39:48 +00:00
n1474335 73561993a7 Added SHA3, Keccak and Shake hashing algorithms 2017-09-12 15:31:51 +00:00
n1474335 6e875393d9 Merged all SHA-2 operations into one with a size argument 2017-09-12 14:48:56 +00:00
n1474335 bbd85a491b Added MD6 to 'Generate all hashes' operation 2017-09-12 14:23:36 +00:00
n1474335 a736be7ca8 Added MD6 operation. Closes #53 2017-09-12 14:20:05 +00:00
n1474335 f1fe0b944f 5.19.3 2017-09-07 10:01:31 +00:00
n1474335 c1e40dd109 Fixed typo in .travis.yml 2017-09-07 10:01:12 +00:00
n1474335 73823e3eb9 Improved domain name regex 2017-09-06 16:43:30 +00:00
n1474335 bf833991bf 5.19.2 2017-09-06 16:09:36 +00:00
n1474335 615357c977 Corrected travis config logic 2017-09-06 16:06:37 +00:00
n1474335 19f23127b9 Updated travis config to create a new branch when building a tagged release 2017-09-06 16:04:11 +00:00
n1474335 2ea6d9437f 5.19.1 2017-09-06 10:28:41 +00:00
n1474335 833b6d67a6 Updated package-lock.json to fix tagged builds 2017-09-06 10:28:35 +00:00
n1474335 04c1adc5f0 5.19.0 2017-09-05 17:59:16 +00:00
n1474335 8e8f6a0284 Merge branch 'feature-otp' 2017-09-05 17:59:02 +00:00
n1474335 68bf1d123e Added 'Generate HOTP' and 'Generate TOTP' operations 2017-09-05 17:53:54 +00:00
n1474335 2c03689195 5.18.1 2017-09-05 17:26:29 +00:00
n1474335 45f41b1140 Merge branch 'bug-number-input-change' 2017-09-05 17:21:49 +00:00
n1474335 8fa6f3f45c Fixed bug where clicking up and down arrows on numeric inputs would not trigger an auto-bake 2017-09-05 16:51:57 +00:00
n1474335 78a842deb7 5.18.0 2017-09-05 15:37:18 +00:00
n1474335 3657ff4f79 Merge branch 'feature-bitshift' 2017-09-05 15:37:10 +00:00
n1474335 d4d12c3db0 Whitespace is now removed from hex and binary even when the delimiter is set to 'None' 2017-09-05 14:30:06 +00:00
n1474335 1b628ac213 Added 'Bit shift left' and 'Bit shift right' operations 2017-09-05 14:26:09 +00:00
n1474335 5fcc259efb Merge branch 'Synchro-master' 2017-09-04 15:22:17 +00:00
Marcus Bointon 9545205f19 Optimise PNGs 2017-09-04 12:22:12 +02:00
n1474335 cb6708c02e XOR Brute Force operation now has a variable key length 2017-08-31 00:24:24 +01:00
n1474335 4f403d4450 5.17.0 2017-08-30 15:57:58 +00:00
n1474335 f2d8f930fb Merge branch 'bwhitn-vbe' 2017-08-30 15:57:18 +00:00
n1474335 4a86340d50 Tidied up 'Microsoft Script Decoder' operation 2017-08-30 15:56:51 +00:00
bwhitn f8e9e9ba85 added sample to description 2017-08-29 12:04:15 -07:00
bwhitn 934ed1af09 Fixed spelling errors, syntax errors, and improved the test for script decoding 2017-08-29 10:46:34 -07:00
bwhitn 0fc2a219a7 Changed the name. Small logic change. Changed from split join to regex replace. 2017-08-28 17:55:54 -04:00
bwhitn aa5939c051 Took out logging call. My bad. 2017-08-27 20:53:53 -04:00
bwhitn 9c5f06101e Fixed the replace statements 2017-08-27 18:45:42 -04:00
bwhitn 2a7c0252a0 Fixed regex issue 2017-08-27 11:49:28 -04:00
bwhitn 414726ecd4 Fixed small syntax error 2017-08-27 09:44:26 -04:00
bwhitn fdc8a15595 Added Decode VBE 2017-08-27 09:29:26 -04:00
n1474335 d012fd3a65 5.16.3 2017-08-25 11:53:08 +00:00
n1474335 a5ed824674 Merge branch 'bug-substitute' 2017-08-25 11:50:07 +00:00
n1474335 d6705c682f Fixed bug in Substitute where commas would not encode correctly 2017-08-25 11:44:31 +00:00
n1474335 d68523a54e Added status message mechanism for the Worker to report to the app 2017-08-25 01:24:12 +01:00
n1474335 6af82680f1 Fixed tests and Node version to work with modules 2017-08-25 00:44:22 +01:00
n1474335 a4aee761c2 Added module and threading support for the inline version. 2017-08-25 00:25:49 +01:00
n1474335 33b606d48f 5.16.2 2017-08-21 15:25:41 +00:00
n1474335 cc44be7ef9 Fixed recipe saving 2017-08-21 15:25:35 +00:00
n1474335 e0eb972a54 Operations with no arguments can now be added to the recipe without causing errors 2017-08-18 16:12:49 +00:00
n1474335 19c54a99cd Improved web app title construction 2017-08-18 16:01:55 +00:00
n1474335 9d60ec22ee Updated links in index.html 2017-08-18 15:55:04 +01:00
n1474335 cb4eeccfd3 Updated links in README 2017-08-18 15:47:38 +01:00
n1474335 62e50caa99 5.16.1 2017-08-16 14:11:55 +00:00
n1474335 0192566d19 Improved recipe config generation for complex objects. Fixes #180 2017-08-16 14:11:50 +00:00
n1474335 8a8b70f2ab 5.16.0 2017-08-16 13:01:50 +00:00
n1474335 af311001cf Merge branch 'feature-pretty-recipe-format' 2017-08-16 13:01:08 +00:00
n1474335 040229418e 5.15.0 2017-08-15 17:32:31 +00:00
n1474335 c259963542 Fixed string escape test configs 2017-08-15 17:32:21 +00:00
n1474335 ca75f7fa0b Merge branch 'artemisbot-features/string_escape_unescape' 2017-08-15 17:30:12 +00:00
n1474335 4b22a409e7 Tidied up string escape operations 2017-08-15 17:29:48 +00:00
n1474335 55806db00f Merge branch 'features/string_escape_unescape' of https://github.com/artemisbot/CyberChef into artemisbot-features/string_escape_unescape 2017-08-15 17:16:39 +00:00
n1474335 83c757ebd4 Lint 2017-08-15 17:12:09 +00:00
n1474335 a19b02aa8c Updated URL regexes to match more unescaped special characters 2017-08-15 16:44:45 +00:00
n1474335 cf1ba60a10 Added new 'pretty' recipe format to make URLs more readable 2017-08-15 16:26:42 +00:00
n1474335 2a4c9afdf2 5.14.0 2017-08-10 12:42:00 +00:00
n1474335 ab76933158 Merge branch 'feature-themes' 2017-08-10 12:41:18 +00:00
n1474335 d4d7bcab7a Added GeoCities theme 2017-08-10 12:35:30 +00:00
n1474335 a61cf6a68a Added module framework 2017-08-09 20:09:23 +01:00
n1474335 146a307b59 5.13.1 2017-08-08 14:47:55 +00:00
n1474335 875946b4e8 Modified babel to target Node 6.5 2017-08-08 14:47:48 +00:00
n1474335 81f2a460ed Added apploaded event to signify when the app has completed loading 2017-08-08 13:08:06 +00:00
Matt C 6698a2ac13 Added tests + fixes for PR
- actually removed prev func
- shuffled some stuff around
2017-08-07 16:08:50 +01:00
Matt C 9161cc693d Removes need for runParseEscapedString
- Fixes examples
- Actually makes it work
2017-08-04 15:54:00 +01:00
n1474335 be689e293d Removed dev commands from PublicKey.js 2017-08-04 14:44:12 +00:00
n1474335 53c22d5e29 5.13.0 2017-08-04 14:00:24 +00:00
n1474335 5c0c80829e Merge branch 'artemisbot-features/jpath' 2017-08-04 14:00:05 +00:00
n1474335 55aedfe901 Jsonpath lib now imported from npm with workaround instead of serving locally. 2017-08-04 13:59:32 +00:00
n1474335 4b87d66131 Merge branch 'features/jpath' of https://github.com/artemisbot/CyberChef into artemisbot-features/jpath 2017-08-04 13:36:03 +00:00
n1474335 fc9497f067 Updated dependencies 2017-08-04 13:35:52 +00:00
Matt C 3186335f47 Merge Vel0z/string_escaping_unescaping
Updated to new project format
2017-08-04 11:50:45 +01:00
Matt C 31bfd8664a Added JSONPath tests & changed lib 2017-08-03 14:50:16 +01:00
n1474335 ab1c9e27dc Added more loading messages 2017-08-03 10:57:54 +00:00
n1474335 c07cc913c8 5.12.4 2017-08-01 19:27:24 +00:00
n1474335 b8fb5493c5 Merge branch 'artemisbot-bug/text-overflow' 2017-08-01 19:25:04 +00:00
n1474335 e8e5eb9c53 Fixed some edge cases for popover triggering 2017-08-01 19:23:30 +00:00
n1474335 a15034b03e Merge branch 'bug/text-overflow' of https://github.com/artemisbot/CyberChef into artemisbot-bug/text-overflow 2017-08-01 15:40:31 +00:00
n1474335 1435acdc28 5.12.3 2017-08-01 14:42:52 +00:00
n1474335 37f164f11c Merge branch 'master' of github.com:gchq/CyberChef 2017-08-01 14:42:17 +00:00
n1474335 7a2f071269 Dependencies in the node version are now kept external in the webpack build 2017-08-01 14:42:09 +00:00
n1474335 9f19afc943 Removed auto-bake threshold as long bakes can now be cancelled manually 2017-07-30 12:51:21 +01:00
n1474335 6742bef289 Separated out Diff and Windows Filetime operations into their own namespaces as they rely on libraries not used by the rest of the operations in their group 2017-07-30 12:36:50 +01:00
Matt C 9ee0964d0e Fixed hover issue - now allows scrolling 2017-07-29 00:45:41 +01:00
Matt C 33ecbfa95b Fixed arrow issue 2017-07-28 21:47:47 +01:00
n1474335 e977a1006c Merge branch 'master' into feature-threading 2017-07-28 16:55:07 +01:00
n1474335 559c13a003 5.12.2 2017-07-28 16:44:48 +01:00
n1474335 8f00345430 Merge branch 'seo-structured-data' 2017-07-28 16:44:28 +01:00
n1474335 f1ebab0c2d Added the ability to cancel bakes 2017-07-28 16:38:53 +01:00
n1474335 98884d851a Added staleness indicator to the output 2017-07-28 15:43:23 +01:00
n1474335 78d0369e71 Added loader for long bakes and improved initial loading sequence 2017-07-28 14:43:44 +01:00
n1474335 7a56af8ffa Page title changes to reflect recipe 2017-07-27 15:33:24 +00:00
n1474335 ed2bfbd27c Added structured data to help search engines 2017-07-27 15:33:01 +00:00
Matt C e0905255ba Forgot about package-lock.json
oops
2017-07-25 16:36:01 +01:00
Matt C de80db73f2 Adds initial JPath functionality 2017-07-25 16:27:59 +01:00
Matt C 90ed62add2 Fixes gchq/CyberChef#137
Changes data-trigger to focus so scrolling works and sets max height.
2017-07-25 11:49:23 +01:00
n1474335 d46e279933 Added link to 'Last build' notice showing commits since last release 2017-07-24 16:38:38 +00:00
n1474335 77e074efc2 5.12.1 2017-07-24 15:27:14 +00:00
n1474335 bd000d2d2c Merge branch 'lib-update' 2017-07-24 15:26:12 +00:00
n1474335 5f1c88104d Introduced key-spacing eslint rule 2017-07-24 14:55:48 +00:00
n1474335 a61df0832f Updated dependencies and linted 2017-07-24 13:49:16 +00:00
n1474335 58361e58f8 5.12.0 2017-07-19 16:03:24 +00:00
n1474335 96b4361b31 Merge branch 'feature-bcd' 2017-07-19 15:55:36 +00:00
n1474335 c773edceb9 Added BCD operations with tests 2017-07-19 15:29:37 +00:00
n1474335 bcaef8ba54 5.11.7 2017-07-18 16:17:59 +00:00
n1474335 c7d0b0ccc5 Merge branch 'feature-xor-brute-scheme' 2017-07-18 16:17:13 +00:00
n1474335 38792a0f02 Added differential schemes to 'XOR Brute Force' operation 2017-07-18 16:09:22 +00:00
n1474335 cda557e1b9 Removed sessionStorage as it is no longer used and marginally affects performance 2017-07-18 14:28:51 +00:00
n1474335 8d09f7c7eb 5.11.6 2017-07-17 13:31:37 +00:00
n1474335 4845a56435 Fixed Diff test for new higlighting class 2017-07-17 13:31:28 +00:00
n1474335 f164dcdd70 Fixed Diff highlighting classes 2017-07-17 13:19:08 +00:00
n1474335 cc3aad17e1 OperationConfig now loaded into App via value-loader so that operation code is only included in the worker 2017-07-16 23:33:47 +01:00
n1474335 6c8da6b070 Added ellipsis to overflowing args 2017-07-13 15:11:21 +00:00
n1474335 09df753ca9 5.11.5 2017-07-12 14:34:50 +00:00
n1474335 72ec9df1b1 Fixed option naming conventions 2017-07-12 14:34:45 +00:00
n1474335 086d5272ac 5.11.4 2017-07-12 12:49:22 +00:00
n1474335 2555de7712 Fixed bug in firefox where recipes containing an = character would not load from the URL 2017-07-12 12:49:10 +00:00
n1474335 645e540c66 5.11.3 2017-07-10 11:49:48 +00:00
n1474335 d16e1a4451 Fixed bug in 'Show Base64 offsets' where highlights did not show 2017-07-10 11:49:41 +00:00
n1474335 7c5dd2bd78 5.11.2 2017-07-07 13:30:27 +00:00
n1474335 2f0121f0e4 Merge branch 'bwhitn-unzipmod' 2017-07-07 13:28:21 +00:00
n1474335 7e310a8de7 Moved file switch listener to correct block 2017-07-07 13:27:47 +00:00
n1474335 c460c2bf6b Replaced hexToByteArray with fromHex and byteArrayToHex with toHex. Switched displayFilesAsHTML operation to use template strings and introduced markup formatting method. 2017-07-07 13:23:58 +00:00
n1474335 760ab688b2 Create ChefWorker and move bake process into it 2017-07-05 00:14:47 +01:00
n1474335 ff78c72d54 Configured webpack-dev-server 2017-07-03 23:15:57 +01:00
n1474335 2400de337b Merge branch 'unzipmod' of https://github.com/bwhitn/CyberChef into bwhitn-unzipmod 2017-07-03 15:28:12 +00:00
n1474335 85d41085de 5.11.1 2017-07-03 15:25:52 +00:00
n1474335 48d45d026e Merge branch 'bwhitn-filetimemod' 2017-07-03 15:25:39 +00:00
n1474335 183c57643b Tidied up changes to filetime operations and brought tests up to date 2017-07-03 15:25:14 +00:00
n1474335 e7cea889ab Merge branch 'filetimemod' of https://github.com/bwhitn/CyberChef into bwhitn-filetimemod 2017-07-03 15:19:42 +00:00
n1474335 61c799447b Improved banner CSS 2017-07-03 15:18:47 +00:00
bwhitn ad25daf206 Allow hex and decimal format for Windows Filetime format as those are the formats they are typically represented in 2017-07-02 20:04:25 -04:00
bwhitn 4143bba89f This adds the ability to move the file data from Utils.displayFilesAsHTML to the input. 2017-07-01 00:40:22 -04:00
n1474335 8eb7d65b74 5.11.0 2017-06-28 19:56:07 +01:00
n1474335 51798553e1 Merge branch 'artemisbot-features/bifid' 2017-06-28 19:55:19 +01:00
n1474335 323928ff86 Tidied up Bifid operations 2017-06-28 19:54:34 +01:00
n1474335 fe3aeabd0a Merge branch 'features/bifid' of https://github.com/artemisbot/CyberChef into artemisbot-features/bifid 2017-06-28 19:27:42 +01:00
n1474335 ec7a55dba6 5.10.7 2017-06-27 14:13:30 +00:00
n1474335 b4fe708d70 Merge branch 'bug-display-as-html' 2017-06-27 14:13:24 +00:00
n1474335 c3469bd545 Correctly escape filenames in displayFilesAsHTML 2017-06-27 14:04:30 +00:00
n1474335 92018b761d 5.10.6 2017-06-26 21:54:15 +01:00
n1474335 bb45ff0515 Merge branch 'bug-preloader' 2017-06-26 21:53:21 +01:00
n1474335 df1405e998 Fixed mildly infuriating bug where the preloader rings overlap 2017-06-26 21:47:57 +01:00
n1474335 62ec018bb2 Update README.md 2017-06-26 16:35:51 +01:00
n1474335 14b7c4bf23 Improved support for different alphabets in 'Substitute' operation 2017-06-23 13:21:19 +00:00
n1474335 5c774a3ce2 Updated to allow delimiter to be set 2017-06-23 12:18:08 +00:00
Matt C 246480daef Fixed styling errors 2017-06-22 17:13:31 +01:00
Matt C 91c6f682e7 Added Bifid Cipher Encode & Decode
Bifid Cipher + Tests
2017-06-21 22:28:17 +01:00
n1474335 a417a6469c Added package-lock.json 2017-06-20 14:45:20 +00:00
n1474335 2821bdd52b 5.10.5 2017-06-19 16:50:07 +00:00
n1474335 d37300be39 Merge branch 'bug-astral' 2017-06-19 16:49:17 +00:00
n1474335 15b83072bb Added support for astral characters to charcode ops 2017-06-19 15:40:36 +00:00
n1474335 6d2e2259db 5.10.4 2017-06-16 15:44:42 +00:00
n1474335 5b70614212 Merge branch 'tidy-links' 2017-06-16 15:38:37 +00:00
n1474335 4363da534d Updated links to new hash variant and cleaned up About and Option panes 2017-06-16 15:36:42 +00:00
n1474335 685f7a4f00 Create CODE_OF_CONDUCT.md 2017-06-16 15:32:55 +01:00
n1474335 6e26f25418 5.10.3 2017-06-16 11:26:03 +00:00
n1474335 d8051ce9a2 Merge branch 'feature-hashurls' 2017-06-16 11:23:16 +00:00
n1474335 00e7d8a390 The recipe and input are now stored in the hash part of the URL 2017-06-16 11:04:35 +00:00
bwhitn 213ec028b8 Merge pull request #2 from gchq/master
Current
2017-06-15 19:43:22 -04:00
n1474335 61951e76ac 5.10.2 2017-06-15 14:25:03 +00:00
n1474335 47cf763b3f Merge branch 'bug-findreplace' 2017-06-15 14:23:35 +00:00
n1474335 04aac03d6e Fixed global matching for simple strings in 'Find / Replace' operation. Closes #25. 2017-06-15 14:21:30 +00:00
n1474335 3faef2c9c9 5.10.1 2017-06-13 16:31:00 +00:00
n1474335 eda17d1671 Added mixed content note to 'HTTP request' error message. 2017-06-13 16:30:55 +00:00
n1474335 fbd6ead6b7 5.10.0 2017-06-13 15:34:36 +00:00
n1474335 bf2950abdd Merge branch 'bwhitn-master' 2017-06-13 15:33:59 +00:00
n1474335 3eacc325a3 Improved descriptions for timestamp operations. 2017-06-13 15:33:37 +00:00
n1474335 15decd9cd9 Merge branch 'master' of https://github.com/bwhitn/CyberChef into bwhitn-master 2017-06-13 14:12:20 +00:00
Bwhit1 c0142adba9 changed error to conform with the rest of the functions and simplified repetative math. 2017-06-12 15:39:54 -04:00
bwhitn ec01333c83 removed decimal.min.js 2017-06-12 05:48:22 -07:00
bwhitn 8110384ea2 Fixed the names under the DateTime Category 2017-06-12 05:33:24 -07:00
bwhitn 0c2c0d7b8b Added DateTime test, added filetime functions to Catagories, and removed unused variables. 2017-06-12 05:28:41 -07:00
Bwhit1 ae38bb0927 Completion of simple filetime conversion 2017-06-11 20:05:30 -04:00
Bwhit1 003e076b00 modifications to FILETIME 2017-06-10 23:42:02 -04:00
n1474335 2c2a0eb7d9 5.9.2 2017-06-09 15:36:53 +00:00
n1474335 e7f5b17184 Manual bake now triggers when recipes are loaded from the URL. Fixes #93. 2017-06-09 15:36:15 +00:00
n1474335 69e12b1067 5.9.1 2017-06-09 15:21:45 +00:00
n1474335 fef446687a Loading messages won't repeat as often and cycle more slowly 2017-06-09 15:21:39 +00:00
n1474335 3affce8f98 5.9.0 2017-06-09 14:54:27 +00:00
n1474335 0b91468edc Merge branch 'tlwr-feature-http-request' 2017-06-09 14:53:39 +00:00
n1474335 127364e8a4 Added error handling for non-CORS requests. 2017-06-09 14:53:15 +00:00
bwhitn a144f65dcf Create DateTime.js 2017-06-08 08:28:21 -07:00
bwhitn 96ec3a869b Use decimal.min.js and add the file. 2017-06-08 08:19:26 -07:00
n1474335 52426bc1a4 Merge branch 'master' into feature-http-request 2017-06-08 16:08:20 +01:00
n1474335 cbab995c6d Added error handling and CORS support 2017-06-08 15:03:55 +00:00
bwhitn d27fa43120 Add conversions for from/to Windows Filetime to UNIX Epoch. Decimal.js is used to prevent rounding errors during conversion. 2017-06-08 07:23:11 -07:00
n1474335 45a9da5b30 5.8.0 2017-06-08 11:10:35 +00:00
n1474335 aed22aebb2 Merge branch 'davejm-feature-remove-exif' 2017-06-08 11:09:53 +00:00
n1474335 369d213da5 Tidying 'Remove EXIF' 2017-06-08 11:09:31 +00:00
n1474335 e92775eec2 Merge branch 'feature-remove-exif' of https://github.com/davejm/CyberChef into davejm-feature-remove-exif 2017-06-08 10:56:06 +00:00
bwhitn 2c0f48f4e5 Merge pull request #1 from gchq/master
update
2017-06-07 23:55:41 -04:00
toby a5f1c430a3 Add "HTTP request" operation 2017-06-07 22:46:05 -04:00
David Moodie e4a91b5397 Use functions from utils 2017-06-07 21:41:02 +01:00
David Moodie cbcd45cd70 Do nothing if input is empty for removeEXIF operation 2017-06-07 20:01:45 +01:00
David Moodie 0968912954 Only reference JPEGs in removeEXIF description to be more clear 2017-06-07 19:51:09 +01:00
David Moodie 3bfe22c0f7 Remove piexifjs dep and extract removeEXIF to lib module 2017-06-07 19:49:44 +01:00
David Moodie 6cf64d794f Change == to === 2017-06-04 17:23:53 +01:00
David Moodie 6741ba0783 Add remove EXIF operation 2017-06-04 17:08:39 +01:00
n1474335 f1e7bc3363 5.7.3 2017-06-01 10:24:38 +00:00
n1474335 2dbe2d044e Merge branch 'qistoph-numsort' 2017-06-01 10:23:49 +00:00
n1474335 ea3630e018 Tidied _numericSort and added @author tag 2017-06-01 10:21:10 +00:00
Chris van Marle c6391d958d Add numeric sorting tests 2017-05-30 08:53:18 +02:00
Chris van Marle 71aa4033a4 Add numeric sorting 2017-05-29 15:24:41 +02:00
n1474335 57dcd961d5 Option selects now default to the first option if not previously set 2017-05-24 10:29:47 +01:00
n1474335 83878d6b05 Update ControlsWaiter.js 2017-05-23 16:53:37 +01:00
n1474335 9055fc72d2 Added Boostrap grid CSS 2017-05-23 13:09:55 +01:00
n1474335 fb4ab56b47 Merge pull request #141 from tlwr/master
Add repo option to Travis
2017-05-21 19:36:12 +01:00
toby 51e195ed17 Add repo option to Travis 2017-05-20 23:56:58 -04:00
n1474335 9947c574d2 5.7.2 2017-05-20 13:49:29 +01:00
n1474335 693abdacf6 Merge branch 'tlwr-master' 2017-05-20 13:49:17 +01:00
toby dd3b42fb53 Fix bug with UTF16LE in Encode/Decode ops 2017-05-19 16:11:08 -04:00
n1474335 8e72d7d0d6 5.7.1 2017-05-19 16:28:43 +00:00
n1474335 a6317212d9 Merge branch 'feature-loading-messages' 2017-05-19 16:25:30 +00:00
n1474335 347adf688a Added loading messages to preloader 2017-05-19 16:23:52 +00:00
n1474335 3ee67927a5 Moved bootstrap from devDependencies to dependencies and removed bootstrap-sass. 2017-05-19 14:17:34 +00:00
n1474335 7ecd36efcf Cleaned up extraneous character encoding functions in Utils.js 2017-05-19 14:05:57 +00:00
n1474335 714ce8a8a3 5.7.0 2017-05-19 13:45:30 +00:00
n1474335 7b18a2f46f Merge branch 'tlwr-feature-ebcdic' 2017-05-19 13:44:18 +00:00
n1474335 19103a64e5 Tidied up character encoding names 2017-05-19 13:43:55 +00:00
n1474335 a13f1d27e2 Merge branch 'feature-ebcdic' of https://github.com/tlwr/CyberChef into tlwr-feature-ebcdic 2017-05-19 13:16:54 +00:00
n1474335 9a6e4b1e85 5.6.0 2017-05-19 13:12:04 +00:00
n1474335 67b78fc230 Merge branch 'feature-render-images' 2017-05-19 13:11:12 +00:00
n1474335 5e79187176 Added ico and removed tiff from supported image types 2017-05-19 12:58:42 +00:00
n1474335 491a82cd67 Added 'Render Image' operation 2017-05-19 11:15:48 +00:00
n1474335 87c2ec678f 5.5.0 2017-05-19 00:22:50 +01:00
n1474335 70135ab3ea Really fix compile message formatting 2017-05-19 00:22:41 +01:00
n1474335 ad18d84f14 Fix option defaults and compile message formatting 2017-05-19 00:10:36 +01:00
n1474335 77e47e3fa4 Merge branch 'feature-sass' 2017-05-18 23:51:29 +01:00
n1474335 04432385b3 Merge branch 'master' into feature-sass 2017-05-18 23:50:43 +01:00
n1474335 cbdc24d869 Travis CI now adds a compile message 2017-05-18 23:46:03 +01:00
n1474335 2b3e471f96 Added version number to About/Support pane 2017-05-18 23:40:53 +01:00
n1474335 488d54493a Added modern browser warning for theme support 2017-05-18 23:29:04 +01:00
n1474335 a418f63a44 Added postcss-loader to provide fallbacks for older browsers 2017-05-18 23:24:24 +01:00
toby 0e285151f3 Add codepage numbers to CharEnc IO_FORMAT 2017-05-17 18:22:04 -04:00
n1474335 e4ad7768d5 Finalised the dark theme 2017-05-17 23:02:52 +01:00
toby f800fab1a3 Add author tags to Encode text & Decode text ops 2017-05-17 17:31:28 -04:00
toby dc61aeeeb8 Improve format of en/decoding text descriptions 2017-05-17 17:18:08 -04:00
toby 4b1d0fd011 Merge branch 'feature-ebcdic' of github.com:tlwr/CyberChef into feature-ebcdic 2017-05-17 11:30:20 -04:00
toby 2b7ba594fc Split "Text encoding" op into two ops
This commit splits "Text encoding" into two operations:
+ Encode text `string -> byteArray`
+ Decode text `byteArray -> string`

Base64 and Hex support are removed "Encode text" and "Decode text" as
they have their own operations.

Encode and decode operations now have support for the following
encodings:
+ IBM EBCDIC US-Canada
+ IBM EBCDIC International
+ Windows-874 Thai
+ Japanese Shift-JIS
+ Simplified Chinese GBK
+ Korean
+ Traditional Chinese Big5
+ UTF-16, little endian
+ UTF-16, big endian
+ Windows-1250 Central European
+ Windows-1251 Cyrillic
+ Windows-1252 Latin
+ Windows-1253 Greek
+ Windows-1254 Turkish
+ Windows-1255 Hebrew
+ Windows-1256 Arabic
+ Windows-1257 Baltic
+ Windows-1258 Vietnam
+ US-ASCII
+ Russian Cyrillic KOI8-R
+ Simplified Chinese GB2312
+ KOI8-U Ukrainian Cyrillic
+ ISO-8859-1 Latin 1 (Western European)
+ ISO-8859-2 Latin 2 (Central European)
+ ISO-8859-3 Latin 3
+ ISO-8859-4 Baltic
+ ISO-8859-5 Cyrillic
+ ISO-8859-6 Arabic
+ ISO-8859-7 Greek
+ ISO-8859-8 Hebrew
+ ISO-8859-9 Turkish
+ ISO-8859-10 Latin 6
+ ISO-8859-11 Latin (Thai)
+ ISO-8859-13 Latin 7 (Estonian)
+ ISO-8859-14 Latin 8 (Celtic)
+ ISO-8859-15 Latin 9
+ ISO-8859-16 Latin 10
+ ISO-2022 JIS Japanese
+ EUC Japanese
+ EUC Korean
+ Simplified Chinese GB18030
+ UTF-7
+ UTF-8
2017-05-17 11:17:11 -04:00
n1474335 d87b14af13 5.4.1 2017-05-17 14:45:19 +00:00
n1474335 83623d23cf Merge branch 'bug-timestamp' 2017-05-17 14:45:10 +00:00
n1474335 07fba53b73 'To UNIX Timestamp' operation now defaults to UTC instead of your local timezone. 2017-05-17 14:37:36 +00:00
n1474335 823b276ef5 Changed bootstrap-sass back to bootstrap (with less). Theme now loads before the preloader is shown. 2017-05-13 16:45:19 +01:00
n1474335 0e72d78731 5.4.0 2017-05-13 16:10:26 +01:00
n1474335 768609e357 Whitespace 2017-05-13 16:09:32 +01:00
n1474335 526a157421 Merge branch 'tlwr-feature-exif' 2017-05-13 16:08:39 +01:00
n1474335 62154309fb Newlines 2017-05-13 16:08:14 +01:00
n1474335 ad74e6c475 Merge branch 'feature-exif' of https://github.com/tlwr/CyberChef into tlwr-feature-exif 2017-05-13 15:59:48 +01:00
toby 82d28242cc Add JSDoc to the runEXIF function in Image.js 2017-05-09 15:34:18 -04:00
toby 60fddf837d Change let to const in "Extract EXIF" 2017-05-08 12:49:13 -04:00
toby ee25df0c28 Add desc and fix error message for "Extract EXIF" 2017-05-08 12:48:43 -04:00
toby 478af40359 Fix "Extract EXIF" tests 2017-05-08 12:45:42 -04:00
Toby Lorne 6bf06a9629 Merge branch 'master' into feature-ebcdic 2017-05-07 18:21:30 -04:00
toby 3c15bd9e29 Add "{To,From} EBCDIC" operations
This adds operations
+ "To EBCDIC"
+ "From EBCDIC"

This makes use of the npm codepage package but it is not installed as a
dependency.

Instead I used the `make.sh` script to export pages 37 and 500.

To my knowledge there is no way currently to only import individual code pages
from the npm package (hence the included script).

If we were to import the package directly it increases the build size by
2.7MB.
2017-05-07 18:07:56 -04:00
toby 71796e3dbf Merge remote-tracking branch 'upstream/master' into feature-exif 2017-05-06 23:38:04 -04:00
n1474335 280f1ee2df Dark theme tweaks and improvements 2017-05-07 01:13:47 +01:00
n1474335 0dc72d8301 Merged master 2017-05-06 16:22:25 +01:00
n1474335 c43b67ea90 5.3.5 2017-05-06 16:15:29 +01:00
n1474335 244421b69e Merge branch 'graingert-prefer-const' 2017-05-06 16:14:58 +01:00
n1474335 1adedff61a Filter out source-map warnings in webpack output 2017-05-06 16:14:30 +01:00
n1474335 6abd10f9e2 Tidying codebase 2017-05-06 16:12:09 +01:00
n1474335 a85096ea11 5.3.4 2017-05-06 15:00:46 +01:00
n1474335 f67157f0ad Fixed erroring dependency 2017-05-06 15:00:28 +01:00
n1474335 5efe9bd91d Merge branch 'prefer-const' of https://github.com/graingert/CyberChef into graingert-prefer-const 2017-05-06 14:11:38 +01:00
n1474335 dc7a7267c9 5.3.4 2017-05-06 14:00:41 +01:00
n1474335 17188b1e38 Merge branch 'tlwr-feature-async-ops-small' 2017-05-06 14:00:08 +01:00
n1474335 e9c3bebfff Fixed lint error 2017-05-06 13:59:33 +01:00
n1474335 03fc22d3da Merge conflicts 2017-05-06 13:47:26 +01:00
n1474335 5d52c49c31 5.3.3 2017-05-05 16:04:22 +00:00
n1474335 d53da4cfb5 Merge branch 'bug-x509-sig' 2017-05-05 16:03:40 +00:00
n1474335 76204f5f47 Fixed lint errors 2017-05-05 16:03:25 +00:00
n1474335 b68adbd9a8 Merge branch 'master' into bug-x509-sig 2017-05-05 16:02:12 +00:00
n1474335 951b168f3a 5.3.2 2017-05-05 16:00:40 +00:00
n1474335 53d89af459 Merge branch 'feature-key-derivation-hashers' 2017-05-05 15:58:00 +00:00
n1474335 4f844ea837 Merge branch 'master' into feature-key-derivation-hashers 2017-05-05 15:57:42 +00:00
n1474335 59a36e77bd 5.3.1 2017-05-05 15:55:58 +00:00
n1474335 61d8d4473c Merge branch 'graingert-use-array-fill' 2017-05-05 15:55:46 +00:00
n1474335 508a371175 Fixed offset checker array initialisation 2017-05-05 15:54:59 +00:00
n1474335 b010fd88e8 Fix X.509 signature breakout bug 2017-05-05 15:42:24 +00:00
n1474335 66a93b81c6 Added hasher argument to PBKDF2 and EVPKDF operations. 2017-05-05 15:38:38 +00:00
toby 274e1139fa Remove debounce from Utils 2017-05-03 10:43:30 -04:00
toby 6122e33f4f Removed debounced autobake & stop disabling input 2017-05-03 10:35:15 -04:00
Thomas Grainger b365ce3195 fix the first 100 prefer-const errors 2017-05-03 00:41:01 +01:00
Thomas Grainger 0a3233d289 move spider images to .json file 2017-05-03 00:41:01 +01:00
Thomas Grainger 15aea9e9ea auto-fix prefer-const 2017-05-03 00:41:01 +01:00
Thomas Grainger 5b03a84be8 use .fill to initialise Arrays 2017-05-02 23:05:04 +01:00
n1474335 80cdf0c014 Merge conflict 2017-05-02 23:03:28 +01:00
n1474335 d41d56e670 5.3.0 2017-05-02 22:54:56 +01:00
n1474335 7e4e1f1a0d Merge branch 'graingert-no-var-rule' 2017-05-02 22:54:41 +01:00
n1474335 463b06f508 Consistency modifications 2017-05-02 22:53:57 +01:00
n1474335 d3377d56b4 Merge branch 'no-var-rule' of https://github.com/graingert/CyberChef into graingert-no-var-rule 2017-05-02 22:28:17 +01:00
n1474335 c7611fbc05 Merge pull request #123 from gchq/feature-comment
Feature: 'Comment' operation
2017-05-02 21:05:58 +01:00
n1474335 67ee218f69 Merge pull request #124 from tlwr/feature-camel-snake-case
Add operations "To {Snake,Camel,Kebab} case"
2017-05-02 21:04:49 +01:00
n1474335 d1d394eec7 Fix search-results layout bug. 2017-05-02 20:56:57 +01:00
toby 98bc68c2bf Update descriptions to explain context awareness 2017-05-02 12:17:43 -04:00
toby 116c0680a2 Make camel,etc smart and add tests 2017-05-02 11:51:33 -04:00
toby 1b8a25ec88 Add "Extract EXIF" operation 2017-04-29 16:06:16 -04:00
toby d5def01a9d Add operations To {Snake,Camel,Kebab} case 2017-04-29 13:42:07 -04:00
Thomas Grainger ee07b72415 move eslintrc up a directory 2017-04-28 16:53:38 +01:00
Thomas Grainger f7547db272 ignore vendor 2017-04-28 16:50:12 +01:00
Thomas Grainger 5d271687ec fix vars in Gruntfile 2017-04-28 16:50:12 +01:00
Thomas Grainger d05543db30 manual fixes 2017-04-28 16:45:02 +01:00
Thomas Grainger b33f73ac9a autofix no-var 2017-04-28 16:45:00 +01:00
n1474335 31e5d785fe Added badges for npm version and repo size to the README 2017-04-28 13:28:31 +01:00
n1474335 8096fd20a7 Fixed lint errors 2017-04-27 13:12:45 +00:00
n1474335 addd45ae8e Added 'Comment' operation for annotating the recipe 2017-04-27 13:05:29 +00:00
n1474335 d6895537ac Added more keywords and bug link to package.json 2017-04-27 10:43:11 +00:00
n1474335 4ac40fee5e 5.2.4 2017-04-27 10:24:43 +00:00
n1474335 05b8d0b45c Added Travis deployment for npm. 2017-04-27 10:23:01 +00:00
n1474335 446f539803 5.2.3 2017-04-27 09:14:35 +00:00
n1474335 6ef2e46aa3 Merge branch 'bug-popover' 2017-04-27 09:14:11 +00:00
n1474335 e4c5c4a901 Fixed bug where popovers on operations stopped working after the operation was dragged into the recipe. 2017-04-27 09:10:18 +00:00
n1474335 be231f3a91 5.2.2 2017-04-26 11:05:50 +00:00
n1474335 39f36c9184 Removed excess auto-baking when an operation is added to the recipe. Fixes #120. 2017-04-26 11:05:44 +00:00
n1474335 2e4076bb75 Added option to change the theme. 2017-04-25 00:21:38 +01:00
n1474335 d71ac2e894 Moved from Sass to CSS with custom properties, allowing for dynamic theme changes. 2017-04-24 23:59:35 +01:00
n1474335 7e7da26f29 5.2.1 2017-04-24 11:54:05 +00:00
n1474335 4375a151dd BUGFIX #119: Recipe names are now correctly escaped. 2017-04-24 11:53:55 +00:00
n1474335 0f02fb5d05 5.2.0 2017-04-23 18:53:55 +01:00
n1474335 05edc1f9c4 Merge branch 'tlwr-feature-select-lines-op' 2017-04-23 18:53:21 +01:00
toby 50784f2600 Debounce autobake in the web app.
Added debounce with guidance from the underscore.js implementation:
https://github.com/jashkenas/underscore/blob/e944e0275abb3e1f366417ba8facb5754a7ad273/underscore.js#L880
2017-04-23 13:41:28 -04:00
n1474335 2c0f0d9a20 Changed Head and Tail tests to match new 'AllBut' configuration. 2017-04-23 18:29:54 +01:00
toby 21c0fed833 Fix bug: baking error did not reset baking status 2017-04-23 13:14:59 -04:00
n1474335 d081ff745d Added Head and Tail to Utils category and replaced 'AllBut' argument functionality with support for negative values of n. 2017-04-23 18:05:00 +01:00
n1474335 e3f41fea9c Developing a dark theme. 2017-04-23 17:09:12 +01:00
toby dea214bd2e Add Head and Tail operations 2017-04-21 23:10:34 -04:00
toby a13e2468db Added UI loading indications to the HTML app 2017-04-21 20:04:12 -04:00
toby 3fb660d816 Add jsdoc-babel plugin
This is to stop jsdoc parsing errors.

More information in this thread:
https://github.com/jsdoc3/jsdoc/issues/555
2017-04-21 18:05:30 -04:00
toby 9f60dc3dd6 Change ecmaVersion to 8 to make eslint happy 2017-04-21 17:56:16 -04:00
toby 02f855ff09 Add more tests for flow control ops 2017-04-21 17:49:10 -04:00
toby c39622ed1e Add support for async ops using async/await 2017-04-21 17:48:42 -04:00
n1474335 07bb095e73 Merge pull request #115 from tlwr/patch-1
Update Crown Copyright to 2017 in jsdoc.conf.json
2017-04-15 20:49:10 +01:00
n1474335 e409029bb3 Merge pull request #116 from tlwr/patch-2
Add Travis CI badge to README.md
2017-04-15 20:48:42 +01:00
n1474335 a4d93f23d6 Added preloader to hide elements before they are correctly rendered 2017-04-15 20:46:57 +01:00
Toby Lorne 6201176852 Add Travis CI badge to README.md 2017-04-13 15:36:17 -04:00
Toby Lorne 7d958cc20e Update Crown Copyright to 2017 in jsdoc.conf.json 2017-04-13 15:23:54 -04:00
n1474335 e0e5670d0e Styles rewritten in a modular format with themable properties stored in variables. 2017-04-13 17:59:37 +01:00
n1474335 68e855e3d2 Merge branch 'FloatingGhost-master' 2017-04-11 14:42:14 +00:00
n1474335 bf91352fce Modified comments in Code.js 2017-04-11 14:41:30 +00:00
n1474335 a840504b3d Merge branch 'master' of https://github.com/FloatingGhost/CyberChef into FloatingGhost-master 2017-04-11 14:38:29 +00:00
n1474335 e120422b05 Styles now imported through Sass. Less removed. 2017-04-09 14:06:59 +01:00
n1474335 c60e99288f 5.1.3 2017-04-07 23:03:17 +01:00
n1474335 d9006d6e37 Merge pull request #110 from artemisbot/feature/accessibility
Made changes to fix accessibility errors
2017-04-07 23:10:42 +01:00
Matt C 9121b83bd1 Update Gruntfile.js 2017-04-07 23:01:37 +01:00
n1474335 fad3db1556 5.1.2 2017-04-07 22:24:51 +01:00
n1474335 9d4862b5c8 Merge pull request #111 from gchq/bug-autobake-reorder
BUGFIX #98: Auto-Bake now triggers when operations are re-ordered.
2017-04-07 22:34:32 +01:00
n1474335 2a07999db6 BUGFIX #98: Auto-Bake now triggers when operations are re-ordered. 2017-04-07 22:23:23 +01:00
n1474335 ce2ffcafd3 5.1.1 2017-04-07 21:59:07 +01:00
n1474335 3093794f72 Merge pull request #109 from gchq/bug-search
Fixed popover bug in search. Fixes #107
2017-04-07 22:08:12 +01:00
n1474335 abd05f5105 Fixed popover bug in search and removed popovers when favourites are dragged out. 2017-04-07 21:50:53 +01:00
n1474335 dcb2ad9d2d Merge branch 'l50741-feature/accessibility' 2017-04-07 21:28:22 +01:00
Matt C 44d2e100bd Made changes to fix accessibility errors
Still some warnings and notices, but they are inconsequential.
2017-04-07 17:00:32 +01:00
Hannah Ward 8d9c114acd fix: Re-add comments in code replacements 2017-04-07 13:59:00 +01:00
Hannah Ward bce0950498 chg: Removed redundant code = code.replace 2017-04-06 12:43:37 +01:00
Hannah Ward dcac64fb9a chg: Compress repeated replaces 2017-04-06 12:31:44 +01:00
n1474335 1770205ee1 5.1.0 2017-04-05 23:07:40 +01:00
n1474335 5c7dfcb4a2 Updated .travis.yml 2017-04-05 23:07:33 +01:00
n1474335 35e7460be8 Fixed lint error 2017-04-05 22:03:30 +01:00
n1474335 87ebe77dfb Merge branch 'artemisbot-feature-octal' 2017-04-05 22:00:33 +01:00
n1474335 5f85bff315 Fixed tests for octal operations. 2017-04-05 22:00:06 +01:00
l50741 03ad87d651 add a grunt plugin to check accessibility 2017-04-05 21:30:22 +01:00
Matt C a36c9ca339 Merge remote-tracking branch 'upstream/master' into feature-octal 2017-03-31 18:44:38 +00:00
n1474335 f07709e80b Merge branch 'master' of https://github.com/gchq/CyberChef 2017-03-31 16:01:26 +00:00
n1474335 7272c86592 5.0.1 2017-03-31 16:00:30 +00:00
n1474335 706423462d 'From Base' operation now supports numbers with fractional parts. 2017-03-31 16:00:23 +00:00
n1474335 bace0c5b2c Updated .travis.yml 2017-03-31 11:27:39 +01:00
n1474335 3788a9161a Updated .travis.yml to add GA code to GH Pages 2017-03-31 09:56:08 +00:00
n1474335 7276ccaf96 5.0.0 2017-03-30 21:18:41 +01:00
n1474335 3a9dbdf7fb Fixed Travis CI config for releases 2017-03-30 21:18:33 +01:00
n1474335 8106ba5bc6 Configured Travis CI to deploy GitHub Releases 2017-03-30 20:54:46 +01:00
n1474335 b9766a5041 Configured Travis CI to deploy to GitHub Pages 2017-03-30 20:17:40 +01:00
n1474335 a37d2a24cf Merge branch 'master' of https://github.com/gchq/CyberChef 2017-03-30 19:59:31 +01:00
n1474335 3b253f48ae Added .travis.yml for CI 2017-03-30 19:58:58 +01:00
n1474335 f63456ae30 Updated README.md 2017-03-30 18:56:07 +01:00
n1474335 6cbf9ef2c2 Added npm shortcuts for test, build and docs 2017-03-30 18:47:53 +01:00
n1474335 8ed4cb65c5 Merge pull request #95 from gchq/feature-webpack
ES6, webpack, Babel, libraries imported through npm, and NodeJS version
2017-03-30 18:25:33 +01:00
n1474335 6d396dbb9e Calls to window and document in src/core/ no longer break non-browser environments 2017-03-30 00:47:51 +01:00
n1474335 dd5bd5d5e7 Added timeout back to test runner. 2017-03-30 00:15:40 +01:00
n1474335 720b7a3e3f Removed stats.txt functionality as it doesn't add much. 2017-03-29 21:51:42 +01:00
Matt C 7ab6c88774 Made fixes so that tests might work 2017-03-28 16:21:57 +00:00
n1474335 e71abcd78d Updated README.md 2017-03-28 16:17:20 +01:00
Matt C 96e40a6479 Made requested changes. 2017-03-27 20:30:32 +00:00
Matt C 497824ff21 Merge branch 'master' into feature-octal 2017-03-27 18:50:42 +00:00
n1474335 06d4002c6b Fixed CanvasComponents not being available to operation output code. 2017-03-27 19:43:50 +01:00
n1474335 ed21dff88f Fixed 'Diff' imports and added test 2017-03-27 19:39:04 +01:00
n1474335 559e32a16a Merged upstream master 2017-03-27 18:41:23 +01:00
n1474335 d63a465e6b Updated webpack config to work with beta branch 2017-03-27 16:20:43 +01:00
n1474335 97d41fd50a Restructured and fixed inliner. 2017-03-27 16:08:36 +01:00
n1474335 d37bc4ab08 Fixed node imports. 2017-03-25 13:56:46 +00:00
n1474335 c75ebcf001 Fixed tests and brought test module naming in line with conventions. 2017-03-25 13:32:35 +00:00
n1474335 9bd11dc7ad UglifyJS now invoked by webpack instead of Grunt 2017-03-23 18:41:36 +00:00
n1474335 131b3a83c1 Converted all modules from CommonJS to ES6 2017-03-23 17:52:20 +00:00
n1474335 456aeeda7e Merge pull request #94 from surevine/base32-issue
Fixed an issue with Base32 encoding
2017-03-23 15:26:25 +00:00
n1474335 0f2a5014be Restructured src files into a more logical hierarchy 2017-03-23 00:33:40 +00:00
Ashley Ward 72e3c6fc24 Fixed an issue with Base32 encoding 2017-03-22 22:12:18 +00:00
n1474335 c9910a8ddb Banners and template options added through webpack 2017-03-22 16:55:21 +00:00
n1474335 df15826912 CSS now packaged with webpack instead of Grunt 2017-03-22 16:12:53 +00:00
n1474335 fce13130cd Removed snowfall feature 2017-03-22 00:05:40 +00:00
n1474335 1800bad61d Added babel-preset-env with browser version targets and babel-polyfill 2017-03-21 23:56:46 +00:00
n1474335 87d6459074 Updated production build 2017-03-21 23:10:18 +00:00
n1474335 45640f2f2e Merge branch 'tlwr-filedownload' 2017-03-21 23:07:54 +00:00
n1474335 69f6769d52 Removed jQuery and reference to window object from Utils code. 2017-03-21 23:06:51 +00:00
n1474335 885fbe13ac Set up Grunt tasks to build web and Node versions of CyberChef using webpack 2017-03-21 22:41:44 +00:00
Matt C b8ce10ae96 Adds Octal functions
- To Octal
- From Octal
2017-03-14 21:26:10 +00:00
toby 78abacdadc Add download button for displayFilesAsHTML files
+ Added bytes attribute for "file objects" in untar and unzip
+ Added download button on files displayed by displayFilesAsHTML
2017-03-12 14:03:40 -04:00
n1474335 94ea086e05 BUGFIX: "Strip HTTP header" operation now functions correctly. 2017-03-09 17:16:47 +00:00
n1474335 691f156911 Merge pull request #90 from gchq/feature-ipv6reservedranges
Added EUI-64 detection to 'Parse IPv6 address'
2017-03-08 13:59:39 +00:00
n1474335 b93c183772 Added EUI-64 detection to 'Parse IPv6 address' 2017-03-07 13:36:26 +00:00
n1474335 99f306dc18 Removed unused standalone libraries and fixed a few outstanding imports. 2017-03-07 11:27:36 +00:00
n1474335 a21e0e546b Converted the majority of the core and operations to use CommonJS module syntax. 2017-03-06 12:45:51 +00:00
n1474335 14e9ea699a Jump operations now jump backwards in a more logical way. 2017-03-04 10:57:14 +00:00
n1474335 a459f542af Merge pull request #85 from Manishearth/crypt
Add UNIX crypt base64 format
2017-03-02 14:09:59 +00:00
n1474335 a4197684e5 Added licencing info to README 2017-03-01 21:45:49 +00:00
n1474335 fc9c2d1f6e BUGFIX: HTML output which is then converted to a regular string (for a standard operation) still contained escaped HTML chars. 2017-03-01 21:33:28 +00:00
n1474335 70603be5ab BUGFIX: Jump operations skipping an operation once maxJumps reached. 2017-03-01 21:20:42 +00:00
n1474335 3ad4291258 Added Fork and Conditional Jump test 2017-03-01 21:13:20 +00:00
Manish Goregaokar 83791e2ea7 Add crypt base64 format 2017-03-01 09:44:35 -08:00
n1474335 d91bdd7f8f Merge branch 'tlwr-tests' 2017-02-28 17:09:22 +00:00
n1474335 d7e396c04f Tweaks and restructuring of test runner. 2017-02-28 17:08:36 +00:00
n1474335 6e5ea5d75f Merge branch 'tests' of https://github.com/tlwr/CyberChef into tlwr-tests 2017-02-28 13:05:03 +00:00
toby 3a90244af0 Convert test runner to headless 2017-02-24 18:50:17 -05:00
n1474335 7355bf5998 Merge pull request #83 from gchq/feature-ipv4header
Feature: 'Parse IPv4 header' operation
2017-02-24 17:14:23 +00:00
toby 04df7a51d2 Handle case when expected error and receives none 2017-02-23 14:30:19 -05:00
toby 3d89881373 Fix typo in TestRegister.js 2017-02-23 14:04:50 -05:00
toby d680b4a06f Merge remote-tracking branch 'upstream/master' into tests 2017-02-23 14:04:30 -05:00
toby 500522bdeb Initial work on in-browser test runner
Run `grunt test` and open up the `build/test/index.html` to run the
tests.
2017-02-23 13:59:58 -05:00
n1474335 d6cebe55ab Merge branch 'master' into feature-ipv4header 2017-02-21 19:52:36 +00:00
n1474335 be07fe81ed Completed 'Parse IPv4 header' operation candidate. 2017-02-21 19:40:19 +00:00
n1474335 6505c4e6d8 Built new production version to incorporate Morse Code improvements. 2017-02-18 16:15:42 +00:00
n1474335 fa20939dd4 Added initial functionality for 'Parse IPv4 header' operation. 2017-02-18 16:13:19 +00:00
n1474335 6bb6363b0f Merge pull request #74 from misterRaven/master
Morse code improvements
2017-02-18 16:10:58 +00:00
n1474335 92bd2c921e Built production version with Base58 and NetBIOS operations. Closes #48. 2017-02-13 18:12:55 +00:00
n1474335 701ea5890d Merge pull request #78 from tlwr/master
Base58 operations
2017-02-13 17:50:38 +00:00
n1474335 f8744df907 Merge pull request #75 from gchq/feature-netbios
'Encode NetBIOS Name' and 'Decode NetBIOS Name' operations
2017-02-13 17:49:32 +00:00
n1474335 4d14e20afb Merge pull request #80 from gchq/bug-canvascomponents
BUGFIX: CanvasComponents naming conventions updated to match main pro…
2017-02-13 17:49:19 +00:00
n1474335 edb418a3fc BUGFIX: CanvasComponents naming conventions updated to match main project settings. Fixes 'Entropy' and 'Frequency distribution' operations. 2017-02-13 17:48:24 +00:00
toby 11e972ff26 Change description in Base58.js 2017-02-10 13:45:20 -05:00
toby 9125d74fa2 Merge branch 'base58' 2017-02-10 13:34:21 -05:00
toby e26e6a4961 Add "To Base58" and "From Base58" operations 2017-02-10 13:31:59 -05:00
n1474335 522e7a9439 Merge pull request #77 from gchq/bug-html-entities
Fixed double encoding of HTML entities.
2017-02-10 16:38:06 +00:00
n1474335 f76316eae3 Fixed double encoding of HTML entities by improving Utils.escapeHTML. Fixes #76. 2017-02-10 16:39:32 +00:00
n1474335 0e2ce2bee2 Rebuilt production version to include tar and untar ops. 2017-02-10 12:21:51 +00:00
n1474335 ea38664d59 Merge pull request #71 from tlwr/master
Tar and Untar (and Unzip changes)
2017-02-10 12:12:02 +00:00
n1474335 ee5aea5443 Added 'Encode NetBIOS Name' and 'Decode NetBIOS Name' operations 2017-02-10 11:57:23 +00:00
toby 0fd2550190 Improve and fix examples for padBytesRight 2017-02-09 13:37:30 -05:00
toby 0eef1d972a Add padBytesRight author & displayFilesAsHTML desc 2017-02-09 13:22:27 -05:00
toby 6cc5806486 Remove obsolete line from displayFilesAsHTML 2017-02-09 13:20:44 -05:00
toby bbc93af2ae Remove padLeft & move zeroFillBytes to Utils
+ `padLeft was changed to use `Utils.padLeft`
+ Moved `zeroFillBytes` to `Utils.padBytesRight`
2017-02-09 13:07:46 -05:00
toby 037540c9a8 Fix description for Tar operation
Changed "unpack" to "pack"
2017-02-09 13:04:46 -05:00
toby 3bd585cabf Update Unzip to use displayFilesAsHTML 2017-02-09 12:00:36 -05:00
toby 6b8ab2bf16 Add file count to displayFilesAsHTML 2017-02-09 11:59:47 -05:00
toby c67957da81 Code styling changes to pass grunt prod 2017-02-09 11:38:20 -05:00
toby e751825a49 Merge branch 'master' of github.com:tlwr/CyberChef 2017-02-09 11:37:49 -05:00
toby a4283554cf Merge remote-tracking branch 'upstream/master' 2017-02-09 11:35:14 -05:00
toby d26cf4ca9d Merge remote-tracking branch 'upstream/master' 2017-02-09 11:31:15 -05:00
toby 616cebff5a Fix "A lone zero block at ##" bug
Before, the tar operation would write the incorrect number of bytes to
indicate the end of the tar file. It should have been 2 blocks of 512
ascii zeros, but it would write 529 zeros instead.

The new implementation of `writeEndBlocks` is nicer and we can reuse
code with the `addEmptyBlock` function.
2017-02-09 11:25:09 -05:00
n1474335 e803d208e8 Updated eslint whitespace rules 2017-02-09 15:09:33 +00:00
n1474335 ebf2258715 Merge branch 'artemisbot-feature-affine' 2017-02-09 14:18:04 +00:00
n1474335 b2b60f0454 Fixed conflicts. 2017-02-09 14:17:44 +00:00
misterRaven 1cc7835a8d FromMorse operation extended to treat dashes & hyphens as long signals 2017-02-09 17:29:12 +07:00
misterRaven 991bb887ae Punctuation symbols for Morse code 2017-02-09 17:20:06 +07:00
toby d5796706e4 Change Tar block padding to 2 blocks 2017-02-08 23:52:59 -05:00
toby 1653cbf817 Fix JSDoc return type for displayFilesAsHTML 2017-02-08 23:36:09 -05:00
toby 442dd560c0 Implement the Tar operation 2017-02-08 23:35:54 -05:00
toby 281a83bbc3 Add author to runTar, runUntar, displayFilesAsHTML 2017-02-08 12:51:54 -05:00
toby 6f077a9c50 Rename to runTar, runUntar, displayFilesAsHTML 2017-02-08 12:51:18 -05:00
Matt C a153246191 Tidied operations to match conventions 2017-02-08 17:29:50 +00:00
Matt C 2750be36da Adds Affine/Atbash Cipher encryption/decryption
- 3 new operations - Affine Encode, Decode and Atbash Cipher
- Added 3 new utils - mod, GCD and modInv
2017-02-08 11:51:37 +00:00
toby e809deb914 Initial functionality of untar
+ Added skeleton "Tar" operation with no functionality
+ Added intial functionality of "Untar"
+ Added a function in `Utils` `HTMLFormat` to generalize HTML generation
of files and folders (could later be used in Unzip).

I had a brief search for a small library for tar and untar operations,
however they were mostly for node (if anyone finds one we can drop in
that would be appreciated) or unmaintained. Luckily the tar spec is
relatively easy to understand just from Wikipedia.
2017-02-08 00:05:52 -05:00
n1474335 b8b51e04bb Updated ISSUE_TEMPLATE.md 2017-02-07 20:30:44 +00:00
n1474335 4f0d153e73 Added 'Report a bug' tab to the 'About/Support' pane. 2017-02-07 20:31:15 +00:00
n1474335 6eacd213a3 Added ISSUE_TEMPLATE.md 2017-02-07 18:05:05 +00:00
n1474335 db0fb1cd25 Added CONTRIBUTING.md 2017-02-07 16:48:31 +00:00
n1474335 35d74980a1 BUGFIX #70: Updated 'CSS selector' operation to use vanilla JS instead of jQuery, also fixing root element selection issues. 2017-02-07 15:04:10 +00:00
n1474335 553d9945ce Added forward and backward slashes to the delimiter options for the Morse Code operations. Closes #66. 2017-02-07 14:37:26 +00:00
n1474335 3b1c378e15 Merge branch 'tlwr-master' 2017-02-07 14:20:53 +00:00
n1474335 8f69ee441e Tidied Morse Code operations to match the project conventions. 2017-02-07 14:20:34 +00:00
Toby Lorne 718e1dc153 Merge pull request #1 from artemisbot/morse-fixes
Morse fixes
2017-02-03 22:00:55 -05:00
Matt C a30babc682 Fixes required changes
gchq/CyberChef#67
2017-02-04 00:17:04 +00:00
Matt C ae8eea543c Merged branch master into morse-fixes 2017-02-04 00:13:03 +00:00
Matt C 02fce74a65 Merge remote-tracking branch 'refs/remotes/upstream/master' 2017-02-04 00:01:44 +00:00
toby b9f1cf968f Make translateTo faster and aware of line breaks
Speed improvement is due to using a function regex instead of multiple
find/replace calls.
2017-02-03 18:34:46 -05:00
toby 9bf0d66b88 Fix casing for Morse code operations + description 2017-02-03 18:00:27 -05:00
toby 230ba5ff67 Add initial functionality
Added "To Morse Code" and "From More Code" functions under the category
"Encryption / Encoding".

"To Morse Code" accepts 3 arguments:
1. Format options: e.g. ./- or Dot/Dash
2. Letter delimiter e.g. <space> or <newline>
3. Word delimiter e.g. <newline>

"From Morse Code" accepts 2 arguments:
1. Letter delimiter
2. Word delimiter
2017-02-03 16:43:30 -05:00
n1474335 e3c977934b Variable names changed from underscore to CamelCase. Eslint rules updated. #64 2017-01-31 18:24:56 +00:00
n1474335 f8193797fa Small CSS tweak to correct the cursor when hovering over FAQ links. Fixes #59. 2017-01-31 16:10:42 +00:00
n1474335 6642471164 Added 'Fork me on GitHub' ribbon to About/Support pane. Closes #57. 2017-01-31 14:05:19 +00:00
Dale Myers fadd7158ed Add string escape/unescape operations
These operations are useful for taking the contents of a string, and making it
suitable for use as a stand alone string. For example, in an IDE you might see
a string which is represented as: "Say \"Hello\"". The escaped double quotes
are shown to make it clear that they do not end the string, despite the fact
that they are not truly part of the string. In order to get the raw string, you
would need to copy this, then manually remove the backslashes. The new
String_.run_unescape operation does this automatically.

The String_.run_escape is the inverse. It allows you to take a string like the
one above, and paste it between two quotes without having to manually escape
it.
2017-01-23 21:39:08 +00:00
n1474335 3c3f5d9dcd Added Fletcher-8, -32 and -64 checksum operations. Closes #51. 2017-01-17 15:52:24 +00:00
n1474335 cddd349090 Removed unused jquery.splitter.css 2017-01-17 12:52:15 +00:00
n1474335 ba8524ca79 Added 'MD2', 'MD4' and 'SHA0' operations. Closes #52. 2017-01-16 16:40:43 +00:00
n1474335 2257754b94 Jump operations now return the final state when the maximum jump count is reached instead of throwing an error. 2017-01-16 16:00:44 +00:00
n1474335 baa433ab80 'Fork' operation now has an option to ignore errors occuring on each branch 2017-01-16 15:58:38 +00:00
n1474335 488ca7167e BUGFIX: Saved recipes can now be deleted again. 2017-01-16 15:03:16 +00:00
n1474335 4d131c921a BUGFIX #47: Replaced 'const' declarations with 'var' to fix iOS incompatibilities. 2016-12-31 17:12:39 +00:00
n1474335 216d8f1f7a Tweaks to 'Filter' operation. 2016-12-23 14:36:16 +00:00
n1474335 ca87d54aa2 Merge pull request #46 from Mikescher/feature_filter
Added operation 'Filter' to split input by regex
2016-12-23 14:24:39 +00:00
Mike Schwörer f44171c005 Merge remote-tracking branch 'upstream/master' into feature_filter 2016-12-21 20:17:53 +01:00
n1474335 ef464ab57c Added 'Substitute' operation. 2016-12-21 14:09:46 +00:00
n1474335 e1ef228575 Output buttons now adjust when there is limited screen space. 2016-12-21 12:13:03 +00:00
n1474335 9c1fb7ddf4 Added button to maximise the output window 2016-12-20 20:18:16 +00:00
n1474335 a9f15b2c64 Updated npm package versions 2016-12-20 18:57:53 +00:00
n1474335 39d50093ae Tweaks to 'XPath expression' and 'CSS selector' operations. Closes #13. 2016-12-20 18:49:25 +00:00
n1474335 650fd9a940 Merge pull request #20 from Mikescher/feature_xpath
Added operations 'XPath expression' and 'CSS selector'
2016-12-20 18:16:14 +00:00
Mike Schwörer 4b5210585a Added operation 'filter' 2016-12-17 01:53:06 +01:00
Mike Schwörer 8db1b2fc79 switched from jquery.cpath.js to xpath.js 2016-12-17 01:14:33 +01:00
Mike Schwörer dea16f63f5 Small stuff to make eslint happy 2016-12-16 22:32:19 +01:00
Mike Schwörer 4c36123fd7 Merge remote-tracking branch 'upstream/master' into feature_xpath
# Conflicts:
#	Gruntfile.js
#	src/js/.jshintrc
2016-12-16 22:15:53 +01:00
Matt C c24cdf3bae Merge remote-tracking branch 'refs/remotes/upstream/master' 2016-12-14 23:31:04 +00:00
n1474335 af4644c9eb Replaced jsHint with eslint. Fixes #4. 2016-12-14 16:39:17 +00:00
n1474335 e2e68dd876 BUGFIX: Fixed seasonal event handling. 2016-12-14 13:12:04 +00:00
n1474335 351eef7fd9 BUGFIX: Flow control ops are now correctly highlighted when a breakpoint is triggered on them. 2016-12-14 12:43:57 +00:00
Matt C ed5f00d402 Merge remote-tracking branch 'refs/remotes/upstream/master'
Conflicts:
	build/prod/cyberchef.htm
	build/prod/index.html
	build/prod/scripts.js
	src/static/stats.txt
2016-12-08 09:18:14 +00:00
n1474335 7994a65926 Merge branch 'artemisbot-feature_vigenere' 2016-12-08 00:35:01 +00:00
n1474335 55c1626d41 Cleaned up the Vigenere cipher operations so that they conform with the coding conventions. 2016-12-08 00:34:41 +00:00
n1474335 e5854b6f86 Resolving conflicts 2016-12-08 00:09:31 +00:00
n1474335 ed7cab36d2 BUGFIX: Operations can now be dragged out of the recipe on touchscreen devices. 2016-12-07 23:57:15 +00:00
Matt C e64dfcdf0f Build
Final ROT-47 + probably final vig
2016-12-06 20:28:20 +00:00
Matt C ac3a0b35f5 Merge branch 'feature_vigenere'
Conflicts:
	build/prod/cyberchef.htm
	build/prod/index.html
	build/prod/scripts.js
	src/static/stats.txt
2016-12-06 20:27:14 +00:00
Matt C 22c00e8d3c Merge remote-tracking branch 'refs/remotes/upstream/master'
Conflicts:
	build/prod/cyberchef.htm
	build/prod/index.html
	build/prod/scripts.js
	src/static/stats.txt
2016-12-06 20:23:20 +00:00
Matt C b36459064e Changes for merge
- Removed conflicting build files
- Moved @author tags
2016-12-06 20:20:27 +00:00
n1474335 b0fd297069 Merge branch 'artemisbot-feature_rot47' 2016-12-06 18:45:51 +00:00
n1474335 6fa6a92719 Moved author tag and improved description for ROT47 2016-12-06 18:43:55 +00:00
n1474335 2db810289d Merge conflicts 2016-12-06 18:32:39 +00:00
n1474335 86fb03fe10 BUGFIX #37: Description popovers for search results now get removed when the list is modified. 2016-12-06 18:10:35 +00:00
Matt C 326e15d05c Built production version.
- Includes both ROT-47 and Vigenere
2016-12-06 17:10:42 +00:00
Matt C f2b22605ab Merge branch 'feature_vigenere'
Conflicts:
	build/prod/cyberchef.htm
	build/prod/index.html
	build/prod/scripts.js
	src/static/stats.txt
2016-12-06 17:08:45 +00:00
Matt C 44919b8c17 Merge remote-tracking branch 'refs/remotes/upstream/master'
Conflicts:
	build/prod/cyberchef.htm
	build/prod/index.html
	build/prod/scripts.js
	src/static/stats.txt
2016-12-06 17:02:17 +00:00
Matt C 605a577d92 Merge remote-tracking branch 'refs/remotes/upstream/master'
Conflicts:
	build/prod/cyberchef.htm
	build/prod/index.html
	build/prod/scripts.js
	src/static/stats.txt
2016-12-06 17:01:35 +00:00
Mike Schwörer 5c92e49d5d Merge remote-tracking branch 'upstream/master' into feature_xpath 2016-12-05 20:16:39 +01:00
Mike Schwörer 662805d11e fixed a few jshint warnings and uglify:prod problems 2016-12-05 20:03:33 +01:00
Mike Schwörer da7a832ceb Merge remote-tracking branch 'upstream/master' into feature_xpath 2016-12-05 19:30:46 +01:00
n1474335 e4d30861d5 BIGFIX: 'Show Base64 Offsets' operation now escapes input before adding to tooltips. 2016-12-05 14:07:19 +00:00
Matt C b631feea74 Misc Fixes
- Built prod version
- added missing semicolons
2016-12-03 21:33:19 +00:00
Matt C 560712cee3 Feature: Add Vigenere Cipher Encode & Decode
- Added Vigenere Encode & Decode
- Added metadata for /config/ relating to this additon
2016-12-03 20:54:28 +00:00
Matt C 67ee8544e9 Added name to Rotate namespace 2016-12-03 13:47:38 +00:00
Matt C 1cc48fd481 Update for merge
- Added to Categories
- Removed comment
- Rebuilt pages
2016-12-03 10:19:26 +00:00
Matt C 4101152c73 Merge remote-tracking branch 'refs/remotes/upstream/master'
Conflicts:
	build/prod/cyberchef.htm
	build/prod/index.html
	build/prod/scripts.js
	src/static/stats.txt
2016-12-03 10:15:00 +00:00
n1474335 20d9903572 XOR operation now supports both input and output differentials. Fixes #17 2016-12-03 01:42:23 +00:00
n1474335 fc9d0a63c2 JSON Beautify and Minify operations no longer throw an error on empty input. Fixes #29 2016-12-03 00:51:17 +00:00
n1474335 19b0a972d8 Inlined version now correctly displays compile time in place of the download link. Fixes #14. 2016-12-03 00:40:51 +00:00
n1474335 43fa4370a3 Added Grunt task to deploy build/prod to the gh-pages branch. Partial solution to #19. 2016-12-03 00:37:38 +00:00
Schwörer Mike 2db6f8f63c added css_query operation 2016-12-02 12:49:49 +01:00
Matt C 09a9fbe206 Built production version 2016-12-01 23:09:18 +00:00
Matt C ca8fef1c90 Merge Upstream. 2016-12-01 22:55:09 +00:00
n1474335 8b0112229e BUGFIX #24: Invalid favourites loaded from localStorage are now escaped when reported to the user. 2016-11-30 23:11:06 +00:00
n1474335 8882805830 Favicon changed to a data URL to prevent re-requests in some circumstances. #21 2016-11-30 19:50:21 +00:00
n1474335 2f0bc54046 BUGFIX #24: toggle_string arguments are now escaped before being inserted into the DOM. 2016-11-30 19:33:20 +00:00
Schwörer Mike d5f84abb3b declare function as const and added Node.DOCUMENT_NODE 2016-11-30 12:23:19 +01:00
Schwörer Mike befb89ba76 reverted .gitignore and no for-loop in run_xpath 2016-11-30 09:56:02 +01:00
Mike Schwörer 51b627ab29 Added operation: "XPath expression" 2016-11-29 19:59:51 +01:00
Matt C 9ab5fb5469 Built webpage for previous commit. 2016-11-29 18:03:13 +00:00
Matt C 20d4e5d263 FEATURE: Added ROT47 support.
Added support for ROT 47 Variation of Caesar Cipher.
2016-11-29 17:53:31 +00:00
n1474335 09d515cbae Merge pull request #12 from WrathZA/master
'Download CyberChef' link now downloads the HTML file when clicked in browsers rather than displaying it
2016-11-29 16:46:28 +00:00
WrathZA 405d956080 Added download attribute 2016-11-29 11:22:41 +02:00
WrathZA 75fd16a600 Added download attribute to <a> tag
Added download attribute to <a> tag
2016-11-29 11:21:53 +02:00
n1474335 94c631a928 Example links updated and stats recalculated. 2016-11-28 11:36:58 +00:00
n1474335 8342595dca Demo and wiki links updated. 2016-11-28 11:13:01 +00:00
n1474335 b1d73a725d Initial commit 2016-11-28 10:42:58 +00:00
480 changed files with 65439 additions and 23731 deletions

No files matched your search

+19
View File
@@ -0,0 +1,19 @@
{
"presets": [
["env", {
"targets": {
"chrome": 40,
"firefox": 35,
"edge": 14,
"node": "6.5"
},
"modules": false,
"useBuiltIns": true
}]
],
"plugins": [
["babel-plugin-transform-builtin-extend", {
"globals": ["Error"]
}]
]
}
+14
View File
@@ -0,0 +1,14 @@
# top-most EditorConfig file
root = true
[*]
charset = utf-8
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true
indent_style = space
indent_size = 4
[{package.json,.travis.yml}]
indent_style = space
indent_size = 2
+1
View File
@@ -0,0 +1 @@
src/core/vendor/**
Executable
+102
View File
@@ -0,0 +1,102 @@
{
"parserOptions": {
"ecmaVersion": 9,
"ecmaFeatures": {
"impliedStrict": true
},
"sourceType": "module"
},
"env": {
"browser": true,
"es6": true,
"node": true
},
"extends": "eslint:recommended",
"rules": {
// enable additional rules
"no-eval": "error",
"no-implied-eval": "error",
"dot-notation": "error",
"eqeqeq": ["error", "smart"],
"no-caller": "error",
"no-extra-bind": "error",
"no-unused-expressions": "error",
"no-useless-call": "error",
"no-useless-return": "error",
"radix": "warn",
// modify rules from base configurations
"no-unused-vars": ["error", {
"args": "none",
"vars": "all"
}],
"no-empty": ["error", {
"allowEmptyCatch": true
}],
// disable rules from base configurations
"no-control-regex": "off",
// stylistic conventions
"brace-style": ["error", "1tbs"],
"block-spacing": "error",
"array-bracket-spacing": "error",
"comma-spacing": "error",
"comma-style": "error",
"computed-property-spacing": "error",
"no-trailing-spaces": "warn",
"eol-last": "error",
"func-call-spacing": "error",
"key-spacing": ["warn", {
"mode": "minimum"
}],
"indent": ["error", 4, {
"ignoreComments": true,
"ArrayExpression": "first",
"SwitchCase": 1
}],
"linebreak-style": ["error", "unix"],
"quotes": ["error", "double", {
"avoidEscape": true
}],
"camelcase": ["error", {
"properties": "always"
}],
"semi": ["error", "always"],
"unicode-bom": "error",
"require-jsdoc": ["error", {
"require": {
"FunctionDeclaration": true,
"MethodDefinition": true,
"ClassDeclaration": true,
"ArrowFunctionExpression": true
}
}],
"keyword-spacing": ["error", {
"before": true,
"after": true
}],
"no-multiple-empty-lines": ["warn", {
"max": 2,
"maxEOF": 1,
"maxBOF": 0
}],
"no-whitespace-before-property": "error",
"operator-linebreak": ["error", "after"],
"space-in-parens": "error",
"no-var": "error",
"prefer-const": "error"
},
"globals": {
"$": false,
"jQuery": false,
"log": false,
"COMPILE_TIME": false,
"COMPILE_MSG": false,
"PKG_VERSION": false,
"ENVIRONMENT_IS_WORKER": false,
"ENVIRONMENT_IS_NODE": false,
"ENVIRONMENT_IS_WEB": false
}
}
+37
View File
@@ -0,0 +1,37 @@
# Contributing
Take a look through the [Wiki pages](https://github.com/gchq/CyberChef/wiki) for guides on [compiling CyberChef](https://github.com/gchq/CyberChef/wiki/Getting-started) and [adding new operations](https://github.com/gchq/CyberChef/wiki/Adding-a-new-operation).
There are lots of opportunities to contribute to CyberChef. If you want ideas, take a look at any [Issues](https://github.com/gchq/CyberChef/issues) tagged with '[help wanted](https://github.com/gchq/CyberChef/labels/help%20wanted)'.
Before your contributions can be accepted, you must:
- Sign the [GCHQ Contributor Licence Agreement](https://github.com/gchq/Gaffer/wiki/GCHQ-OSS-Contributor-License-Agreement-V1.0)
- Push your changes to your fork.
- Submit a pull request.
## Coding conventions
* Indentation: Each block should consist of 4 spaces
* Object/namespace identifiers: CamelCase
* Function/variable names: camelCase
* Constants: UNDERSCORE_UPPER_CASE
* Source code encoding: UTF-8 (without BOM)
* All source files must end with a newline
* Line endings: UNIX style (\n)
## Design Principals
1. If at all possible, all operations and features should be client-side and not rely on connections to an external server. This increases the utility of CyberChef on closed networks and in virtual machines that are not connected to the Internet. Calls to external APIs may be accepted if there is no other option, but not for critical components.
2. Latency should be kept to a minimum to enhance the user experience. This means that all operation code should sit on the client, rather than being loaded dynamically from a server.
3. Use Vanilla JS if at all possible to reduce the number of libraries required and relied upon. Frameworks like jQuery, although included, should not be used unless absolutely necessary.
4. Minimise the use of large libraries, especially for niche operations that won't be used very often - these will be downloaded by everyone using the app, whether they use that operation or not (due to principal 2).
With these principals in mind, any changes or additions to CyberChef should keep it:
- Standalone
- Efficient
- As small as possible
+14
View File
@@ -0,0 +1,14 @@
<!-- Prefix the title above with one of the following: -->
<!-- Bug report: -->
<!-- Operation request: -->
<!-- Feature request: -->
<!-- Misc: -->
### Summary
### Example
<!-- If describing a bug, tell us what happens instead of the expected behavior -->
<!-- Include a link that triggers the bug if possible -->
<!-- If you are requesting a new operation, include example input and output -->
Executable
+12
View File
@@ -0,0 +1,12 @@
node_modules
npm-debug.log
travis.log
build
docs/*
!docs/*.conf.json
!docs/*.ico
.vscode
src/core/config/modules/*
src/core/config/OperationConfig.json
src/core/operations/index.mjs
Executable
+8
View File
@@ -0,0 +1,8 @@
node_modules
npm-debug.log
travis.log
build/*
!build/node
docs
.vscode
.github
+49
View File
@@ -0,0 +1,49 @@
language: node_js
node_js:
- node
install: npm install
before_script:
- npm install -g grunt
script:
- grunt lint
- grunt test
- grunt docs
- grunt node
- grunt prod --msg="$COMPILE_MSG"
before_deploy:
- grunt exec:sitemap
- grunt copy:ghPages
deploy:
- provider: pages
skip_cleanup: true
github_token: $GITHUB_TOKEN
local_dir: build/prod/
target_branch: gh-pages
on:
repo: gchq/CyberChef
branch: master
- provider: releases
skip_cleanup: true
api_key:
secure: "HV1WSKv4l/0Y2bKKs1iBJocBcmLj08PCRUeEM/jTwA4jqJ8EiLHWiXtER/D5sEg2iibRVKd2OQjfrmS6bo4AiwdeVgAKmv0FtS2Jw+391N8Nd5AkEANHa5Om/IpHLTL2YRAjpJTsDpY72bMUTJIwjQA3TFJkgrpOw6KYfohOcgbxLpZ4XuNJRU3VL4Hsxdv5V9aOVmfFOmMOVPQlakXy7NgtW5POp1f2WJwgcZxylkR1CjwaqMyXmSoVl46pyH3tr5+dptsQoKSGdi6sIHGA60oDotFPcm+0ifa47wZw+vapuuDi4tdNxhrHGaDMG8xiE0WFDHwQUDlk2/+W7j9SEX0H3Em7us371JXRp56EDwEcDa34VpVkC6i8HGcHK55hnxVbMZXGf3qhOFD8wY7qMbjMRvIpucrMHBi86OfkDfv0vDj2LyvIl5APj/AX50BrE0tfH1MZbH26Jkx4NdlkcxQ14GumarmUqfmVvbX/fsoA6oUuAAE9ZgRRi3KHO4wci6KUcRfdm+XOeUkaBFsL86G3EEYIvrtBTuaypdz+Cx7nd1iPZyWMx5Y1gXnVzha4nBdV4+7l9JIsFggD8QVpw2uHXQiS1KXFjOeqA3DBD8tjMB7q26Fl2fD3jkOo4BTbQ2NrRIZUu/iL+fOmMPsyMt2qulB0yaSBCfkbEq8xrUA="
file:
- build/prod/cyberchef.htm
- build/node/CyberChef.js
on:
repo: gchq/CyberChef
tags: true
- provider: npm
skip_cleanup: true
email: "n1474335@gmail.com"
api_key:
secure: "Z3FK6bm4RfQEIRXZ1lBNzQkVIoHpivThr9U+XBHmsBgIfdrK/XUnzs/slugo+NIz8nPiGmMx4gxyJonBCLHDGb1ysky2aEWTl26c0teaF4DeQEjWC1ZaGzv8MV1/GkUamnr1qouXjyUhyEAp33rd8ccN9Rq3QNYB/qLDcA9/FCme7JCW6sCd4zWO0LGEYMJEMc2FzAUkqhqsI05hegGhSDgKXRn5PmLARek4yHD+Hx7pstaTeQIy0WoGJjdzoB3iJIMmo/hWZGzZafktUOh223c5qzx4zMpDRNmMngBUw6R94nKd4KvplYRgB87Y3L/aiVU4CF+axwLmK8RPaC1wbJnlHf06zxHPdiFmsY/zKPpNel+nOnxzRrF5l2KMU4TU6gug3s9Jnzp9T5UMfhp0jW3YkxHGeuOPOeE1i0lTUWUGWrPHLQquAhLfkr2zxaU4ETk/y85hq9W4LAy0ENEDVXX2jP7FnI4Z1fdpmljpmVNJR+outPg6t+Coqgvil7v7XpMtDm8lKQanVYuxwmkb/ncOWFRWuM2j5zIEg3CHnFDcJ9bYrfKRg0b0tb/2BWD14pQnV76goVwzJQYVzdPc8TKIYJw2BZ1Nh9c0iruQVebe/6l1FX9fDCkz8VMmltni61/LxZrf8y0NT1YaU1raeNY2dH5UWvEa9p72FPMI6Eg="
on:
tags: true
branch: master
notifications:
webhooks:
urls:
- https://webhooks.gitter.im/e/83c143a6822e218d5b34
on_success: change
on_failure: always
on_start: never
-39
View File
@@ -1,39 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>cyberchef [14 Jul 2023 at 18:06]</title>
<link rel="shortcut icon" href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAMAAACdt4HsAAABrVBMVEUAAAD///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+O1foceMD///+J0/qK1Pr7/v8Xdr/9///W8P4UdL7L7P0Scr2r4Pyj3vwad8D5/f/2/f+55f3E6f34+/2H0/ojfMKpzOd0rNgQcb3F3O/j9f7c8v6g3Pz0/P/w+v/q+P7n9v6T1/uQ1vuE0vqLut/y+v+Z2fvt+f+15Pzv9fuc2/vR7v2V2Pvd6/bg9P7I6/285/2y4/yp3/zp8vk8i8kqgMT7/P31+fyv4vxGkcz6/P6/6P3j7vfS5PNnpNUxhcbO7f7F6v3O4vHK3/DA2u631Ouy0eqXweKJud5wqthfoNMMbLvY8f73+v2dxeR8sNtTmdDx9/zX6PSjyeaCtd1YnNGX2PuQveCGt95Nls42h8dLlM3F4vBtAAAAM3RSTlMAAyOx0/sKBvik8opWGBMOAe3l1snDm2E9LSb06eHcu5JpHbarfHZCN9CBb08zzkdNS0kYaptYAAAFV0lEQVRYw92X51/aYBDHHS2O2qqttVbrqNq9m+TJIAYIShBkWwqIiCgoWvfeq7Z2/s29hyQNyUcR7LveGwVyXy6XH8/9rqxglLfUPLxVduUor3h0rfp2TYvpivk37929TkG037hffoX0+peVtZQc1589rigVUdXS/ABSAyEmGIO/1XfvldSK8vs3OqB6u3m0nxmIrvgB0dj7rr7Y9IbuF68hnfFaiHA/sxqm0wciIG43P60qKv9WXWc1RXGh/mFESFABTSBi0sNAKzqet17eCtOb3kZIDwxEEU0oAIJGYxNBDhBND29e0rtXXbcpuPmED9IhEAAQ/AXEaF8EPmnrrKsv0LvWR3fg5sWDNAFZOgAgaKvZDogHNU9MFwnnYROkc56RD5CjAbQX9Ow4g7upCsvYu55aSI/Nj0H1akgKQEUM94dwK65hYRmFU9MIcH/fqJYOZYcnuJSU/waKDgTOEVaVKhwrTRP5XzgSpAITYzom7UvkhFX5VutmxeNnWDjjswTKTyfgluNDGbUpWissXhF3s7mlSml+czWkg3D0l1nNjGNjz3myOQOa1KM/jOS6ebdbAVTCi4gljHSFrviza7tOgRWcS0MOUX9zdNgag5w7rRqA44Lzw0hr1WqES36dFliSJFlh2rXIae3FFcDDgKdxrUIDePr8jGcSClV1u7A9xeN0ModY/pHMxmR1EzRh8TJiwqsHmKW0l4FCEZI+jHio+JdPPE9qwQtTRxku2D8sIeRL2LnxWSllANCQGOIiqVHAz2ye2JR0DcH+HoxDkaADLjgxjKQ+AwCX/g0+DNgdG0ukYCONAe+dbc2IAc6fwt1ARoDSezNHxV2Cmzwv3O6lDMV55edBGwGK9n1+x2F8EDfAGCxug8MhpsMEcTEAWf3rx2vZhe/LAmtIn/6apE6PN0ULKgywD9mmdxbmFl3OvD5AS5fW5zLbv/YHmcsBTjf/afDz3MaZTVCfAP9z6/Bw6ycv8EUBWJIn9zYcoAWWlW9+OzO3vkTy8H+RANLmdrpOuYWdZYEXpo+TlCJrW5EARb7fF+bWdqf3hhyZI1nWJQHgznErZhbjoEsWqi8dQNoE294aldzFurwSABL2XXMf9+H1VQGke9exw5P/AnA5Pv5ngMul7LOvO922iwACu8WkCwLCafvM4CeWPxfA8lNHcWZSoi8EwMAIciKX2Z4SWCMAa3snCZ/G4EA8D6CMLNFsGQhkkz/gQNEBbPCbWsxGUpYVu3z8IyNAknwJkfPMEhLyrdi5RTyUVACkw4GSFRNWJNEW+fgPGwHD8/JxnRuLabN4CGNRkAE23na2+VmEAUmrYymSGjMAYqH84YUIyzgzs3XC7gNgH36Vcc4zKY9o9fgPBXUAiHHwVboBHGLiX6Zcjp1f2wu4tvzZKo0ecPnDtQYDQvJXaBeNzce45Fp28ZQLrEZVuFqgBwOalArKXnW1UzlnSusQKJqKYNuz4tOnI6sZG4zanpemv+7ySU2jbA9h6uhcgpfy6G2PahirDZ6zvq6zDduMVFTKvzw8wgyEdelwY9in3XkEPs3osJuwRQ4qTkfzifndg9Gfc4pdsu82+tTnHZTBa2EAMrqr2t43pguc8tNm7JQVQ2S0ukj2d22dhXYP0/veWtwKrCkNoNimAN5+Xr/oLrxswKbVJjteWrX7eR63o4j9q0GxnaBdWgGA5VStpanIjQmEhV0/nVt5VOFUvix6awJhPcAaTEShgrG+iGyvb5a0Ndb1YGHFPEwoqAinoaykaID1o1pdPNu7XsnCKQ3R+hwWIIhGvORcJUBYXe3Xa3vq/mF/N9V13ugufMkfXn+KHsRD0B8AAAAASUVORK5CYII=" type="image/x-icon" />
<script>
window.enableWebSocket = false;
</script>
<!-- viewer.js -->
<script>/*! For license information please see viewer.js.LICENSE.txt */
(()=>{var e={4184:(e,t)=>{var n;
/*!
Copyright (c) 2018 Jed Watson.
Licensed under the MIT License (MIT), see
http://jedwatson.github.io/classnames
*/!function(){"use strict";var r={}.hasOwnProperty;function i(){for(var e=[],t=0;t<arguments.length;t++){var n=arguments[t];if(n){var o=typeof n;if("string"===o||"number"===o)e.push(n);else if(Array.isArray(n)){if(n.length){var a=i.apply(null,n);a&&e.push(a)}}else if("object"===o)if(n.toString===Object.prototype.toString)for(var s in n)r.call(n,s)&&n[s]&&e.push(s);else e.push(n.toString())}}return e.join(" ")}e.exports?(i.default=i,e.exports=i):void 0===(n=function(){return i}.apply(t,[]))||(e.exports=n)}()},3908:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var r=n(4015),i=n.n(r),o=n(3645),a=n.n(o)()(i());a.push([e.id,".Button__button{background:#fff;border:1px solid #aaa;border-radius:4px;cursor:pointer;display:inline-block;font:var(--main-font);outline:none;padding:5px 7px;transition:background .3s ease;white-space:nowrap}.Button__button:focus,.Button__button:hover{background:#ffefd7}.Button__button.Button__active{background:orange;color:#000}.Button__button[disabled]{cursor:default}","",{version:3,sources:["webpack://./client/components/Button.css"],names:[],mappings:"AAAA,gBACE,eAAgB,CAChB,qBAAsB,CACtB,iBAAkB,CAClB,cAAe,CACf,oBAAqB,CACrB,qBAAsB,CACtB,YAAa,CACb,eAAgB,CAChB,8BAA+B,CAC/B,kBACF,CAEA,4CAEE,kBACF,CAEA,+BACE,iBAAmB,CACnB,UACF,CAEA,0BACE,cACF",sourcesContent:[".button {\n background: #fff;\n border: 1px solid #aaa;\n border-radius: 4px;\n cursor: pointer;\n display: inline-block;\n font: var(--main-font);\n outline: none;\n padding: 5px 7px;\n transition: background .3s ease;\n white-space: nowrap;\n}\n\n.button:focus,\n.button:hover {\n background: #ffefd7;\n}\n\n.button.active {\n background: #ffa500;\n color: #000;\n}\n\n.button[disabled] {\n cursor: default;\n}\n"],sourceRoot:""}]),a.locals={button:"Button__button",active:"Button__active"};const s=a},2396:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var r=n(4015),i=n.n(r),o=n(3645),a=n.n(o)()(i());a.push([e.id,".Checkbox__label{display:inline-block}.Checkbox__checkbox,.Checkbox__label{cursor:pointer}.Checkbox__itemText{margin-left:3px;position:relative;top:-2px;vertical-align:middle}","",{version:3,sources:["webpack://./client/components/Checkbox.css"],names:[],mappings:"AAAA,iBAEE,oBACF,CAEA,qCAJE,cAMF,CAEA,oBACE,eAAgB,CAChB,iBAAkB,CAClB,QAAS,CACT,qBACF",sourcesContent:[".label {\n cursor: pointer;\n display: inline-block;\n}\n\n.checkbox {\n cursor: pointer;\n}\n\n.itemText {\n margin-left: 3px;\n position: relative;\n top: -2px;\n vertical-align: middle;\n}\n"],sourceRoot:""}]),a.locals={label:"Checkbox__label",checkbox:"Checkbox__checkbox",itemText:"Checkbox__itemText"};const s=a},3213:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var r=n(4015),i=n.n(r),o=n(3645),a=n.n(o)()(i());a.push([e.id,".CheckboxList__container{font:var(--main-font);white-space:nowrap}.CheckboxList__label{font-size:11px;font-weight:700;margin-bottom:7px}.CheckboxList__item+.CheckboxList__item{margin-top:1px}","",{version:3,sources:["webpack://./client/components/CheckboxList.css"],names:[],mappings:"AAAA,yBACE,qBAAsB,CACtB,kBACF,CAEA,qBACE,cAAe,CACf,eAAiB,CACjB,iBACF,CAEA,wCACE,cACF",sourcesContent:[".container {\n font: var(--main-font);\n white-space: nowrap;\n}\n\n.label {\n font-size: 11px;\n font-weight: bold;\n margin-bottom: 7px;\n}\n\n.item + .item {\n margin-top: 1px;\n}\n"],sourceRoot:""}]),a.locals={container:"CheckboxList__container",label:"CheckboxList__label",item:"CheckboxList__item"};const s=a},580:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var r=n(4015),i=n.n(r),o=n(3645),a=n.n(o)()(i());a.push([e.id,".ContextMenu__container{background:#fff;border:1px solid #aaa;border-radius:4px;font:var(--main-font);list-style:none;opacity:1;padding:0;position:absolute;transition:opacity .2s ease,visibility .2s ease;visibility:visible;white-space:nowrap}.ContextMenu__hidden{opacity:0;visibility:hidden}","",{version:3,sources:["webpack://./client/components/ContextMenu.css"],names:[],mappings:"AAAA,wBAKE,eAAgB,CAChB,qBAAsB,CAFtB,iBAAkB,CAHlB,qBAAsB,CAMtB,eAAgB,CAChB,SAAU,CALV,SAAU,CADV,iBAAkB,CASlB,+CAAiD,CADjD,kBAAmB,CADnB,kBAGF,CAEA,qBACE,SAAU,CACV,iBACF",sourcesContent:[".container {\n font: var(--main-font);\n position: absolute;\n padding: 0;\n border-radius: 4px;\n background: #fff;\n border: 1px solid #aaa;\n list-style: none;\n opacity: 1;\n white-space: nowrap;\n visibility: visible;\n transition: opacity .2s ease, visibility .2s ease;\n}\n\n.hidden {\n opacity: 0;\n visibility: hidden;\n}\n"],sourceRoot:""}]),a.locals={container:"ContextMenu__container",hidden:"ContextMenu__hidden"};const s=a},9270:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var r=n(4015),i=n.n(r),o=n(3645),a=n.n(o)()(i());a.push([e.id,".ContextMenuItem__item{cursor:pointer;margin:0;padding:8px 14px;-webkit-user-select:none;user-select:none}.ContextMenuItem__item:hover{background:#ffefd7}.ContextMenuItem__disabled{color:grey;cursor:default}.ContextMenuItem__item.ContextMenuItem__disabled:hover{background:transparent}","",{version:3,sources:["webpack://./client/componenLine truncated
/**
* Carrot Search FoamTree HTML5 (demo variant)
* v3.5.0, bugfix/3.5.x/e3b91c8e, build FOAMTREE-SOFTWARE5-DIST-3, Jan 18, 2021
*
* Carrot Search confidential.
* Copyright 2002-2021, Carrot Search s.c, All Rights Reserved.
*/
!function(){var e,t=function(){var e=window.navigator.userAgent;try{window.localStorage.setItem("ftap5caavc","ftap5caavc"),window.localStorage.removeItem("ftap5caavc");var n=!0}catch(r){n=!1}return{Se:function(){return/webkit/i.test(e)},Lh:function(){return/Mac/.test(e)},Qe:function(){return/iPad|iPod|iPhone/.test(e)},Kh:function(){return/Android/.test(e)},Gh:function(){return"ontouchstart"in window||!!window.DocumentTouch&&document instanceof window.DocumentTouch},Fh:function(){return n},Eh:function(){var e=document.createElement("canvas");return!(!e.getContext||!e.getContext("2d"))},md:function(e,n){return[].forEach&&t.Eh()?e&&e():n&&n()}}}(),n=function(){function e(){return window.performance&&(window.performance.now||window.performance.mozNow||window.performance.msNow||window.performance.oNow||window.performance.webkitNow)||Date.now}var t=e();return{create:function(){return{now:function(){var t=e();return function(){return t.call(window.performance)}}()}},now:function(){return t.call(window.performance)}}}();function r(){function r(){if(!u)throw"AF0";var e=n.now();0!==l&&(o.sd=e-l),l=e,s=s.filter((function(e){return null!==e})),o.frames++;for(var t=0;t<s.length;t++){var r=s[t];null!==r&&(!0===r.ee.call(r.context)?s[t]=null:y.zc(r.repeat)&&(r.repeat=r.repeat-1,0>=r.repeat&&(s[t]=null)))}s=s.filter((function(e){return null!==e})),u=!1,i(),0!==(e=n.now()-e)&&(o.rd=e),o.totalTime+=e,o.ue=1e3*o.frames/o.totalTime,l=0===s.length?0:n.now()}function i(){0<s.length&&!u&&(u=!0,a(r))}var o=this.Wf={frames:0,totalTime:0,rd:0,sd:0,ue:0};e=o;var a=t.Qe()?function(e){window.setTimeout(e,0)}:window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(){var e=n.create();return function(t){var n=0;window.setTimeout((function(){var r=e.now();t(),n=e.now()-r}),16>n?16-n:0)}}(),s=[],u=!1,l=0;this.repeat=function(e,t,n){this.cancel(e),s.push({ee:e,context:n,repeat:t}),i()},this.once=function(e,t){this.repeat(e,1,t)},this.cancel=function(e){for(var t=0;t<s.length;t++){var n=s[t];null!==n&&n.ee===e&&(s[t]=null)}},this.i=function(){s=[]}}var i=t.md((function(){function e(){this.buffer=[],this.ma=0,this.current=y.extend({},s)}function t(e){return function(){var t,n=this.buffer,r=this.ma;for(n[r++]="call",n[r++]=e,n[r++]=arguments.length,t=0;t<arguments.length;t++)n[r++]=arguments[t];this.ma=r}}function n(e){return function(){return o[e].apply(o,arguments)}}var r=document.createElement("canvas");r.width=1,r.height=1;var o=r.getContext("2d");r=["font"];var a="fillStyle globalAlpha globalCompositeOperation lineCap lineDashOffset lineJoin lineWidth miterLimit shadowBlur shadowColor shadowOffsetX shadowOffsetY strokeStyle textAlign textBaseline".split(" "),s={};return a.concat(r).forEach((function(e){s[e]=o[e]})),e.prototype.clear=function(){this.ma=0},e.prototype.Ga=function(){return 0===this.ma},e.prototype.Na=function(e){e instanceof i?function(e,t,n){for(var r=0,i=e.ma,o=e.buffer;r<n;)o[i++]=t[r++];e.ma=i}(e,this.buffer,this.ma):function(e,t,n,r){for(var i=0;i<n;)switch(t[i++]){case"set":e[t[i++]]=t[i++];break;case"setGlobalAlpha":e[t[i++]]=t[i++]*r;break;case"call":var o=t[i++];switch(t[i++]){case 0:e[o]();break;case 1:e[o](t[i++]);break;case 2:e[o](t[i++],t[i++]);break;case 3:e[o](t[i++],t[i++],t[i++]);break;case 4:e[o](t[i++],t[i++],t[i++],t[i++]);break;case 5:e[o](t[i++],t[i++],t[i++],t[i++],t[i++]);break;case 6:e[o](t[i++],t[i++],t[i++],t[i++],t[i++],t[i++]);break;case 7:e[o](t[i++],t[i++],t[i++],t[i++],t[i++],t[i++],t[i++]);break;case 8:e[o](t[i++],t[i++],t[i++],t[i++],t[i++],t[i++],t[i++],t[i++]);break;case 9:e[o](t[i++],t[i++],t[i++],t[i++],t[i++],t[i++],t[i++],t[i++],t[i++]);break;default:throw"CB0"}}}(e,this.buffer,this.ma,y.I(e.globalAlpha,1))},e.prototype.replay=e.prototype.Na,e.prototype.i=function(){return new e},e.prototype.scratch=e.prototype.i,"arc arcTo beginPath bezierCurveTo clearRect clip closePath drawImage fill fillRect fillText lineTo moveTo putImageData quadraticCurveTo rect rotate scale setLineDash setTransform stroke strokeRect strokeText transform translate".split(" ").forEach((function(n){e.prototype[n]=t(n)})),["measureText","createLinearGradient","createRadialGradient","createPattern","getLineDash"].forEach((function(t){e.prototype[t]=n(t)})),["save","restore"].forEach((function(r){var i=n(r),o=t(r);e.prototype[r]=function(e,t){return function(){e.apply(this,arguments),t.apply(this,arguments)}}(o,i)})),r.forEach((function(t){Object.defineProperty(e.prototype,t,{set:function(e){o[t]=e,this.current[t]=e;var n=this.buffer;n[this.ma++]="set",n[this.ma++]=t,n[this.ma++]=e},get:function(){return this.current[t]}})})),a.forEach((function(t){Object.defineProperty(e.prototype,t,{set:function(e){this.current[t]=e;var n=this.buffer;n[this.ma++]="globalAlpha"===t?"setGlobalAlpha":"set",n[this.ma++]=t,n[this.ma++]=e},get:function(){return this.current[t]}})})),e.prototype.roundRect=function(e,t,n,r,i){Line truncated
//# sourceMappingURL=viewer.js.map</script>
</head>
<body>
<div id="app"></div>
<script>
window.chartData = [{"label":"assets/main.js","isAsset":true,"statSize":12434821,"parsedSize":9962239,"gzipSize":2794965,"groups":[{"label":"node_modules","path":"./node_modules","statSize":5362287,"groups":[{"label":"@babel/runtime","path":"./node_modules/@babel/runtime","statSize":22510,"groups":[{"label":"helpers","path":"./node_modules/@babel/runtime/helpers","statSize":22062,"groups":[{"id":17061,"label":"regeneratorRuntime.js","path":"./node_modules/@babel/runtime/helpers/regeneratorRuntime.js","statSize":14062,"parsedSize":6769,"gzipSize":2473},{"id":18698,"label":"typeof.js","path":"./node_modules/@babel/runtime/helpers/typeof.js","statSize":554,"parsedSize":360,"gzipSize":177},{"label":"esm","path":"./node_modules/@babel/runtime/helpers/esm","statSize":7446,"groups":[{"id":30907,"label":"arrayLikeToArray.js","path":"./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","statSize":200,"parsedSize":146,"gzipSize":143},{"id":83878,"label":"arrayWithHoles.js","path":"./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","statSize":86,"parsedSize":83,"gzipSize":97},{"id":45057,"label":"arrayWithoutHoles.js","path":"./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","statSize":161,"parsedSize":107,"gzipSize":118},{"id":97326,"label":"assertThisInitialized.js","path":"./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","statSize":191,"parsedSize":163,"gzipSize":148},{"id":15861,"label":"asyncToGenerator.js","path":"./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","statSize":780,"parsedSize":356,"gzipSize":237},{"id":15671,"label":"classCallCheck.js","path":"./node_modules/@babel/runtime/helpers/esm/classCallCheck.js","statSize":176,"parsedSize":134,"gzipSize":132},{"id":43144,"label":"createClass.js","path":"./node_modules/@babel/runtime/helpers/esm/createClass.js","statSize":719,"parsedSize":339,"gzipSize":245},{"id":61120,"label":"getPrototypeOf.js","path":"./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","statSize":237,"parsedSize":177,"gzipSize":140},{"id":60136,"label":"inherits.js","path":"./node_modules/@babel/runtime/helpers/esm/inherits.js","statSize":564,"parsedSize":341,"gzipSize":254},{"id":59199,"label":"iterableToArray.js","path":"./node_modules/@babel/runtime/helpers/esm/iterableToArray.js","statSize":175,"parsedSize":154,"gzipSize":146},{"id":31902,"label":"iterableToArrayLimit.js","path":"./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","statSize":743,"parsedSize":436,"gzipSize":307},{"id":25267,"label":"nonIterableRest.js","path":"./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","statSize":210,"parsedSize":214,"gzipSize":187},{"id":64742,"label":"nonIterableSpread.js","path":"./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","statSize":207,"parsedSize":209,"gzipSize":182},{"id":82963,"label":"possibleConstructorReturn.js","path":"./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","statSize":417,"parsedSize":255,"gzipSize":213},{"id":89611,"label":"setPrototypeOf.js","path":"./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","statSize":229,"parsedSize":161,"gzipSize":134},{"id":93324,"label":"slicedToArray.js","path":"./node_modules/@babel/runtime/helpers/esm/slicedToArray.js","statSize":409,"parsedSize":161,"gzipSize":144},{"id":89062,"label":"toConsumableArray.js","path":"./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","statSize":404,"parsedSize":155,"gzipSize":136},{"id":35512,"label":"toPrimitive.js","path":"./node_modules/@babel/runtime/helpers/esm/toPrimitive.js","statSize":453,"parsedSize":328,"gzipSize":248},{"id":67343,"label":"toPropertyKey.js","path":"./node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","statSize":222,"parsedSize":147,"gzipSize":143},{"id":71002,"label":"typeof.js","path":"./node_modules/@babel/runtime/helpers/esm/typeof.js","statSize":368,"parsedSize":270,"gzipSize":163},{"id":40181,"label":"unsupportedIterableToArray.js","path":"./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","statSize":495,"parsedSize":353,"gzipSize":270}],"parsedSize":4689,"gzipSize":1548}],"parsedSize":11818,"gzipSize":3804},{"label":"regenerator","path":"./node_modules/@babel/runtime/regenerator","statSize":448,"groups":[{"id":64687,"label":"index.js","path":"./node_modules/@babel/runtime/regenerator/index.js","statSize":448,"parsedSize":176,"gzipSize":146}],"parsedSize":176,"gzipSize":146}],"parsedSize":11994,"gzipSize":3869},{"label":"base64-js","path":"./node_modules/base64-js","statSize":3932,"groups":[{"id":79742,"label":"index.js","path":"./node_modules/base64-js/index.js","statSize":3932,"parsedSize":1394,"gzipSize":748}],"parsedSize":1394,"gzipSize":748},{"label":"buffer","path":"./node_modules/buffer","statSize":58353,"groups":[{"id":48764,"label":"index.js","path":"./node_modules/buffer/index.js","statSize":58353,"parsedSize":24980,"gzipSize":7053}],"parsedSize":24980,"gzipSize":7Line truncated
window.entrypoints = ["main","modules/Bletchley","modules/Charts","modules/Ciphers","modules/Code","modules/Compression","modules/Crypto","modules/Diff","modules/Encodings","modules/Hashing","modules/Image","modules/OCR","modules/PGP","modules/Protobuf","modules/PublicKey","modules/Regex","modules/Serialise","modules/Shellcode","modules/URL","modules/UserAgent","modules/Yara"];
window.defaultSizes = "parsed";
</script>
</body>
</html>
+44
View File
@@ -0,0 +1,44 @@
# Changelog
All notable changes to this project will be documented in this file.
### [8.2.0] - 2018-08-21
- Added information links to most operations, accessible in the description popover @PenguinGeorge #298
### [8.1.0] - 2018-08-19
- 'Dechunk HTTP response' operation added @sevzero #311
## [8.0.0] - 2018-08-05
- Codebase rewritten using [ES modules](https://hacks.mozilla.org/2018/03/es-modules-a-cartoon-deep-dive/) and [classes](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes) #284
- Operation architecture restructured to make adding new operations a lot simpler #284
- A script has been added to aid in the creation of new operations by running `npm run newop` @n1474335 #284
- 'Magic' operation added - [automated detection of encoded data](https://github.com/gchq/CyberChef/wiki/Automatic-detection-of-encoded-data-using-CyberChef-Magic) @n1474335 #239
- UI updated to use [Bootstrap Material Design](https://fezvrasta.github.io/bootstrap-material-design/) @n1474335 #248
- `JSON`, `File` and `List<File>` Dish types added @n1474335 #284
- `OperationError` type added for better handling of errors thrown by operations @d98762625 #296
- A `present()` method has been added, allowing operations to pass machine-friendly data to subsequent operations whilst presenting human-friendly data to the user @n1474335 #284
- Set operations added @d98762625 #281
- 'To Table' operation added @JustAnotherMark #294
- 'Haversine distance' operation added @Dachande663 #325
- Started keeping a changelog @n1474335
## [7.0.0] - 2017-12-28
- Added support for loading, processing and downloading files up to 500MB @n1474335 #224
## [6.0.0] - 2017-09-19
- Added threading support, moving all recipe processing into a [Web Worker](https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API/Using_web_workers) to increase performance and allow long-running operations to be cancelled @n1474335 #173
- Created modules so that operations relying on large libraries can be downloaded separately as required, reducing the initial loading time for the app @n1474335 #173
## [5.0.0] - 2017-03-30
- Configured Webpack build process, Babel transpilation and ES6 imports and exports @n1474335 #95
## [4.0.0] - 2016-11-28
- Initial open source commit @n1474335
[8.2.0]: https://github.com/gchq/CyberChef/releases/tag/v8.2.0
[8.1.0]: https://github.com/gchq/CyberChef/releases/tag/v8.1.0
[8.0.0]: https://github.com/gchq/CyberChef/releases/tag/v8.0.0
[7.0.0]: https://github.com/gchq/CyberChef/releases/tag/v7.0.0
[6.0.0]: https://github.com/gchq/CyberChef/releases/tag/v6.0.0
[5.0.0]: https://github.com/gchq/CyberChef/releases/tag/v5.0.0
[4.0.0]: https://github.com/gchq/CyberChef/commit/b1d73a725dc7ab9fb7eb789296efd2b7e4b08306
+46
View File
@@ -0,0 +1,46 @@
# Contributor Covenant Code of Conduct
## Our Pledge
In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.
## Our Standards
Examples of behavior that contributes to creating a positive environment include:
* Using welcoming and inclusive language
* Being respectful of differing viewpoints and experiences
* Gracefully accepting constructive criticism
* Focusing on what is best for the community
* Showing empathy towards other community members
Examples of unacceptable behavior by participants include:
* The use of sexualized language or imagery and unwelcome sexual attention or advances
* Trolling, insulting/derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or electronic address, without explicit permission
* Other conduct which could reasonably be considered inappropriate in a professional setting
## Our Responsibilities
Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.
Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.
## Scope
This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers.
## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at oss@gchq.gov.uk. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.
Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership.
## Attribution
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version]
[homepage]: http://contributor-covenant.org
[version]: http://contributor-covenant.org/version/1/4/
-687
View File
@@ -1,687 +0,0 @@
/*!
* The buffer module from node.js, for the browser.
*
* @author Feross Aboukhadijeh <https://feross.org>
* @license MIT
*/
/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */
/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */
/*! safe-buffer. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */
/**
*
* @licstart The following is the entire license notice for the JavaScript code in this file.
*
* Plugin for loglevel which allows defining prefixes for log messages
*
* Copyright (c) 2015-2016 University Of Helsinki (The National Library Of Finland)
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*
* @licend The above is the entire license notice
* for the JavaScript code in this file.
*
**/
/**
*
* @licstart The following is the entire license notice for the JavaScript code in this file.
*
* ES6 polyfills that use native implementation if available and do not pollute the global namespace
o*
* Copyright (c) 2015-2016 University Of Helsinki (The National Library Of Finland)
*
* This file is part of es6-polyfills
*
* es6-polyfills is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* @licend The above is the entire license notice
* for the JavaScript code in this page.
*
**/
/**
* @author Dachande663 [dachande663@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*/
/**
* @author Daniel Temkin [http://danieltemkin.com]
* @author Thomas Leplus [https://www.leplus.org]
* @copyright Crown Copyright 2021
* @license Apache-2.0
*/
/**
* @author GCHQ Contributor [2]
* @copyright Crown Copyright 2016
* @license Apache-2.0
*/
/**
* @author GCHQ Contributor [3]
* @copyright Crown Copyright 2019
* @license Apache-2.0
*/
/**
* @author George O [georgeomnet+cyberchef@gmail.com]
* @copyright Crown Copyright 2019
* @license Apache-2.0
*/
/**
* @author Jarmo van Lenthe [github.com/jarmovanlenthe]
* @copyright Jarmo van Lenthe
* @license Apache-2.0
*/
/**
* @author Karsten Silkenbäumer [github.com/kassi]
* @copyright Karsten Silkenbäumer 2019
* @license Apache-2.0
*/
/**
* @author Klaxon [klaxon@veyr.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*/
/**
* @author Mark Jones [github.com/justanothermark]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*/
/**
* @author MarvinJWendt [git@marvinjwendt.com]
* @copyright Crown Copyright 2019
* @license Apache-2.0
*/
/**
* @author Matt C [matt@artemisbot.uk]
* @copyright Crown Copyright 2016
* @license Apache-2.0
*/
/**
* @author Matt C [matt@artemisbot.uk]
* @copyright Crown Copyright 2017
* @license Apache-2.0
*/
/**
* @author Matt C [me@mitt.dev]
* @copyright Crown Copyright 2020
* @license Apache-2.0
*/
/**
* @author MikeCAT
* @license Apache-2.0
*/
/**
* @author PenguinGeorge [george@penguingeorge.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*/
/**
* @author Thomas Weißschuh [thomas@t-8ch.de]
* @copyright Crown Copyright 2021
* @license Apache-2.0
*/
/**
* @author Unknown Male 282
* @copyright Crown Copyright 2016
* @license Apache-2.0
*/
/**
* @author Vel0x [dalemy@microsoft.com]
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2016
* @license Apache-2.0
*/
/**
* @author anthony-arnold [anthony.arnold@uqconnect.edu.au]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*/
/**
* @author arnydo [arnydo@protonmail.com]
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*/
/**
* @author bmwhitn [brian.m.whitney@outlook.com]
* @copyright Crown Copyright 2017
* @license Apache-2.0
*/
/**
* @author bwhitn [brian.m.whitney@outlook.com]
* @author d98762625 [d98762625@gmail.com]
* @copyright Crown Copyright 2016
* @license Apache-2.0
*/
/**
* @author bwhitn [brian.m.whitney@outlook.com]
* @author d98762625 [d98762625@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*/
/**
* @author bwhitn [brian.m.whitney@outlook.com]
* @author d98762625 [d98762625@gmailcom]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*/
/**
* @author d98762625 [d98762625@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*/
/**
* @author d98762625 [d98762625@gmail.com]
* @copyright Crown Copyright 2019
* @license Apache-2.0
*/
/**
* @author gchq77703 []
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*/
/**
* @author gchq77703 [gchq77703@gchq.gov.uk]
* @copyright Crown Copyright 2019
* @license Apache-2.0
*/
/**
* @author h345983745
* @copyright Crown Copyright 2019
* @license Apache-2.0
*/
/**
* @author h345983745 []
* @copyright Crown Copyright 2019
* @license Apache-2.0
*/
/**
* @author j433866 [j433866@gmail.com]
* @copyright Crown Copyright 2019
* @license Apache-2.0
*/
/**
* @author joostrijneveld [joost@joostrijneveld.nl]
* @copyright Crown Copyright 2022
* @license Apache-2.0
*/
/**
* @author klaxon [klaxon@veyr.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*/
/**
* @author masq [github.cyberchef@masq.cc]
* @author n1073645
* @copyright Crown Copyright 2018
* @license Apache-2.0
*/
/**
* @author masq [github.cyberchef@masq.cc]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*/
/**
* @author mikecat
* @copyright Crown Copyright 2022
* @license Apache-2.0
*/
/**
* @author mikecat
* @copyright Crown Copyright 2023
* @license Apache-2.0
*/
/**
* @author n1073645 [n1073645@gmail.com]
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2020
* @license Apache-2.0
*/
/**
* @author n1073645 [n1073645@gmail.com]
* @copyright Crown Copyright 2019
* @license Apache-2.0
*/
/**
* @author n1073645 [n1073645@gmail.com]
* @copyright Crown Copyright 2020
* @license Apache-2.0
*/
/**
* @author n1073645 [n1073645@gmail.com]
* @copyright Crown Copyright 2022
* @license Apache-2.0
*/
/**
* @author n1474335 [n1474335@gmail.com]
* @author Klaxon [klaxon@veyr.com]
* @copyright Crown Copyright 2016
* @license Apache-2.0
*/
/**
* @author n1474335 [n1474335@gmail.com]
* @author Matt C [matt@artemisbot.uk]
* @copyright Crown Copyright 2016
* @license Apache-2.0
*/
/**
* @author n1474335 [n1474335@gmail.com]
* @author cplussharp
* @copyright Crown Copyright 2016
* @license Apache-2.0
*/
/**
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2016
* @license Apache-2.0
*/
/**
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2017
* @license Apache-2.0
*/
/**
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*/
/**
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2021
* @license Apache-2.0
*/
/**
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2022
* @license Apache-2.0
*/
/**
* @author sevzero [sevzero@protonmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*/
/**
* @author tcode2k16 [tcode2k16@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*/
/**
* @author tlwr [toby@toby.codes]
* @author Matt C [me@mitt.dev]
* @copyright Crown Copyright 2019
* @license Apache-2.0
*/
/**
* @author tlwr [toby@toby.codes]
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2016
* @license Apache-2.0
*/
/**
* @author tlwr [toby@toby.codes]
* @copyright Crown Copyright 2017
* @license Apache-2.0
*/
/**
* Base45 resources.
*
* @author Thomas Weißschuh [thomas@t-8ch.de]
* @copyright Crown Copyright 2021
* @license Apache-2.0
*/
/**
* Base58 resources.
*
* @author tlwr [toby@toby.codes]
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2017
* @license Apache-2.0
*/
/**
* Base64 functions.
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2016
* @license Apache-2.0
*/
/**
* Base85 resources.
*
* @author PenguinGeorge [george@penguingeorge.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*/
/**
* Binary Code Decimal resources.
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2017
* @license Apache-2.0
*/
/**
* Binary functions.
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*/
/**
* Bit rotation functions.
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2016
* @license Apache-2.0
*
* @todo Support for UTF16
*/
/**
* Bitwise operation resources.
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*/
/**
* Braille resources.
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*/
/**
* Custom error type for handling Dish type errors.
* i.e. where the Dish cannot be successfully translated between types
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*/
/**
* Custom error type for handling operation input errors.
* i.e. where the operation can handle the error and print a message to the screen.
*
* @author d98762625 [d98762625@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*/
/**
* CyberChef - The Cyber Swiss Army Knife
*
* @copyright Crown Copyright 2016
* @license Apache-2.0
*
* Copyright 2016 Crown Copyright
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/**
* Decimal functions.
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*/
/**
* File signatures and extractor functions
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*
*/
/**
* File type functions
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*
*/
/**
* Flow control functions
*
* @author d98762625 [d98762625@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*/
/**
* Hexadecimal functions.
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2016
* @license Apache-2.0
*/
/**
* IP resources.
*
* @author picapi
* @author n1474335 [n1474335@gmail.com]
* @author Klaxon [klaxon@veyr.com]
* @copyright Crown Copyright 2016
* @license Apache-2.0
*/
/**
* Lorem Ipsum generator.
*
* @author Klaxon [klaxon@veyr.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*/
/**
* Parser for Type-length-value data.
*
* @author gchq77703 []
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*/
/**
* Protobuf lib. Contains functions to decode protobuf serialised
* data without a schema or .proto file.
*
* Provides utility functions to encode and decode variable length
* integers (varint).
*
* @author GCHQ Contributor [3]
* @copyright Crown Copyright 2019
* @license Apache-2.0
*/
/**
* Protocol parsing functions.
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2022
* @license Apache-2.0
*/
/**
* Some parts taken from mimelib (http://github.com/andris9/mimelib)
* @author Andris Reinman
* @license MIT
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2016
* @license Apache-2.0
*/
/**
* Sorting functions
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2022
* @license Apache-2.0
*
*/
/**
* Various delimiters
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*/
/**
* Web Worker to handle communications between the front-end and the core.
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2017
* @license Apache-2.0
*/
/**
* THIS FILE IS AUTOMATICALLY GENERATED BY src/core/config/scripts/generateConfig.mjs
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2023
* @license Apache-2.0
*/
/** @license
========================================================================
mimelib: http://github.com/andris9/mimelib
Copyright (c) 2011-2012 Andris Reinman
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
*/
//! Copyright (c) JS Foundation and other contributors
//! github.com/moment/moment-timezone
//! license : MIT
//! moment-timezone.js
//! moment.js
//! moment.js locale configuration
//! version : 0.5.41
Binary file not shown.
-177
View File
@@ -1,177 +0,0 @@
/*!
* The buffer module from node.js, for the browser.
*
* @author Feross Aboukhadijeh <https://feross.org>
* @license MIT
*/
/*! cptable.js (C) 2013-present SheetJS -- http://sheetjs.com */
/*! cputils.js (C) 2013-present SheetJS -- http://sheetjs.com */
/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */
/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */
/**
*
* @licstart The following is the entire license notice for the JavaScript code in this file.
*
* Plugin for loglevel which allows defining prefixes for log messages
*
* Copyright (c) 2015-2016 University Of Helsinki (The National Library Of Finland)
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*
* @licend The above is the entire license notice
* for the JavaScript code in this file.
*
**/
/**
*
* @licstart The following is the entire license notice for the JavaScript code in this file.
*
* ES6 polyfills that use native implementation if available and do not pollute the global namespace
o*
* Copyright (c) 2015-2016 University Of Helsinki (The National Library Of Finland)
*
* This file is part of es6-polyfills
*
* es6-polyfills is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* @licend The above is the entire license notice
* for the JavaScript code in this page.
*
**/
/**
* @author d98762625 [d98762625@gmail.com]
* @copyright Crown Copyright 2019
* @license Apache-2.0
*/
/**
* @author n1474335 [n1474335@gmail.com]
* @author Matt C [matt@artemisbot.uk]
* @copyright Crown Copyright 2016
* @license Apache-2.0
*/
/**
* Base64 functions.
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2016
* @license Apache-2.0
*/
/**
* Custom error type for handling Dish type errors.
* i.e. where the Dish cannot be successfully translated between types
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*/
/**
* Custom error type for handling operation input errors.
* i.e. where the operation can handle the error and print a message to the screen.
*
* @author d98762625 [d98762625@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*/
/**
* CyberChef - The Cyber Swiss Army Knife
*
* @copyright Crown Copyright 2016
* @license Apache-2.0
*
* Copyright 2016 Crown Copyright
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/**
* Decimal functions.
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*/
/**
* File signatures and extractor functions
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*
*/
/**
* File type functions
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*
*/
/**
* Stream class for parsing binary protocols.
*
* @author n1474335 [n1474335@gmail.com]
* @author tlwr [toby@toby.codes]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*
*/
/**
* Web worker to handle dish conversion operations.
*
* @author j433866 [j433866@gmail.com]
* @copyright Crown Copyright 2019
* @license Apache-2.0
*/
Executable
+395
View File
@@ -0,0 +1,395 @@
"use strict";
const webpack = require("webpack");
const HtmlWebpackPlugin = require("html-webpack-plugin");
const NodeExternals = require("webpack-node-externals");
const Inliner = require("web-resource-inliner");
const glob = require("glob");
const path = require("path");
/**
* Grunt configuration for building the app in various formats.
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2017
* @license Apache-2.0
*/
module.exports = function (grunt) {
grunt.file.defaultEncoding = "utf8";
grunt.file.preserveBOM = false;
// Tasks
grunt.registerTask("dev",
"A persistent task which creates a development build whenever source files are modified.",
["clean:dev", "exec:generateConfig", "concurrent:dev"]);
grunt.registerTask("node",
"Compiles CyberChef into a single NodeJS module.",
["clean:node", "clean:config", "exec:generateConfig", "webpack:node", "chmod:build"]);
grunt.registerTask("test",
"A task which runs all the tests in test/tests.",
["exec:generateConfig", "exec:tests"]);
grunt.registerTask("docs",
"Compiles documentation in the /docs directory.",
["clean:docs", "jsdoc", "chmod:docs"]);
grunt.registerTask("prod",
"Creates a production-ready build. Use the --msg flag to add a compile message.",
["eslint", "clean:prod", "exec:generateConfig", "webpack:web", "inline", "chmod"]);
grunt.registerTask("default",
"Lints the code base",
["eslint", "exec:repoSize"]);
grunt.registerTask("inline",
"Compiles a production build of CyberChef into a single, portable web page.",
["exec:generateConfig", "webpack:webInline", "runInliner", "clean:inlineScripts"]);
grunt.registerTask("runInliner", runInliner);
grunt.registerTask("doc", "docs");
grunt.registerTask("tests", "test");
grunt.registerTask("lint", "eslint");
// Load tasks provided by each plugin
grunt.loadNpmTasks("grunt-eslint");
grunt.loadNpmTasks("grunt-webpack");
grunt.loadNpmTasks("grunt-jsdoc");
grunt.loadNpmTasks("grunt-contrib-clean");
grunt.loadNpmTasks("grunt-contrib-copy");
grunt.loadNpmTasks("grunt-contrib-watch");
grunt.loadNpmTasks("grunt-chmod");
grunt.loadNpmTasks("grunt-exec");
grunt.loadNpmTasks("grunt-accessibility");
grunt.loadNpmTasks("grunt-concurrent");
// Project configuration
const compileTime = grunt.template.today("UTC:dd/mm/yyyy HH:MM:ss") + " UTC",
pkg = grunt.file.readJSON("package.json"),
webpackConfig = require("./webpack.config.js"),
BUILD_CONSTANTS = {
COMPILE_TIME: JSON.stringify(compileTime),
COMPILE_MSG: JSON.stringify(grunt.option("compile-msg") || grunt.option("msg") || ""),
PKG_VERSION: JSON.stringify(pkg.version),
ENVIRONMENT_IS_WORKER: function() {
return typeof importScripts === "function";
},
ENVIRONMENT_IS_NODE: function() {
return typeof process === "object" && typeof require === "function";
},
ENVIRONMENT_IS_WEB: function() {
return typeof window === "object";
}
},
moduleEntryPoints = listEntryModules();
/**
* Compiles a production build of CyberChef into a single, portable web page.
*/
function runInliner() {
const done = this.async();
Inliner.html({
relativeTo: "build/prod/",
fileContent: grunt.file.read("build/prod/cyberchef.htm"),
images: true,
svgs: true,
scripts: true,
links: true,
strict: true
}, function(error, result) {
if (error) {
if (error instanceof Error) {
done(error);
} else {
done(new Error(error));
}
} else {
grunt.file.write("build/prod/cyberchef.htm", result);
done(true);
}
});
}
/**
* Generates an entry list for all the modules.
*/
function listEntryModules() {
const entryModules = {};
glob.sync("./src/core/config/modules/*.mjs").forEach(file => {
const basename = path.basename(file);
if (basename !== "Default.mjs" && basename !== "OpModules.mjs")
entryModules[basename.split(".mjs")[0]] = path.resolve(file);
});
return entryModules;
}
grunt.initConfig({
clean: {
dev: ["build/dev/*"],
prod: ["build/prod/*"],
node: ["build/node/*"],
config: ["src/core/config/OperationConfig.json", "src/core/config/modules/*", "src/code/operations/index.mjs"],
docs: ["docs/*", "!docs/*.conf.json", "!docs/*.ico", "!docs/*.png"],
inlineScripts: ["build/prod/scripts.js"],
},
eslint: {
options: {
configFile: "./.eslintrc.json"
},
configs: ["Gruntfile.js"],
core: ["src/core/**/*.{js,mjs}", "!src/core/vendor/**/*", "!src/core/operations/legacy/**/*"],
web: ["src/web/**/*.{js,mjs}"],
node: ["src/node/**/*.{js,mjs}"],
tests: ["test/**/*.{js,mjs}"],
},
jsdoc: {
options: {
destination: "docs",
template: "node_modules/ink-docstrap/template",
recurse: true,
readme: "./README.md",
configure: "docs/jsdoc.conf.json"
},
all: {
src: [
"src/**/*.js",
"src/**/*.mjs",
"!src/core/vendor/**/*"
],
}
},
accessibility: {
options: {
accessibilityLevel: "WCAG2A",
verbose: false,
ignore: [
"WCAG2A.Principle1.Guideline1_3.1_3_1.H42.2"
]
},
test: {
src: ["build/**/*.html"]
}
},
webpack: {
options: webpackConfig,
web: {
mode: "production",
target: "web",
entry: Object.assign({
main: "./src/web/index.js",
sitemap: "./src/web/static/sitemap.js"
}, moduleEntryPoints),
output: {
path: __dirname + "/build/prod"
},
resolve: {
alias: {
"./config/modules/OpModules": "./config/modules/Default"
}
},
plugins: [
new webpack.DefinePlugin(BUILD_CONSTANTS),
new HtmlWebpackPlugin({
filename: "index.html",
template: "./src/web/html/index.html",
chunks: ["main"],
compileTime: compileTime,
version: pkg.version,
minify: {
removeComments: true,
collapseWhitespace: true,
minifyJS: true,
minifyCSS: true
}
}),
]
},
webInline: {
mode: "production",
target: "web",
entry: "./src/web/index.js",
output: {
filename: "scripts.js",
path: __dirname + "/build/prod"
},
plugins: [
new webpack.DefinePlugin(Object.assign({}, BUILD_CONSTANTS, {
INLINE: "true"
})),
new HtmlWebpackPlugin({
filename: "cyberchef.htm",
template: "./src/web/html/index.html",
compileTime: compileTime,
version: pkg.version + "s",
inline: true,
minify: {
removeComments: true,
collapseWhitespace: true,
minifyJS: true,
minifyCSS: true
}
}),
]
},
tests: {
mode: "development",
target: "node",
entry: "./test/index.mjs",
externals: [NodeExternals()],
output: {
filename: "index.js",
path: __dirname + "/build/test"
},
plugins: [
new webpack.DefinePlugin(BUILD_CONSTANTS)
]
},
node: {
mode: "production",
target: "node",
entry: "./src/node/index.mjs",
externals: [NodeExternals()],
output: {
filename: "CyberChef.js",
path: __dirname + "/build/node",
library: "CyberChef",
libraryTarget: "commonjs2"
},
plugins: [
new webpack.DefinePlugin(BUILD_CONSTANTS)
]
}
},
"webpack-dev-server": {
options: {
webpack: webpackConfig,
host: "0.0.0.0",
disableHostCheck: true,
overlay: true,
inline: false,
clientLogLevel: "error",
stats: {
children: false,
chunks: false,
modules: false,
entrypoints: false,
warningsFilter: [/source-map/, /dependency is an expression/],
}
},
start: {
webpack: {
mode: "development",
target: "web",
entry: Object.assign({
main: "./src/web/index.js"
}, moduleEntryPoints),
resolve: {
alias: {
"./config/modules/OpModules": "./config/modules/Default"
}
},
plugins: [
new webpack.DefinePlugin(BUILD_CONSTANTS),
new HtmlWebpackPlugin({
filename: "index.html",
template: "./src/web/html/index.html",
chunks: ["main"],
compileTime: compileTime,
version: pkg.version,
})
]
}
}
},
copy: {
ghPages: {
options: {
process: function (content, srcpath) {
// Add Google Analytics code to index.html
if (srcpath.indexOf("index.html") >= 0) {
content = content.replace("</body></html>",
grunt.file.read("src/web/static/ga.html") + "</body></html>");
return grunt.template.process(content, srcpath);
} else {
return content;
}
},
noProcess: ["**", "!**/*.html"]
},
files: [
{
src: "build/prod/index.html",
dest: "build/prod/index.html"
},
{
expand: true,
src: "docs/**",
dest: "build/prod/"
},
]
}
},
chmod: {
build: {
options: {
mode: "755",
},
src: ["build/**/*", "build/"]
},
docs: {
options: {
mode: "755",
},
src: ["docs/**/*", "docs/"]
}
},
watch: {
config: {
files: ["src/core/operations/**/*", "!src/core/operations/index.mjs"],
tasks: ["exec:generateConfig"]
}
},
concurrent: {
dev: ["watch:config", "webpack-dev-server:start"],
options: {
logConcurrentOutput: true
}
},
exec: {
repoSize: {
command: [
"git ls-files | wc -l | xargs printf '\n%b\ttracked files\n'",
"du -hs | egrep -o '^[^\t]*' | xargs printf '%b\trepository size\n'"
].join(";"),
stderr: false
},
cleanGit: {
command: "git gc --prune=now --aggressive"
},
sitemap: {
command: "node build/prod/sitemap.js > build/prod/sitemap.xml"
},
generateConfig: {
command: [
"echo '\n--- Regenerating config files. ---'",
"mkdir -p src/core/config/modules",
"echo 'export default {};\n' > src/core/config/modules/OpModules.mjs",
"echo '[]\n' > src/core/config/OperationConfig.json",
"node --experimental-modules src/core/config/scripts/generateOpsIndex.mjs",
"node --experimental-modules src/core/config/scripts/generateConfig.mjs",
"echo '--- Config scripts finished. ---\n'"
].join(";")
},
tests: {
command: "node --experimental-modules test/index.mjs"
}
},
});
};
-125
View File
@@ -1,125 +0,0 @@
/*!
* The buffer module from node.js, for the browser.
*
* @author Feross Aboukhadijeh <https://feross.org>
* @license MIT
*/
/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */
/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */
/**
*
* @licstart The following is the entire license notice for the JavaScript code in this file.
*
* Plugin for loglevel which allows defining prefixes for log messages
*
* Copyright (c) 2015-2016 University Of Helsinki (The National Library Of Finland)
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*
* @licend The above is the entire license notice
* for the JavaScript code in this file.
*
**/
/**
*
* @licstart The following is the entire license notice for the JavaScript code in this file.
*
* ES6 polyfills that use native implementation if available and do not pollute the global namespace
o*
* Copyright (c) 2015-2016 University Of Helsinki (The National Library Of Finland)
*
* This file is part of es6-polyfills
*
* es6-polyfills is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* @licend The above is the entire license notice
* for the JavaScript code in this page.
*
**/
/**
* Base64 functions.
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2016
* @license Apache-2.0
*/
/**
* Custom error type for handling operation input errors.
* i.e. where the operation can handle the error and print a message to the screen.
*
* @author d98762625 [d98762625@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*/
/**
* CyberChef - The Cyber Swiss Army Knife
*
* @copyright Crown Copyright 2016
* @license Apache-2.0
*
* Copyright 2016 Crown Copyright
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/**
* Decimal functions.
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*/
/**
* Web worker to handle the inputs.
* Handles storage, modification and retrieval of the inputs.
*
* @author j433866 [j433866@gmail.com]
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2019
* @license Apache-2.0
*/
Executable
+202
View File
@@ -0,0 +1,202 @@
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-87
View File
@@ -1,87 +0,0 @@
/**
*
* @licstart The following is the entire license notice for the JavaScript code in this file.
*
* Plugin for loglevel which allows defining prefixes for log messages
*
* Copyright (c) 2015-2016 University Of Helsinki (The National Library Of Finland)
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*
* @licend The above is the entire license notice
* for the JavaScript code in this file.
*
**/
/**
*
* @licstart The following is the entire license notice for the JavaScript code in this file.
*
* ES6 polyfills that use native implementation if available and do not pollute the global namespace
o*
* Copyright (c) 2015-2016 University Of Helsinki (The National Library Of Finland)
*
* This file is part of es6-polyfills
*
* es6-polyfills is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* @licend The above is the entire license notice
* for the JavaScript code in this page.
*
**/
/**
* CyberChef - The Cyber Swiss Army Knife
*
* @copyright Crown Copyright 2016
* @license Apache-2.0
*
* Copyright 2016 Crown Copyright
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/**
* Web Worker to load large amounts of data without locking up the UI.
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2017
* @license Apache-2.0
*/
Executable
+111
View File
@@ -0,0 +1,111 @@
# CyberChef
[![Build Status](https://travis-ci.org/gchq/CyberChef.svg?branch=master)](https://travis-ci.org/gchq/CyberChef)
[![dependencies Status](https://david-dm.org/gchq/CyberChef/status.svg)](https://david-dm.org/gchq/CyberChef)
[![npm](https://img.shields.io/npm/v/cyberchef.svg)](https://www.npmjs.com/package/cyberchef)
![](https://reposs.herokuapp.com/?path=gchq/CyberChef&color=blue)
[![](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](https://github.com/gchq/CyberChef/blob/master/LICENSE)
[![Gitter](https://badges.gitter.im/gchq/CyberChef.svg)](https://gitter.im/gchq/CyberChef?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge)
#### *The Cyber Swiss Army Knife*
CyberChef is a simple, intuitive web app for carrying out all manner of "cyber" operations within a web browser. These operations include simple encoding like XOR or Base64, more complex encryption like AES, DES and Blowfish, creating binary and hexdumps, compression and decompression of data, calculating hashes and checksums, IPv6 and X.509 parsing, changing character encodings, and much more.
The tool is designed to enable both technical and non-technical analysts to manipulate data in complex ways without having to deal with complex tools or algorithms. It was conceived, designed, built and incrementally improved by an analyst in their 10% innovation time over several years.
## Live demo
CyberChef is still under active development. As a result, it shouldn't be considered a finished product. There is still testing and bug fixing to do, new features to be added and additional documentation to write. Please contribute!
Cryptographic operations in CyberChef should not be relied upon to provide security in any situation. No guarantee is offered for their correctness.
[A live demo can be found here][1] - have fun!
## How it works
There are four main areas in CyberChef:
1. The **input** box in the top right, where you can paste, type or drag the text or file you want to operate on.
2. The **output** box in the bottom right, where the outcome of your processing will be displayed.
3. The **operations** list on the far left, where you can find all the operations that CyberChef is capable of in categorised lists, or by searching.
4. The **recipe** area in the middle, where you can drag the operations that you want to use and specify arguments and options.
You can use as many operations as you like in simple or complex ways. Some examples are as follows:
- [Decode a Base64-encoded string][2]
- [Convert a date and time to a different time zone][3]
- [Parse a Teredo IPv6 address][4]
- [Convert data from a hexdump, then decompress][5]
- [Decrypt and disassemble shellcode][6]
- [Display multiple timestamps as full dates][7]
- [Carry out different operations on data of different types][8]
- [Use parts of the input as arguments to operations][9]
- [Perform AES decryption, extracting the IV from the beginning of the cipher stream][10]
- [Automagically detect several layers of nested encoding][12]
## Features
- Drag and drop
- Operations can be dragged in and out of the recipe list, or reorganised.
- Files up to 500MB can be dragged over the input box to load them directly into the browser.
- Auto Bake
- Whenever you modify the input or the recipe, CyberChef will automatically "bake" for you and produce the output immediately.
- This can be turned off and operated manually if it is affecting performance (if the input is very large, for instance).
- Automated encoding detection
- CyberChef uses [a number of techniques](https://github.com/gchq/CyberChef/wiki/Automatic-detection-of-encoded-data-using-CyberChef-Magic) to attempt to automatically detect which encodings your data is under. If it finds a suitable operation which can make sense of your data, it displays the 'magic' icon in the Output field which you can click to decode your data.
- Breakpoints
- You can set breakpoints on any operation in your recipe to pause execution before running it.
- You can also step through the recipe one operation at a time to see what the data looks like at each stage.
- Save and load recipes
- If you come up with an awesome recipe that you know you’ll want to use again, just click "Save recipe" and add it to your local storage. It'll be waiting for you next time you visit CyberChef.
- You can also copy the URL, which includes your recipe and input, to easily share it with others.
- Search
- If you know the name of the operation you want or a word associated with it, start typing it into the search field and any matching operations will immediately be shown.
- Highlighting
- When you highlight text in the input or output, the offset and length values will be displayed and, if possible, the corresponding data will be highlighted in the output or input respectively (example: [highlight the word 'question' in the input to see where it appears in the output][11]).
- Save to file and load from file
- You can save the output to a file at any time or load a file by dragging and dropping it into the input field. Files up to around 500MB are supported (depending on your browser), however some operations may take a very long time to run over this much data.
- CyberChef is entirely client-side
- It should be noted that none of your recipe configuration or input (either text or files) is ever sent to the CyberChef web server - all processing is carried out within your browser, on your own computer.
- Due to this feature, CyberChef can be compiled into a single HTML file. You can download this file and drop it into a virtual machine, share it with other people, or use it independently on your local machine.
## Browser support
CyberChef is built to support
- Google Chrome 40+
- Mozilla Firefox 35+
- Microsoft Edge 14+
## Contributing
Contributing a new operation to CyberChef is super easy! There is a quickstart script which will walk you through the process. If you can write basic JavaScript, you can write a CyberChef operation.
An installation walkthrough, how-to guides for adding new operations and themes, descriptions of the repository structure, available data types and coding conventions can all be found in the project [wiki pages](https://github.com/gchq/CyberChef/wiki).
- Push your changes to your fork.
- Submit a pull request. If you are doing this for the first time, you will be prompted to sign the [GCHQ Contributor Licence Agreement](https://cla-assistant.io/gchq/CyberChef) via the CLA assistant on the pull request. This will also ask whether you are happy for GCHQ to contact you about a token of thanks for your contribution, or about job opportunities at GCHQ.
## Licencing
CyberChef is released under the [Apache 2.0 Licence](https://www.apache.org/licenses/LICENSE-2.0) and is covered by [Crown Copyright](https://www.nationalarchives.gov.uk/information-management/re-using-public-sector-information/copyright-and-re-use/crown-copyright/).
[1]: https://gchq.github.io/CyberChef
[2]: https://gchq.github.io/CyberChef/#recipe=From_Base64('A-Za-z0-9%2B/%3D',true)&input=VTI4Z2JHOXVaeUJoYm1RZ2RHaGhibXR6SUdadmNpQmhiR3dnZEdobElHWnBjMmd1
[3]: https://gchq.github.io/CyberChef/#recipe=Translate_DateTime_Format('Standard%20date%20and%20time','DD/MM/YYYY%20HH:mm:ss','UTC','dddd%20Do%20MMMM%20YYYY%20HH:mm:ss%20Z%20z','Australia/Queensland')&input=MTUvMDYvMjAxNSAyMDo0NTowMA
[4]: https://gchq.github.io/CyberChef/#recipe=Parse_IPv6_address()&input=MjAwMTowMDAwOjQxMzY6ZTM3ODo4MDAwOjYzYmY6M2ZmZjpmZGQy
[5]: https://gchq.github.io/CyberChef/#recipe=From_Hexdump()Gunzip()&input=MDAwMDAwMDAgIDFmIDhiIDA4IDAwIDEyIGJjIGYzIDU3IDAwIGZmIDBkIGM3IGMxIDA5IDAwIDIwICB8Li4uLi6881cu/y7HwS4uIHwKMDAwMDAwMTAgIDA4IDA1IGQwIDU1IGZlIDA0IDJkIGQzIDA0IDFmIGNhIDhjIDQ0IDIxIDViIGZmICB8Li7QVf4uLdMuLsouRCFb/3wKMDAwMDAwMjAgIDYwIGM3IGQ3IDAzIDE2IGJlIDQwIDFmIDc4IDRhIDNmIDA5IDg5IDBiIDlhIDdkICB8YMfXLi6%2BQC54Sj8uLi4ufXwKMDAwMDAwMzAgIDRlIGM4IDRlIDZkIDA1IDFlIDAxIDhiIDRjIDI0IDAwIDAwIDAwICAgICAgICAgICB8TshObS4uLi5MJC4uLnw
[6]: https://gchq.github.io/CyberChef/#recipe=RC4(%7B'option':'UTF8','string':'secret'%7D,'Hex','Hex')Disassemble_x86('64','Full%20x86%20architecture',16,0,true,true)&input=MjFkZGQyNTQwMTYwZWU2NWZlMDc3NzEwM2YyYTM5ZmJlNWJjYjZhYTBhYWJkNDE0ZjkwYzZjYWY1MzEyNzU0YWY3NzRiNzZiM2JiY2QxOTNjYjNkZGZkYmM1YTI2NTMzYTY4NmI1OWI4ZmVkNGQzODBkNDc0NDIwMWFlYzIwNDA1MDcxMzhlMmZlMmIzOTUwNDQ2ZGIzMWQyYmM2MjliZTRkM2YyZWIwMDQzYzI5M2Q3YTVkMjk2MmMwMGZlNmRhMzAwNzJkOGM1YTZiNGZlN2Q4NTlhMDQwZWVhZjI5OTczMzYzMDJmNWEwZWMxOQ
[7]: https://gchq.github.io/CyberChef/#recipe=Fork('%5C%5Cn','%5C%5Cn',false)From_UNIX_Timestamp('Seconds%20(s)')&input=OTc4MzQ2ODAwCjEwMTI2NTEyMDAKMTA0NjY5NjQwMAoxMDgxMDg3MjAwCjExMTUzMDUyMDAKMTE0OTYwOTYwMA
[8]: https://gchq.github.io/CyberChef/#recipe=Fork('%5C%5Cn','%5C%5Cn',false)Conditional_Jump('1',false,'base64',10)To_Hex('Space')Return()Label('base64')To_Base64('A-Za-z0-9%2B/%3D')&input=U29tZSBkYXRhIHdpdGggYSAxIGluIGl0ClNvbWUgZGF0YSB3aXRoIGEgMiBpbiBpdA
[9]: https://gchq.github.io/CyberChef/#recipe=Register('key%3D(%5B%5C%5Cda-f%5D*)',true,false)Find_/_Replace(%7B'option':'Regex','string':'.*data%3D(.*)'%7D,'$1',true,false,true)RC4(%7B'option':'Hex','string':'$R0'%7D,'Hex','Latin1')&input=aHR0cDovL21hbHdhcmV6LmJpei9iZWFjb24ucGhwP2tleT0wZTkzMmE1YyZkYXRhPThkYjdkNWViZTM4NjYzYTU0ZWNiYjMzNGUzZGIxMQ
[10]: https://gchq.github.io/CyberChef/#recipe=Register('(.%7B32%7D)',true,false)Drop_bytes(0,32,false)AES_Decrypt(%7B'option':'Hex','string':'1748e7179bd56570d51fa4ba287cc3e5'%7D,%7B'option':'Hex','string':'$R0'%7D,'CTR','Hex','Raw',%7B'option':'Hex','string':''%7D)&input=NTFlMjAxZDQ2MzY5OGVmNWY3MTdmNzFmNWI0NzEyYWYyMGJlNjc0YjNiZmY1M2QzODU0NjM5NmVlNjFkYWFjNDkwOGUzMTljYTNmY2Y3MDg5YmZiNmIzOGVhOTllNzgxZDI2ZTU3N2JhOWRkNmYzMTFhMzk0MjBiODk3OGU5MzAxNGIwNDJkNDQ3MjZjYWVkZjU0MzZlYWY2NTI0MjljMGRmOTRiNTIxNjc2YzdjMmNlODEyMDk3YzI3NzI3M2M3YzcyY2Q4OWFlYzhkOWZiNGEyNzU4NmNjZjZhYTBhZWUyMjRjMzRiYTNiZmRmN2FlYjFkZGQ0Nzc2MjJiOTFlNzJjOWU3MDlhYjYwZjhkYWY3MzFlYzBjYzg1Y2UwZjc0NmZmMTU1NGE1YTNlYzI5MWNhNDBmOWU2MjlhODcyNTkyZDk4OGZkZDgzNDUzNGFiYTc5YzFhZDE2NzY3NjlhN2MwMTBiZjA0NzM5ZWNkYjY1ZDk1MzAyMzcxZDYyOWQ5ZTM3ZTdiNGEzNjFkYTQ2OGYxZWQ1MzU4OTIyZDJlYTc1MmRkMTFjMzY2ZjMwMTdiMTRhYTAxMWQyYWYwM2M0NGY5NTU3OTA5OGExNWUzY2Y5YjQ0ODZmOGZmZTljMjM5ZjM0ZGU3MTUxZjZjYTY1MDBmZTRiODUwYzNmMWMwMmU4MDFjYWYzYTI0NDY0NjE0ZTQyODAxNjE1YjhmZmFhMDdhYzgyNTE0OTNmZmRhN2RlNWRkZjMzNjg4ODBjMmI5NWIwMzBmNDFmOGYxNTA2NmFkZDA3MWE2NmNmNjBlNWY0NmYzYTIzMGQzOTdiNjUyOTYzYTIxYTUzZg
[11]: https://gchq.github.io/CyberChef/#recipe=XOR(%7B'option':'Hex','string':'3a'%7D,'Standard',false)To_Hexdump(16,false,false)&input=VGhlIGFuc3dlciB0byB0aGUgdWx0aW1hdGUgcXVlc3Rpb24gb2YgbGlmZSwgdGhlIFVuaXZlcnNlLCBhbmQgZXZlcnl0aGluZyBpcyA0Mi4
[12]: https://gchq.github.io/CyberChef/#recipe=Magic(3,false,false)&input=V1VhZ3dzaWFlNm1QOGdOdENDTFVGcENwQ0IyNlJtQkRvREQ4UGFjZEFtekF6QlZqa0syUXN0RlhhS2hwQzZpVVM3UkhxWHJKdEZpc29SU2dvSjR3aGptMWFybTg2NHFhTnE0UmNmVW1MSHJjc0FhWmM1VFhDWWlmTmRnUzgzZ0RlZWpHWDQ2Z2FpTXl1QlY2RXNrSHQxc2NnSjg4eDJ0TlNvdFFEd2JHWTFtbUNvYjJBUkdGdkNLWU5xaU45aXBNcTFaVTFtZ2tkYk51R2NiNzZhUnRZV2hDR1VjOGc5M1VKdWRoYjhodHNoZVpud1RwZ3FoeDgzU1ZKU1pYTVhVakpUMnptcEM3dVhXdHVtcW9rYmRTaTg4WXRrV0RBYzFUb291aDJvSDRENGRkbU5LSldVRHBNd21uZ1VtSzE0eHdtb21jY1BRRTloTTE3MkFQblNxd3hkS1ExNzJSa2NBc3lzbm1qNWdHdFJtVk5OaDJzMzU5d3I2bVMyUVJQ
-175
View File
@@ -1,175 +0,0 @@
/*!
* The buffer module from node.js, for the browser.
*
* @author Feross Aboukhadijeh <https://feross.org>
* @license MIT
*/
/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */
/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */
/**
*
* @licstart The following is the entire license notice for the JavaScript code in this file.
*
* Plugin for loglevel which allows defining prefixes for log messages
*
* Copyright (c) 2015-2016 University Of Helsinki (The National Library Of Finland)
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*
* @licend The above is the entire license notice
* for the JavaScript code in this file.
*
**/
/**
*
* @licstart The following is the entire license notice for the JavaScript code in this file.
*
* ES6 polyfills that use native implementation if available and do not pollute the global namespace
o*
* Copyright (c) 2015-2016 University Of Helsinki (The National Library Of Finland)
*
* This file is part of es6-polyfills
*
* es6-polyfills is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* @licend The above is the entire license notice
* for the JavaScript code in this page.
*
**/
/**
* @author d98762625 [d98762625@gmail.com]
* @copyright Crown Copyright 2019
* @license Apache-2.0
*/
/**
* @author n1474335 [n1474335@gmail.com]
* @author Matt C [matt@artemisbot.uk]
* @copyright Crown Copyright 2016
* @license Apache-2.0
*/
/**
* Base64 functions.
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2016
* @license Apache-2.0
*/
/**
* Custom error type for handling Dish type errors.
* i.e. where the Dish cannot be successfully translated between types
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*/
/**
* Custom error type for handling operation input errors.
* i.e. where the operation can handle the error and print a message to the screen.
*
* @author d98762625 [d98762625@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*/
/**
* CyberChef - The Cyber Swiss Army Knife
*
* @copyright Crown Copyright 2016
* @license Apache-2.0
*
* Copyright 2016 Crown Copyright
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/**
* Decimal functions.
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*/
/**
* File signatures and extractor functions
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*
*/
/**
* File type functions
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*
*/
/**
* Stream class for parsing binary protocols.
*
* @author n1474335 [n1474335@gmail.com]
* @author tlwr [toby@toby.codes]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*
*/
/**
* Web Worker to handle zipping the outputs for download.
*
* @author j433866 [j433866@gmail.com]
* @copyright Crown Copyright 2019
* @license Apache-2.0
*/
/** @license zlib.js 2012 - imaya [ https://github.com/imaya/zlib.js ] The MIT License */
Binary file not shown.
-485
View File
@@ -1,485 +0,0 @@
info face="Roboto" size=72 bold=0 italic=0 charset="" unicode=0 stretchH=100 smooth=1 aa=1 padding=1,1,1,1 spacing=-2,-2
common lineHeight=85 base=67 scaleW=512 scaleH=512 pages=1 packed=0
page id=0 file="Roboto72White.png"
chars count=98
char id=0 x=0 y=0 width=0 height=0 xoffset=-1 yoffset=66 xadvance=0 page=0 chnl=0
char id=10 x=0 y=0 width=70 height=99 xoffset=2 yoffset=-11 xadvance=74 page=0 chnl=0
char id=32 x=0 y=0 width=0 height=0 xoffset=-1 yoffset=66 xadvance=18 page=0 chnl=0
char id=33 x=493 y=99 width=10 height=55 xoffset=5 yoffset=14 xadvance=19 page=0 chnl=0
char id=34 x=446 y=319 width=16 height=19 xoffset=4 yoffset=12 xadvance=23 page=0 chnl=0
char id=35 x=204 y=265 width=41 height=54 xoffset=3 yoffset=14 xadvance=44 page=0 chnl=0
char id=36 x=269 y=0 width=35 height=69 xoffset=3 yoffset=6 xadvance=40 page=0 chnl=0
char id=37 x=31 y=155 width=48 height=56 xoffset=3 yoffset=13 xadvance=53 page=0 chnl=0
char id=38 x=79 y=155 width=43 height=56 xoffset=3 yoffset=13 xadvance=45 page=0 chnl=0
char id=39 x=503 y=99 width=7 height=19 xoffset=3 yoffset=12 xadvance=13 page=0 chnl=0
char id=40 x=70 y=0 width=21 height=78 xoffset=4 yoffset=7 xadvance=25 page=0 chnl=0
char id=41 x=91 y=0 width=22 height=78 xoffset=-1 yoffset=7 xadvance=25 page=0 chnl=0
char id=42 x=342 y=319 width=32 height=32 xoffset=-1 yoffset=14 xadvance=31 page=0 chnl=0
char id=43 x=242 y=319 width=37 height=40 xoffset=2 yoffset=23 xadvance=41 page=0 chnl=0
char id=44 x=433 y=319 width=13 height=21 xoffset=-1 yoffset=58 xadvance=14 page=0 chnl=0
char id=45 x=27 y=360 width=19 height=8 xoffset=0 yoffset=41 xadvance=19 page=0 chnl=0
char id=46 x=17 y=360 width=10 height=11 xoffset=4 yoffset=58 xadvance=19 page=0 chnl=0
char id=47 x=355 y=0 width=30 height=58 xoffset=-1 yoffset=14 xadvance=30 page=0 chnl=0
char id=48 x=449 y=99 width=34 height=56 xoffset=3 yoffset=13 xadvance=40 page=0 chnl=0
char id=49 x=474 y=211 width=22 height=54 xoffset=5 yoffset=14 xadvance=40 page=0 chnl=0
char id=50 x=195 y=155 width=37 height=55 xoffset=2 yoffset=13 xadvance=41 page=0 chnl=0
char id=51 x=379 y=99 width=35 height=56 xoffset=2 yoffset=13 xadvance=40 page=0 chnl=0
char id=52 x=128 y=265 width=39 height=54 xoffset=1 yoffset=14 xadvance=41 page=0 chnl=0
char id=53 x=232 y=155 width=35 height=55 xoffset=4 yoffset=14 xadvance=40 page=0 chnl=0
char id=54 x=267 y=155 width=35 height=55 xoffset=4 yoffset=14 xadvance=41 page=0 chnl=0
char id=55 x=167 y=265 width=37 height=54 xoffset=2 yoffset=14 xadvance=41 page=0 chnl=0
char id=56 x=414 y=99 width=35 height=56 xoffset=3 yoffset=13 xadvance=40 page=0 chnl=0
char id=57 x=302 y=155 width=34 height=55 xoffset=3 yoffset=13 xadvance=41 page=0 chnl=0
char id=58 x=495 y=265 width=10 height=41 xoffset=4 yoffset=28 xadvance=18 page=0 chnl=0
char id=59 x=496 y=211 width=13 height=52 xoffset=0 yoffset=28 xadvance=15 page=0 chnl=0
char id=60 x=279 y=319 width=31 height=35 xoffset=2 yoffset=27 xadvance=37 page=0 chnl=0
char id=61 x=402 y=319 width=31 height=23 xoffset=4 yoffset=31 xadvance=39 page=0 chnl=0
char id=62 x=310 y=319 width=32 height=35 xoffset=4 yoffset=27 xadvance=38 page=0 chnl=0
char id=63 x=0 y=155 width=31 height=56 xoffset=2 yoffset=13 xadvance=34 page=0 chnl=0
char id=64 x=210 y=0 width=59 height=69 xoffset=3 yoffset=15 xadvance=65 page=0 chnl=0
char id=65 x=336 y=155 width=49 height=54 xoffset=-1 yoffset=14 xadvance=47 page=0 chnl=0
char id=66 x=385 y=155 width=37 height=54 xoffset=5 yoffset=14 xadvance=45 page=0 chnl=0
char id=67 x=0 y=99 width=42 height=56 xoffset=3 yoffset=13 xadvance=46 page=0 chnl=0
char id=68 x=422 y=155 width=39 height=54 xoffset=5 yoffset=14 xadvance=47 page=0 chnl=0
char id=69 x=461 y=155 width=35 height=54 xoffset=5 yoffset=14 xadvance=41 page=0 chnl=0
char id=70 x=0 y=211 width=34 height=54 xoffset=5 yoffset=14 xadvance=40 page=0 chnl=0
char id=71 x=42 y=99 width=42 height=56 xoffset=3 yoffset=13 xadvance=49 page=0 chnl=0
char id=72 x=34 y=211 width=41 height=54 xoffset=5 yoffset=14 xadvance=51 page=0 chnl=0
char id=73 x=496 y=155 width=9 height=54 xoffset=5 yoffset=14 xadvance=19 page=0 chnl=0
char id=74 x=122 y=155 width=34 height=55 xoffset=1 yoffset=14 xadvance=40 page=0 chnl=0
char id=75 x=75 y=211 width=41 height=54 xoffset=5 yoffset=14 xadvance=45 page=0 chnl=0
char id=76 x=116 y=211 width=33 height=54 xoffset=5 yoffset=14 xadvance=39 page=0 chnl=0
char id=77 x=149 y=211 width=53 height=54 xoffset=5 yoffset=14 xadvance=63 page=0 chnl=0
char id=78 x=202 y=211 width=41 height=54 xoffset=5 yoffset=14 xadvance=51 page=0 chnl=0
char id=79 x=84 y=99 width=43 height=56 xoffset=3 yoffset=13 xadvance=49 page=0 chnl=0
char id=80 x=243 y=211 width=39 height=54 xoffset=5 yoffset=14 xadvance=45 page=0 chnl=0
char id=81 x=304 y=0 width=44 height=64 xoffset=3 yoffset=13 xadvance=49 page=0 chnl=0
char id=82 x=282 y=211 width=40 height=54 xoffset=5 yoffset=14 xadvance=45 page=0 chnl=0
char id=83 x=127 y=99 width=39 height=56 xoffset=2 yoffset=13 xadvance=43 page=0 chnl=0
char id=84 x=322 y=211 width=42 height=54 xoffset=1 yoffset=14 xadvance=44 page=0 chnl=0
char id=85 x=156 y=155 width=39 height=55 xoffset=4 yoffset=14 xadvance=47 page=0 chnl=0
char id=86 x=364 y=211 width=47 height=54 xoffset=-1 yoffset=14 xadvance=46 page=0 chnl=0
char id=87 x=411 y=211 width=63 height=54 xoffset=1 yoffset=14 xadvance=64 page=0 chnl=0
char id=88 x=0 y=265 width=44 height=54 xoffset=1 yoffset=14 xadvance=45 page=0 chnl=0
char id=89 x=44 y=265 width=45 height=54 xoffset=-1 yoffset=14 xadvance=43 page=0 chnl=0
char id=90 x=89 y=265 width=39 height=54 xoffset=2 yoffset=14 xadvance=43 page=0 chnl=0
char id=91 x=161 y=0 width=16 height=72 xoffset=4 yoffset=7 xadvance=19 page=0 chnl=0
char id=92 x=385 y=0 width=30 height=58 xoffset=0 yoffset=14 xadvance=30 page=0 chnl=0
char id=93 x=177 y=0 width=16 height=72 xoffset=0 yoffset=7 xadvance=20 page=0 chnl=0
char id=94 x=374 y=319 width=28 height=28 xoffset=1 yoffset=14 xadvance=30 page=0 chnl=0
char id=95 x=46 y=360 width=34 height=8 xoffset=0 yoffset=65 xadvance=34 page=0 chnl=0
char id=96 x=0 y=360 width=17 height=13 xoffset=1 yoffset=11 xadvance=22 page=0 chnl=0
char id=97 x=268 y=265 width=34 height=42 xoffset=3 yoffset=27 xadvance=39 page=0 chnl=0
char id=98 x=415 y=0 width=34 height=57 xoffset=4 yoffset=12 xadvance=40 page=0 chnl=0
char id=99 x=302 y=265 width=34 height=42 xoffset=2 yoffset=27 xadvance=38 page=0 chnl=0
char id=100 x=449 y=0 width=34 height=57 xoffset=2 yoffset=12 xadvance=40 page=0 chnl=0
char id=101 x=336 y=265 width=34 height=42 xoffset=2 yoffset=27 xadvance=38 page=0 chnl=0
char id=102 x=483 y=0 width=25 height=57 xoffset=1 yoffset=11 xadvance=26 page=0 chnl=0
char id=103 x=166 y=99 width=34 height=56 xoffset=2 yoffset=27 xadvance=40 page=0 chnl=0
char id=104 x=200 y=99 width=32 height=56 xoffset=4 yoffset=12 xadvance=40 page=0 chnl=0
char id=105 x=483 y=99 width=10 height=55 xoffset=4 yoffset=13 xadvance=18 page=0 chnl=0
char id=106 x=193 y=0 width=17 height=71 xoffset=-4 yoffset=13 xadvance=17 page=0 chnl=0
char id=107 x=232 y=99 width=34 height=56 xoffset=4 yoffset=12 xadvance=37 page=0 chnl=0
char id=108 x=266 y=99 width=9 height=56 xoffset=4 yoffset=12 xadvance=17 page=0 chnl=0
char id=109 x=439 y=265 width=56 height=41 xoffset=4 yoffset=27 xadvance=64 page=0 chnl=0
char id=110 x=0 y=319 width=32 height=41 xoffset=4 yoffset=27 xadvance=40 page=0 chnl=0
char id=111 x=370 y=265 width=37 height=42 xoffset=2 yoffset=27 xadvance=41 page=0 chnl=0
char id=112 x=275 y=99 width=34 height=56 xoffset=4 yoffset=27 xadvance=40 page=0 chnl=0
char id=113 x=309 y=99 width=34 height=56 xoffset=2 yoffset=27 xadvance=41 page=0 chnl=0
char id=114 x=32 y=319 width=21 height=41 xoffset=4 yoffset=27 xadvance=25 page=0 chnl=0
char id=115 x=407 y=265 width=32 height=42 xoffset=2 yoffset=27 xadvance=37 page=0 chnl=0
char id=116 x=245 y=265 width=23 height=51 xoffset=0 yoffset=18 xadvance=25 page=0 chnl=0
char id=117 x=53 y=319 width=32 height=41 xoffset=4 yoffset=28 xadvance=40 page=0 chnl=0
char id=118 x=85 y=319 width=35 height=40 xoffset=0 yoffset=28 xadvance=35 page=0 chnl=0
char id=119 x=120 y=319 width=54 height=40 xoffset=0 yoffset=28 xadvance=54 page=0 chnl=0
char id=120 x=174 y=319 width=36 height=40 xoffset=0 yoffset=28 xadvance=36 page=0 chnl=0
char id=121 x=343 y=99 width=36 height=56 xoffset=-1 yoffset=28 xadvance=34 page=0 chnl=0
char id=122 x=210 y=319 width=32 height=40 xoffset=2 yoffset=28 xadvance=35 page=0 chnl=0
char id=123 x=113 y=0 width=24 height=73 xoffset=1 yoffset=9 xadvance=25 page=0 chnl=0
char id=124 x=348 y=0 width=7 height=63 xoffset=5 yoffset=14 xadvance=17 page=0 chnl=0
char id=125 x=137 y=0 width=24 height=73 xoffset=-1 yoffset=9 xadvance=24 page=0 chnl=0
char id=126 x=462 y=319 width=42 height=16 xoffset=4 yoffset=38 xadvance=50 page=0 chnl=0
char id=127 x=0 y=0 width=70 height=99 xoffset=2 yoffset=-11 xadvance=74 page=0 chnl=0
kernings count=382
kerning first=70 second=74 amount=-9
kerning first=34 second=97 amount=-2
kerning first=34 second=101 amount=-2
kerning first=34 second=113 amount=-2
kerning first=34 second=99 amount=-2
kerning first=70 second=99 amount=-1
kerning first=88 second=113 amount=-1
kerning first=84 second=46 amount=-8
kerning first=84 second=119 amount=-2
kerning first=87 second=97 amount=-1
kerning first=90 second=117 amount=-1
kerning first=39 second=97 amount=-2
kerning first=69 second=111 amount=-1
kerning first=87 second=41 amount=1
kerning first=76 second=86 amount=-6
kerning first=121 second=34 amount=1
kerning first=40 second=86 amount=1
kerning first=85 second=65 amount=-1
kerning first=89 second=89 amount=1
kerning first=72 second=65 amount=1
kerning first=104 second=39 amount=-4
kerning first=114 second=102 amount=1
kerning first=89 second=42 amount=-2
kerning first=114 second=34 amount=1
kerning first=84 second=115 amount=-4
kerning first=84 second=71 amount=-1
kerning first=89 second=101 amount=-2
kerning first=89 second=45 amount=-2
kerning first=122 second=99 amount=-1
kerning first=78 second=88 amount=1
kerning first=68 second=89 amount=-2
kerning first=122 second=103 amount=-1
kerning first=78 second=84 amount=-1
kerning first=86 second=103 amount=-2
kerning first=89 second=67 amount=-1
kerning first=89 second=79 amount=-1
kerning first=75 second=111 amount=-1
kerning first=111 second=120 amount=-1
kerning first=87 second=44 amount=-4
kerning first=91 second=74 amount=-1
kerning first=120 second=111 amount=-1
kerning first=84 second=111 amount=-3
kerning first=102 second=113 amount=-1
kerning first=80 second=88 amount=-1
kerning first=66 second=84 amount=-1
kerning first=65 second=87 amount=-2
kerning first=86 second=100 amount=-2
kerning first=122 second=100 amount=-1
kerning first=75 second=118 amount=-1
kerning first=70 second=118 amount=-1
kerning first=73 second=88 amount=1
kerning first=70 second=121 amount=-1
kerning first=65 second=34 amount=-4
kerning first=39 second=101 amount=-2
kerning first=75 second=101 amount=-1
kerning first=84 second=99 amount=-3
kerning first=84 second=65 amount=-3
kerning first=112 second=39 amount=-1
kerning first=76 second=39 amount=-12
kerning first=78 second=65 amount=1
kerning first=88 second=45 amount=-2
kerning first=65 second=121 amount=-2
kerning first=34 second=111 amount=-2
kerning first=89 second=85 amount=-3
kerning first=114 second=99 amount=-1
kerning first=86 second=125 amount=1
kerning first=70 second=111 amount=-1
kerning first=89 second=120 amount=-1
kerning first=90 second=119 amount=-1
kerning first=120 second=99 amount=-1
kerning first=89 second=117 amount=-1
kerning first=82 second=89 amount=-2
kerning first=75 second=117 amount=-1
kerning first=34 second=34 amount=-4
kerning first=89 second=110 amount=-1
kerning first=88 second=101 amount=-1
kerning first=107 second=103 amount=-1
kerning first=34 second=115 amount=-3
kerning first=98 second=39 amount=-1
kerning first=70 second=65 amount=-6
kerning first=70 second=46 amount=-8
kerning first=98 second=34 amount=-1
kerning first=70 second=84 amount=1
kerning first=114 second=100 amount=-1
kerning first=88 second=79 amount=-1
kerning first=39 second=113 amount=-2
kerning first=114 second=103 amount=-1
kerning first=77 second=65 amount=1
kerning first=120 second=103 amount=-1
kerning first=114 second=121 amount=1
kerning first=89 second=100 amount=-2
kerning first=80 second=65 amount=-5
kerning first=121 second=111 amount=-1
kerning first=84 second=74 amount=-8
kerning first=122 second=111 amount=-1
kerning first=114 second=118 amount=1
kerning first=102 second=41 amount=1
kerning first=122 second=113 amount=-1
kerning first=89 second=122 amount=-1
kerning first=89 second=38 amount=-1
kerning first=81 second=89 amount=-1
kerning first=114 second=111 amount=-1
kerning first=46 second=34 amount=-6
kerning first=84 second=112 amount=-4
kerning first=112 second=34 amount=-1
kerning first=76 second=34 amount=-12
kerning first=102 second=125 amount=1
kerning first=39 second=115 amount=-3
kerning first=76 second=118 amount=-5
kerning first=86 second=99 amount=-2
kerning first=84 second=84 amount=1
kerning first=86 second=65 amount=-3
kerning first=87 second=101 amount=-1
kerning first=67 second=125 amount=-1
kerning first=120 second=113 amount=-1
kerning first=118 second=46 amount=-4
kerning first=88 second=103 amount=-1
kerning first=111 second=122 amount=-1
kerning first=77 second=84 amount=-1
kerning first=114 second=46 amount=-4
kerning first=34 second=39 amount=-4
kerning first=114 second=44 amount=-4
kerning first=69 second=84 amount=1
kerning first=89 second=46 amount=-7
kerning first=97 second=39 amount=-2
kerning first=34 second=100 amount=-2
kerning first=70 second=100 amount=-1
kerning first=84 second=120 amount=-3
kerning first=90 second=118 amount=-1
kerning first=70 second=114 amount=-1
kerning first=34 second=112 amount=-1
kerning first=109 second=34 amount=-4
kerning first=86 second=113 amount=-2
kerning first=88 second=71 amount=-1
kerning first=66 second=89 amount=-2
kerning first=102 second=103 amount=-1
kerning first=88 second=67 amount=-1
kerning first=39 second=110 amount=-1
kerning first=75 second=110 amount=-1
kerning first=88 second=117 amount=-1
kerning first=89 second=118 amount=-1
kerning first=97 second=118 amount=-1
kerning first=87 second=65 amount=-2
kerning first=73 second=89 amount=-1
kerning first=89 second=74 amount=-3
kerning first=102 second=101 amount=-1
kerning first=86 second=111 amount=-2
kerning first=65 second=119 amount=-1
kerning first=84 second=100 amount=-3
kerning first=104 second=34 amount=-4
kerning first=86 second=41 amount=1
kerning first=111 second=34 amount=-5
kerning first=40 second=89 amount=1
kerning first=121 second=39 amount=1
kerning first=68 second=90 amount=-1
kerning first=114 second=113 amount=-1
kerning first=68 second=88 amount=-1
kerning first=98 second=120 amount=-1
kerning first=110 second=34 amount=-4
kerning first=119 second=44 amount=-4
kerning first=119 second=46 amount=-4
kerning first=118 second=44 amount=-4
kerning first=84 second=114 amount=-3
kerning first=86 second=97 amount=-2
kerning first=68 second=86 amount=-1
kerning first=86 second=93 amount=1
kerning first=97 second=34 amount=-2
kerning first=34 second=65 amount=-4
kerning first=84 second=118 amount=-3
kerning first=76 second=84 amount=-10
kerning first=107 second=99 amount=-1
kerning first=121 second=46 amount=-4
kerning first=123 second=85 amount=-1
kerning first=65 second=63 amount=-2
kerning first=89 second=44 amount=-7
kerning first=80 second=118 amount=1
kerning first=112 second=122 amount=-1
kerning first=79 second=65 amount=-1
kerning first=80 second=121 amount=1
kerning first=118 second=34 amount=1
kerning first=87 second=45 amount=-2
kerning first=69 second=100 amount=-1
kerning first=87 second=103 amount=-1
kerning first=112 second=120 amount=-1
kerning first=68 second=44 amount=-4
kerning first=86 second=45 amount=-1
kerning first=39 second=34 amount=-4
kerning first=68 second=46 amount=-4
kerning first=65 second=89 amount=-3
kerning first=69 second=118 amount=-1
kerning first=88 second=99 amount=-1
kerning first=87 second=46 amount=-4
kerning first=47 second=47 amount=-8
kerning first=73 second=65 amount=1
kerning first=123 second=74 amount=-1
kerning first=69 second=102 amount=-1
kerning first=87 second=111 amount=-1
kerning first=39 second=112 amount=-1
kerning first=89 second=116 amount=-1
kerning first=70 second=113 amount=-1
kerning first=77 second=88 amount=1
kerning first=84 second=32 amount=-1
kerning first=90 second=103 amount=-1
kerning first=65 second=86 amount=-3
kerning first=75 second=112 amount=-1
kerning first=39 second=109 amount=-1
kerning first=75 second=81 amount=-1
kerning first=89 second=115 amount=-2
kerning first=84 second=83 amount=-1
kerning first=89 second=87 amount=1
kerning first=114 second=101 amount=-1
kerning first=116 second=111 amount=-1
kerning first=90 second=100 amount=-1
kerning first=84 second=122 amount=-2
kerning first=68 second=84 amount=-1
kerning first=32 second=84 amount=-1
kerning first=84 second=117 amount=-3
kerning first=74 second=65 amount=-1
kerning first=107 second=101 amount=-1
kerning first=75 second=109 amount=-1
kerning first=80 second=46 amount=-11
kerning first=89 second=93 amount=1
kerning first=89 second=65 amount=-3
kerning first=87 second=117 amount=-1
kerning first=89 second=81 amount=-1
kerning first=39 second=103 amount=-2
kerning first=86 second=101 amount=-2
kerning first=86 second=117 amount=-1
kerning first=84 second=113 amount=-3
kerning first=34 second=110 amount=-1
kerning first=89 second=84 amount=1
kerning first=84 second=110 amount=-4
kerning first=39 second=99 amount=-2
kerning first=88 second=121 amount=-1
kerning first=65 second=39 amount=-4
kerning first=110 second=39 amount=-4
kerning first=75 second=67 amount=-1
kerning first=88 second=118 amount=-1
kerning first=86 second=114 amount=-1
kerning first=80 second=74 amount=-7
kerning first=84 second=97 amount=-4
kerning first=82 second=84 amount=-3
kerning first=91 second=85 amount=-1
kerning first=102 second=99 amount=-1
kerning first=66 second=86 amount=-1
kerning first=120 second=101 amount=-1
kerning first=102 second=93 amount=1
kerning first=75 second=100 amount=-1
kerning first=84 second=79 amount=-1
kerning first=111 second=121 amount=-1
kerning first=75 second=121 amount=-1
kerning first=81 second=87 amount=-1
kerning first=107 second=113 amount=-1
kerning first=120 second=100 amount=-1
kerning first=90 second=79 amount=-1
kerning first=89 second=114 amount=-1
kerning first=122 second=101 amount=-1
kerning first=111 second=118 amount=-1
kerning first=82 second=86 amount=-1
kerning first=67 second=84 amount=-1
kerning first=70 second=101 amount=-1
kerning first=89 second=83 amount=-1
kerning first=114 second=97 amount=-1
kerning first=70 second=97 amount=-1
kerning first=89 second=102 amount=-1
kerning first=78 second=89 amount=-1
kerning first=70 second=44 amount=-8
kerning first=44 second=39 amount=-6
kerning first=84 second=45 amount=-8
kerning first=89 second=121 amount=-1
kerning first=84 second=86 amount=1
kerning first=87 second=99 amount=-1
kerning first=98 second=122 amount=-1
kerning first=89 second=112 amount=-1
kerning first=89 second=103 amount=-2
kerning first=88 second=81 amount=-1
kerning first=102 second=34 amount=1
kerning first=109 second=39 amount=-4
kerning first=81 second=84 amount=-2
kerning first=121 second=97 amount=-1
kerning first=89 second=99 amount=-2
kerning first=89 second=125 amount=1
kerning first=81 second=86 amount=-1
kerning first=114 second=116 amount=2
kerning first=114 second=119 amount=1
kerning first=84 second=44 amount=-8
kerning first=102 second=39 amount=1
kerning first=44 second=34 amount=-6
kerning first=34 second=109 amount=-1
kerning first=75 second=119 amount=-2
kerning first=76 second=65 amount=1
kerning first=84 second=81 amount=-1
kerning first=76 second=121 amount=-5
kerning first=69 second=101 amount=-1
kerning first=89 second=111 amount=-2
kerning first=80 second=90 amount=-1
kerning first=89 second=97 amount=-3
kerning first=89 second=109 amount=-1
kerning first=90 second=99 amount=-1
kerning first=89 second=86 amount=1
kerning first=79 second=88 amount=-1
kerning first=70 second=103 amount=-1
kerning first=34 second=103 amount=-2
kerning first=84 second=67 amount=-1
kerning first=76 second=79 amount=-2
kerning first=89 second=41 amount=1
kerning first=65 second=118 amount=-2
kerning first=75 second=71 amount=-1
kerning first=76 second=87 amount=-5
kerning first=77 second=89 amount=-1
kerning first=90 second=113 amount=-1
kerning first=79 second=89 amount=-2
kerning first=118 second=111 amount=-1
kerning first=118 second=97 amount=-1
kerning first=88 second=100 amount=-1
kerning first=90 second=121 amount=-1
kerning first=89 second=113 amount=-2
kerning first=84 second=87 amount=1
kerning first=39 second=111 amount=-2
kerning first=80 second=44 amount=-11
kerning first=39 second=100 amount=-2
kerning first=75 second=113 amount=-1
kerning first=88 second=111 amount=-1
kerning first=84 second=89 amount=1
kerning first=84 second=103 amount=-3
kerning first=70 second=117 amount=-1
kerning first=67 second=41 amount=-1
kerning first=89 second=71 amount=-1
kerning first=121 second=44 amount=-4
kerning first=97 second=121 amount=-1
kerning first=87 second=113 amount=-1
kerning first=73 second=84 amount=-1
kerning first=84 second=101 amount=-3
kerning first=75 second=99 amount=-1
kerning first=65 second=85 amount=-1
kerning first=76 second=67 amount=-2
kerning first=76 second=81 amount=-2
kerning first=75 second=79 amount=-1
kerning first=39 second=65 amount=-4
kerning first=76 second=117 amount=-2
kerning first=65 second=84 amount=-5
kerning first=90 second=101 amount=-1
kerning first=84 second=121 amount=-3
kerning first=69 second=99 amount=-1
kerning first=114 second=39 amount=1
kerning first=84 second=109 amount=-4
kerning first=76 second=119 amount=-3
kerning first=76 second=85 amount=-2
kerning first=65 second=116 amount=-1
kerning first=76 second=71 amount=-2
kerning first=79 second=90 amount=-1
kerning first=107 second=100 amount=-1
kerning first=90 second=111 amount=-1
kerning first=79 second=44 amount=-4
kerning first=75 second=45 amount=-2
kerning first=40 second=87 amount=1
kerning first=79 second=86 amount=-1
kerning first=102 second=100 amount=-1
kerning first=72 second=89 amount=-1
kerning first=72 second=88 amount=1
kerning first=79 second=46 amount=-4
kerning first=76 second=89 amount=-8
kerning first=68 second=65 amount=-1
kerning first=79 second=84 amount=-1
kerning first=87 second=100 amount=-1
kerning first=75 second=103 amount=-1
kerning first=90 second=67 amount=-1
kerning first=69 second=103 amount=-1
kerning first=90 second=71 amount=-1
kerning first=86 second=44 amount=-8
kerning first=69 second=121 amount=-1
kerning first=87 second=114 amount=-1
kerning first=118 second=39 amount=1
kerning first=46 second=39 amount=-6
kerning first=72 second=84 amount=-1
kerning first=86 second=46 amount=-8
kerning first=69 second=113 amount=-1
kerning first=69 second=119 amount=-1
kerning first=39 second=39 amount=-4
kerning first=69 second=117 amount=-1
kerning first=111 second=39 amount=-5
kerning first=90 second=81 amount=-1
Binary file not shown.

Before

Width:  |  Height:  |  Size: 51 KiB

-488
View File
@@ -1,488 +0,0 @@
info face="Roboto Black" size=72 bold=0 italic=0 charset="" unicode=0 stretchH=100 smooth=1 aa=1 padding=1,1,1,1 spacing=-2,-2
common lineHeight=85 base=67 scaleW=512 scaleH=512 pages=1 packed=0
page id=0 file="RobotoBlack72White.png"
chars count=98
char id=0 x=0 y=0 width=0 height=0 xoffset=-1 yoffset=66 xadvance=0 page=0 chnl=0
char id=10 x=0 y=0 width=70 height=99 xoffset=2 yoffset=-11 xadvance=74 page=0 chnl=0
char id=32 x=0 y=0 width=0 height=0 xoffset=-1 yoffset=66 xadvance=18 page=0 chnl=0
char id=33 x=460 y=156 width=15 height=55 xoffset=3 yoffset=14 xadvance=20 page=0 chnl=0
char id=34 x=207 y=362 width=22 height=22 xoffset=0 yoffset=12 xadvance=23 page=0 chnl=0
char id=35 x=404 y=266 width=41 height=54 xoffset=0 yoffset=14 xadvance=42 page=0 chnl=0
char id=36 x=220 y=0 width=38 height=69 xoffset=2 yoffset=7 xadvance=42 page=0 chnl=0
char id=37 x=167 y=156 width=49 height=56 xoffset=2 yoffset=13 xadvance=53 page=0 chnl=0
char id=38 x=216 y=156 width=48 height=56 xoffset=1 yoffset=13 xadvance=48 page=0 chnl=0
char id=39 x=499 y=320 width=10 height=22 xoffset=1 yoffset=12 xadvance=11 page=0 chnl=0
char id=40 x=70 y=0 width=22 height=75 xoffset=3 yoffset=9 xadvance=25 page=0 chnl=0
char id=41 x=92 y=0 width=23 height=75 xoffset=0 yoffset=9 xadvance=25 page=0 chnl=0
char id=42 x=103 y=362 width=36 height=34 xoffset=-1 yoffset=14 xadvance=33 page=0 chnl=0
char id=43 x=0 y=362 width=37 height=40 xoffset=1 yoffset=23 xadvance=39 page=0 chnl=0
char id=44 x=483 y=320 width=16 height=25 xoffset=0 yoffset=57 xadvance=20 page=0 chnl=0
char id=45 x=308 y=362 width=23 height=12 xoffset=4 yoffset=38 xadvance=32 page=0 chnl=0
char id=46 x=270 y=362 width=15 height=15 xoffset=3 yoffset=54 xadvance=22 page=0 chnl=0
char id=47 x=374 y=0 width=29 height=58 xoffset=-3 yoffset=14 xadvance=25 page=0 chnl=0
char id=48 x=77 y=156 width=38 height=56 xoffset=2 yoffset=13 xadvance=42 page=0 chnl=0
char id=49 x=299 y=266 width=26 height=54 xoffset=4 yoffset=14 xadvance=41 page=0 chnl=0
char id=50 x=383 y=156 width=39 height=55 xoffset=1 yoffset=13 xadvance=42 page=0 chnl=0
char id=51 x=434 y=99 width=39 height=56 xoffset=1 yoffset=13 xadvance=42 page=0 chnl=0
char id=52 x=325 y=266 width=40 height=54 xoffset=1 yoffset=14 xadvance=42 page=0 chnl=0
char id=53 x=422 y=156 width=38 height=55 xoffset=2 yoffset=14 xadvance=42 page=0 chnl=0
char id=54 x=0 y=156 width=39 height=56 xoffset=2 yoffset=13 xadvance=42 page=0 chnl=0
char id=55 x=365 y=266 width=39 height=54 xoffset=1 yoffset=14 xadvance=42 page=0 chnl=0
char id=56 x=473 y=99 width=38 height=56 xoffset=2 yoffset=13 xadvance=42 page=0 chnl=0
char id=57 x=39 y=156 width=38 height=56 xoffset=2 yoffset=13 xadvance=42 page=0 chnl=0
char id=58 x=471 y=266 width=15 height=43 xoffset=3 yoffset=26 xadvance=21 page=0 chnl=0
char id=59 x=150 y=156 width=17 height=56 xoffset=1 yoffset=26 xadvance=21 page=0 chnl=0
char id=60 x=37 y=362 width=33 height=38 xoffset=1 yoffset=26 xadvance=37 page=0 chnl=0
char id=61 x=172 y=362 width=35 height=27 xoffset=3 yoffset=31 xadvance=42 page=0 chnl=0
char id=62 x=70 y=362 width=33 height=38 xoffset=3 yoffset=26 xadvance=37 page=0 chnl=0
char id=63 x=115 y=156 width=35 height=56 xoffset=0 yoffset=13 xadvance=36 page=0 chnl=0
char id=64 x=258 y=0 width=61 height=68 xoffset=1 yoffset=16 xadvance=64 page=0 chnl=0
char id=65 x=0 y=212 width=53 height=54 xoffset=-2 yoffset=14 xadvance=49 page=0 chnl=0
char id=66 x=53 y=212 width=42 height=54 xoffset=3 yoffset=14 xadvance=47 page=0 chnl=0
char id=67 x=37 y=99 width=46 height=56 xoffset=1 yoffset=13 xadvance=47 page=0 chnl=0
char id=68 x=95 y=212 width=42 height=54 xoffset=3 yoffset=14 xadvance=47 page=0 chnl=0
char id=69 x=137 y=212 width=38 height=54 xoffset=3 yoffset=14 xadvance=41 page=0 chnl=0
char id=70 x=475 y=156 width=36 height=54 xoffset=3 yoffset=14 xadvance=39 page=0 chnl=0
char id=71 x=83 y=99 width=45 height=56 xoffset=2 yoffset=13 xadvance=49 page=0 chnl=0
char id=72 x=175 y=212 width=45 height=54 xoffset=3 yoffset=14 xadvance=51 page=0 chnl=0
char id=73 x=220 y=212 width=14 height=54 xoffset=4 yoffset=14 xadvance=22 page=0 chnl=0
char id=74 x=264 y=156 width=37 height=55 xoffset=0 yoffset=14 xadvance=40 page=0 chnl=0
char id=75 x=234 y=212 width=45 height=54 xoffset=3 yoffset=14 xadvance=46 page=0 chnl=0
char id=76 x=279 y=212 width=36 height=54 xoffset=3 yoffset=14 xadvance=39 page=0 chnl=0
char id=77 x=315 y=212 width=58 height=54 xoffset=3 yoffset=14 xadvance=63 page=0 chnl=0
char id=78 x=373 y=212 width=45 height=54 xoffset=3 yoffset=14 xadvance=51 page=0 chnl=0
char id=79 x=128 y=99 width=47 height=56 xoffset=1 yoffset=13 xadvance=50 page=0 chnl=0
char id=80 x=418 y=212 width=43 height=54 xoffset=3 yoffset=14 xadvance=48 page=0 chnl=0
char id=81 x=319 y=0 width=47 height=65 xoffset=2 yoffset=13 xadvance=50 page=0 chnl=0
char id=82 x=461 y=212 width=43 height=54 xoffset=3 yoffset=14 xadvance=46 page=0 chnl=0
char id=83 x=175 y=99 width=42 height=56 xoffset=1 yoffset=13 xadvance=44 page=0 chnl=0
char id=84 x=0 y=266 width=45 height=54 xoffset=0 yoffset=14 xadvance=45 page=0 chnl=0
char id=85 x=301 y=156 width=42 height=55 xoffset=3 yoffset=14 xadvance=48 page=0 chnl=0
char id=86 x=45 y=266 width=51 height=54 xoffset=-2 yoffset=14 xadvance=48 page=0 chnl=0
char id=87 x=96 y=266 width=64 height=54 xoffset=-1 yoffset=14 xadvance=63 page=0 chnl=0
char id=88 x=160 y=266 width=48 height=54 xoffset=-1 yoffset=14 xadvance=46 page=0 chnl=0
char id=89 x=208 y=266 width=49 height=54 xoffset=-2 yoffset=14 xadvance=45 page=0 chnl=0
char id=90 x=257 y=266 width=42 height=54 xoffset=1 yoffset=14 xadvance=44 page=0 chnl=0
char id=91 x=115 y=0 width=18 height=75 xoffset=3 yoffset=5 xadvance=21 page=0 chnl=0
char id=92 x=403 y=0 width=37 height=58 xoffset=-2 yoffset=14 xadvance=31 page=0 chnl=0
char id=93 x=133 y=0 width=18 height=75 xoffset=0 yoffset=5 xadvance=21 page=0 chnl=0
char id=94 x=139 y=362 width=33 height=28 xoffset=0 yoffset=14 xadvance=32 page=0 chnl=0
char id=95 x=331 y=362 width=34 height=12 xoffset=-1 yoffset=65 xadvance=33 page=0 chnl=0
char id=96 x=285 y=362 width=23 height=13 xoffset=0 yoffset=12 xadvance=24 page=0 chnl=0
char id=97 x=0 y=320 width=37 height=42 xoffset=1 yoffset=27 xadvance=38 page=0 chnl=0
char id=98 x=440 y=0 width=37 height=57 xoffset=2 yoffset=12 xadvance=40 page=0 chnl=0
char id=99 x=37 y=320 width=36 height=42 xoffset=1 yoffset=27 xadvance=38 page=0 chnl=0
char id=100 x=0 y=99 width=37 height=57 xoffset=1 yoffset=12 xadvance=40 page=0 chnl=0
char id=101 x=73 y=320 width=38 height=42 xoffset=1 yoffset=27 xadvance=39 page=0 chnl=0
char id=102 x=477 y=0 width=28 height=57 xoffset=0 yoffset=11 xadvance=27 page=0 chnl=0
char id=103 x=217 y=99 width=38 height=56 xoffset=1 yoffset=27 xadvance=41 page=0 chnl=0
char id=104 x=255 y=99 width=36 height=56 xoffset=2 yoffset=12 xadvance=40 page=0 chnl=0
char id=105 x=291 y=99 width=15 height=56 xoffset=2 yoffset=12 xadvance=19 page=0 chnl=0
char id=106 x=197 y=0 width=23 height=71 xoffset=-5 yoffset=12 xadvance=20 page=0 chnl=0
char id=107 x=306 y=99 width=40 height=56 xoffset=2 yoffset=12 xadvance=39 page=0 chnl=0
char id=108 x=346 y=99 width=14 height=56 xoffset=3 yoffset=12 xadvance=20 page=0 chnl=0
char id=109 x=186 y=320 width=58 height=41 xoffset=2 yoffset=27 xadvance=63 page=0 chnl=0
char id=110 x=244 y=320 width=36 height=41 xoffset=2 yoffset=27 xadvance=40 page=0 chnl=0
char id=111 x=111 y=320 width=39 height=42 xoffset=1 yoffset=27 xadvance=41 page=0 chnl=0
char id=112 x=360 y=99 width=37 height=56 xoffset=2 yoffset=27 xadvance=40 page=0 chnl=0
char id=113 x=397 y=99 width=37 height=56 xoffset=1 yoffset=27 xadvance=40 page=0 chnl=0
char id=114 x=486 y=266 width=25 height=41 xoffset=2 yoffset=27 xadvance=27 page=0 chnl=0
char id=115 x=150 y=320 width=36 height=42 xoffset=0 yoffset=27 xadvance=37 page=0 chnl=0
char id=116 x=445 y=266 width=26 height=51 xoffset=0 yoffset=18 xadvance=25 page=0 chnl=0
char id=117 x=280 y=320 width=36 height=41 xoffset=2 yoffset=28 xadvance=40 page=0 chnl=0
char id=118 x=316 y=320 width=39 height=40 xoffset=-1 yoffset=28 xadvance=37 page=0 chnl=0
char id=119 x=355 y=320 width=54 height=40 xoffset=-1 yoffset=28 xadvance=52 page=0 chnl=0
char id=120 x=409 y=320 width=40 height=40 xoffset=-1 yoffset=28 xadvance=37 page=0 chnl=0
char id=121 x=343 y=156 width=40 height=55 xoffset=-1 yoffset=28 xadvance=37 page=0 chnl=0
char id=122 x=449 y=320 width=34 height=40 xoffset=1 yoffset=28 xadvance=36 page=0 chnl=0
char id=123 x=151 y=0 width=23 height=72 xoffset=0 yoffset=9 xadvance=23 page=0 chnl=0
char id=124 x=366 y=0 width=8 height=63 xoffset=5 yoffset=14 xadvance=18 page=0 chnl=0
char id=125 x=174 y=0 width=23 height=72 xoffset=0 yoffset=9 xadvance=23 page=0 chnl=0
char id=126 x=229 y=362 width=41 height=19 xoffset=2 yoffset=36 xadvance=45 page=0 chnl=0
char id=127 x=0 y=0 width=70 height=99 xoffset=2 yoffset=-11 xadvance=74 page=0 chnl=0
kernings count=385
kerning first=84 second=74 amount=-8
kerning first=86 second=100 amount=-2
kerning first=114 second=113 amount=-1
kerning first=70 second=121 amount=-1
kerning first=34 second=99 amount=-2
kerning first=70 second=99 amount=-1
kerning first=69 second=99 amount=-1
kerning first=88 second=113 amount=-1
kerning first=84 second=46 amount=-9
kerning first=87 second=97 amount=-1
kerning first=90 second=117 amount=-1
kerning first=39 second=97 amount=-2
kerning first=69 second=111 amount=-1
kerning first=87 second=41 amount=1
kerning first=121 second=34 amount=1
kerning first=40 second=86 amount=1
kerning first=85 second=65 amount=-1
kerning first=72 second=65 amount=1
kerning first=114 second=102 amount=1
kerning first=89 second=42 amount=-2
kerning first=114 second=34 amount=1
kerning first=75 second=67 amount=-1
kerning first=89 second=85 amount=-3
kerning first=77 second=88 amount=1
kerning first=84 second=115 amount=-3
kerning first=84 second=71 amount=-1
kerning first=89 second=101 amount=-2
kerning first=89 second=45 amount=-5
kerning first=78 second=88 amount=1
kerning first=68 second=89 amount=-2
kerning first=122 second=103 amount=-1
kerning first=78 second=84 amount=-1
kerning first=86 second=103 amount=-2
kerning first=89 second=79 amount=-1
kerning first=75 second=111 amount=-1
kerning first=111 second=120 amount=-1
kerning first=87 second=44 amount=-5
kerning first=67 second=84 amount=-1
kerning first=84 second=111 amount=-7
kerning first=84 second=83 amount=-1
kerning first=102 second=113 amount=-1
kerning first=39 second=101 amount=-2
kerning first=80 second=88 amount=-2
kerning first=66 second=84 amount=-1
kerning first=65 second=87 amount=-1
kerning first=122 second=100 amount=-1
kerning first=75 second=118 amount=-1
kerning first=73 second=65 amount=1
kerning first=70 second=118 amount=-1
kerning first=73 second=88 amount=1
kerning first=82 second=89 amount=-2
kerning first=65 second=34 amount=-4
kerning first=120 second=99 amount=-1
kerning first=84 second=99 amount=-3
kerning first=84 second=65 amount=-4
kerning first=112 second=39 amount=-1
kerning first=76 second=39 amount=-10
kerning first=78 second=65 amount=1
kerning first=88 second=45 amount=-5
kerning first=34 second=111 amount=-3
kerning first=114 second=99 amount=-1
kerning first=86 second=125 amount=1
kerning first=70 second=111 amount=-1
kerning first=89 second=120 amount=-1
kerning first=90 second=119 amount=-1
kerning first=89 second=89 amount=1
kerning first=89 second=117 amount=-1
kerning first=75 second=117 amount=-1
kerning first=76 second=65 amount=1
kerning first=34 second=34 amount=-1
kerning first=89 second=110 amount=-1
kerning first=88 second=101 amount=-1
kerning first=107 second=103 amount=-1
kerning first=34 second=115 amount=-3
kerning first=80 second=44 amount=-14
kerning first=98 second=39 amount=-1
kerning first=70 second=65 amount=-7
kerning first=89 second=116 amount=-1
kerning first=70 second=46 amount=-10
kerning first=98 second=34 amount=-1
kerning first=70 second=84 amount=1
kerning first=114 second=100 amount=-1
kerning first=88 second=79 amount=-1
kerning first=39 second=113 amount=-2
kerning first=65 second=118 amount=-2
kerning first=114 second=103 amount=-1
kerning first=77 second=65 amount=1
kerning first=120 second=103 amount=-1
kerning first=65 second=110 amount=-2
kerning first=114 second=121 amount=1
kerning first=89 second=100 amount=-2
kerning first=80 second=65 amount=-6
kerning first=121 second=111 amount=-1
kerning first=34 second=101 amount=-2
kerning first=122 second=111 amount=-1
kerning first=114 second=118 amount=1
kerning first=102 second=41 amount=1
kerning first=122 second=113 amount=-1
kerning first=89 second=122 amount=-1
kerning first=68 second=88 amount=-1
kerning first=81 second=89 amount=-1
kerning first=114 second=111 amount=-1
kerning first=46 second=34 amount=-10
kerning first=84 second=112 amount=-3
kerning first=76 second=34 amount=-10
kerning first=39 second=115 amount=-3
kerning first=76 second=118 amount=-4
kerning first=86 second=99 amount=-2
kerning first=84 second=84 amount=1
kerning first=120 second=111 amount=-1
kerning first=65 second=79 amount=-1
kerning first=87 second=101 amount=-1
kerning first=67 second=125 amount=-1
kerning first=120 second=113 amount=-1
kerning first=118 second=46 amount=-6
kerning first=88 second=103 amount=-1
kerning first=111 second=122 amount=-1
kerning first=77 second=84 amount=-1
kerning first=114 second=46 amount=-6
kerning first=34 second=39 amount=-1
kerning first=65 second=121 amount=-2
kerning first=114 second=44 amount=-6
kerning first=69 second=84 amount=1
kerning first=89 second=46 amount=-8
kerning first=97 second=39 amount=-1
kerning first=34 second=100 amount=-2
kerning first=70 second=100 amount=-1
kerning first=84 second=120 amount=-3
kerning first=90 second=118 amount=-1
kerning first=70 second=114 amount=-1
kerning first=34 second=112 amount=-1
kerning first=89 second=86 amount=1
kerning first=86 second=113 amount=-2
kerning first=88 second=71 amount=-1
kerning first=122 second=99 amount=-1
kerning first=66 second=89 amount=-2
kerning first=102 second=103 amount=-1
kerning first=88 second=67 amount=-1
kerning first=39 second=110 amount=-1
kerning first=88 second=117 amount=-1
kerning first=89 second=118 amount=-1
kerning first=97 second=118 amount=-1
kerning first=87 second=65 amount=-2
kerning first=89 second=67 amount=-1
kerning first=89 second=74 amount=-3
kerning first=102 second=101 amount=-1
kerning first=86 second=111 amount=-2
kerning first=65 second=119 amount=-1
kerning first=84 second=100 amount=-3
kerning first=120 second=100 amount=-1
kerning first=104 second=34 amount=-3
kerning first=86 second=41 amount=1
kerning first=111 second=34 amount=-3
kerning first=40 second=89 amount=1
kerning first=121 second=39 amount=1
kerning first=70 second=74 amount=-7
kerning first=68 second=90 amount=-1
kerning first=98 second=120 amount=-1
kerning first=110 second=34 amount=-3
kerning first=119 second=46 amount=-4
kerning first=69 second=102 amount=-1
kerning first=118 second=44 amount=-6
kerning first=84 second=114 amount=-2
kerning first=86 second=97 amount=-2
kerning first=40 second=87 amount=1
kerning first=65 second=109 amount=-2
kerning first=68 second=86 amount=-1
kerning first=86 second=93 amount=1
kerning first=65 second=67 amount=-1
kerning first=97 second=34 amount=-1
kerning first=34 second=65 amount=-4
kerning first=84 second=118 amount=-3
kerning first=112 second=34 amount=-1
kerning first=76 second=84 amount=-7
kerning first=107 second=99 amount=-1
kerning first=123 second=85 amount=-1
kerning first=102 second=125 amount=1
kerning first=65 second=63 amount=-3
kerning first=89 second=44 amount=-8
kerning first=80 second=118 amount=1
kerning first=112 second=122 amount=-1
kerning first=79 second=65 amount=-1
kerning first=80 second=121 amount=1
kerning first=118 second=34 amount=1
kerning first=87 second=45 amount=-2
kerning first=69 second=100 amount=-1
kerning first=87 second=103 amount=-1
kerning first=112 second=120 amount=-1
kerning first=86 second=65 amount=-3
kerning first=65 second=81 amount=-1
kerning first=68 second=44 amount=-4
kerning first=86 second=45 amount=-6
kerning first=39 second=34 amount=-1
kerning first=72 second=88 amount=1
kerning first=68 second=46 amount=-4
kerning first=65 second=89 amount=-5
kerning first=69 second=118 amount=-1
kerning first=89 second=38 amount=-1
kerning first=88 second=99 amount=-1
kerning first=65 second=71 amount=-1
kerning first=91 second=74 amount=-1
kerning first=75 second=101 amount=-1
kerning first=39 second=112 amount=-1
kerning first=70 second=113 amount=-1
kerning first=119 second=44 amount=-4
kerning first=72 second=89 amount=-1
kerning first=90 second=103 amount=-1
kerning first=65 second=86 amount=-3
kerning first=84 second=119 amount=-2
kerning first=34 second=110 amount=-1
kerning first=39 second=109 amount=-1
kerning first=75 second=81 amount=-1
kerning first=89 second=115 amount=-2
kerning first=89 second=87 amount=1
kerning first=114 second=101 amount=-1
kerning first=116 second=111 amount=-1
kerning first=90 second=100 amount=-1
kerning first=79 second=89 amount=-2
kerning first=84 second=122 amount=-2
kerning first=68 second=84 amount=-3
kerning first=76 second=86 amount=-7
kerning first=74 second=65 amount=-1
kerning first=107 second=101 amount=-1
kerning first=80 second=46 amount=-14
kerning first=89 second=93 amount=1
kerning first=89 second=65 amount=-5
kerning first=87 second=117 amount=-1
kerning first=89 second=81 amount=-1
kerning first=39 second=103 amount=-2
kerning first=86 second=101 amount=-2
kerning first=86 second=117 amount=-1
kerning first=84 second=113 amount=-3
kerning first=87 second=46 amount=-5
kerning first=47 second=47 amount=-9
kerning first=75 second=103 amount=-1
kerning first=89 second=84 amount=1
kerning first=84 second=110 amount=-3
kerning first=39 second=99 amount=-2
kerning first=88 second=121 amount=-1
kerning first=65 second=39 amount=-4
kerning first=110 second=39 amount=-3
kerning first=88 second=118 amount=-1
kerning first=86 second=114 amount=-1
kerning first=80 second=74 amount=-6
kerning first=84 second=97 amount=-6
kerning first=82 second=84 amount=-2
kerning first=91 second=85 amount=-1
kerning first=102 second=99 amount=-1
kerning first=66 second=86 amount=-1
kerning first=120 second=101 amount=-1
kerning first=102 second=93 amount=1
kerning first=75 second=100 amount=-1
kerning first=84 second=79 amount=-1
kerning first=44 second=39 amount=-10
kerning first=111 second=121 amount=-1
kerning first=75 second=121 amount=-1
kerning first=81 second=87 amount=-1
kerning first=107 second=113 amount=-1
kerning first=90 second=79 amount=-1
kerning first=89 second=114 amount=-1
kerning first=122 second=101 amount=-1
kerning first=111 second=118 amount=-1
kerning first=82 second=86 amount=-1
kerning first=70 second=101 amount=-1
kerning first=114 second=97 amount=-1
kerning first=70 second=97 amount=-1
kerning first=34 second=97 amount=-2
kerning first=89 second=102 amount=-1
kerning first=78 second=89 amount=-1
kerning first=70 second=44 amount=-10
kerning first=104 second=39 amount=-3
kerning first=84 second=45 amount=-10
kerning first=89 second=121 amount=-1
kerning first=109 second=34 amount=-3
kerning first=84 second=86 amount=1
kerning first=87 second=99 amount=-1
kerning first=32 second=84 amount=-2
kerning first=98 second=122 amount=-1
kerning first=89 second=112 amount=-1
kerning first=89 second=103 amount=-2
kerning first=65 second=116 amount=-1
kerning first=88 second=81 amount=-1
kerning first=102 second=34 amount=1
kerning first=109 second=39 amount=-3
kerning first=81 second=84 amount=-1
kerning first=121 second=97 amount=-1
kerning first=89 second=99 amount=-2
kerning first=89 second=125 amount=1
kerning first=81 second=86 amount=-1
kerning first=114 second=116 amount=2
kerning first=114 second=119 amount=1
kerning first=84 second=44 amount=-9
kerning first=102 second=39 amount=1
kerning first=44 second=34 amount=-10
kerning first=34 second=109 amount=-1
kerning first=84 second=101 amount=-3
kerning first=75 second=119 amount=-2
kerning first=84 second=81 amount=-1
kerning first=76 second=121 amount=-4
kerning first=69 second=101 amount=-1
kerning first=80 second=90 amount=-1
kerning first=89 second=97 amount=-2
kerning first=89 second=109 amount=-1
kerning first=90 second=99 amount=-1
kerning first=79 second=88 amount=-1
kerning first=70 second=103 amount=-1
kerning first=34 second=103 amount=-2
kerning first=84 second=67 amount=-1
kerning first=76 second=79 amount=-2
kerning first=34 second=113 amount=-2
kerning first=89 second=41 amount=1
kerning first=75 second=71 amount=-1
kerning first=76 second=87 amount=-3
kerning first=77 second=89 amount=-1
kerning first=90 second=113 amount=-1
kerning first=118 second=111 amount=-1
kerning first=118 second=97 amount=-1
kerning first=88 second=100 amount=-1
kerning first=89 second=111 amount=-2
kerning first=90 second=121 amount=-1
kerning first=89 second=113 amount=-2
kerning first=84 second=87 amount=1
kerning first=39 second=111 amount=-3
kerning first=39 second=100 amount=-2
kerning first=75 second=113 amount=-1
kerning first=88 second=111 amount=-1
kerning first=87 second=111 amount=-1
kerning first=89 second=83 amount=-1
kerning first=84 second=89 amount=1
kerning first=84 second=103 amount=-3
kerning first=70 second=117 amount=-1
kerning first=67 second=41 amount=-1
kerning first=89 second=71 amount=-1
kerning first=121 second=44 amount=-6
kerning first=97 second=121 amount=-1
kerning first=87 second=113 amount=-1
kerning first=73 second=84 amount=-1
kerning first=121 second=46 amount=-6
kerning first=75 second=99 amount=-1
kerning first=65 second=112 amount=-2
kerning first=65 second=85 amount=-1
kerning first=76 second=67 amount=-2
kerning first=76 second=81 amount=-2
kerning first=102 second=100 amount=-1
kerning first=75 second=79 amount=-1
kerning first=39 second=65 amount=-4
kerning first=65 second=84 amount=-4
kerning first=90 second=101 amount=-1
kerning first=84 second=121 amount=-3
kerning first=114 second=39 amount=1
kerning first=84 second=109 amount=-3
kerning first=123 second=74 amount=-1
kerning first=76 second=119 amount=-2
kerning first=84 second=117 amount=-2
kerning first=76 second=85 amount=-1
kerning first=76 second=71 amount=-2
kerning first=79 second=90 amount=-1
kerning first=107 second=100 amount=-1
kerning first=90 second=111 amount=-1
kerning first=79 second=44 amount=-4
kerning first=75 second=45 amount=-6
kerning first=79 second=86 amount=-1
kerning first=79 second=46 amount=-4
kerning first=76 second=89 amount=-10
kerning first=68 second=65 amount=-1
kerning first=79 second=84 amount=-3
kerning first=87 second=100 amount=-1
kerning first=84 second=32 amount=-2
kerning first=90 second=67 amount=-1
kerning first=69 second=103 amount=-1
kerning first=90 second=71 amount=-1
kerning first=86 second=44 amount=-8
kerning first=69 second=121 amount=-1
kerning first=87 second=114 amount=-1
kerning first=118 second=39 amount=1
kerning first=46 second=39 amount=-10
kerning first=72 second=84 amount=-1
kerning first=86 second=46 amount=-8
kerning first=69 second=113 amount=-1
kerning first=69 second=119 amount=-1
kerning first=73 second=89 amount=-1
kerning first=39 second=39 amount=-1
kerning first=69 second=117 amount=-1
kerning first=111 second=39 amount=-3
kerning first=90 second=81 amount=-1
Binary file not shown.

Before

Width:  |  Height:  |  Size: 49 KiB

-103
View File
@@ -1,103 +0,0 @@
info face="Roboto Mono" size=72 bold=0 italic=0 charset="" unicode=0 stretchH=100 smooth=1 aa=1 padding=1,1,1,1 spacing=-2,-2
common lineHeight=96 base=76 scaleW=512 scaleH=512 pages=1 packed=0
page id=0 file="RobotoMono72White.png"
chars count=98
char id=0 x=0 y=0 width=0 height=0 xoffset=-1 yoffset=75 xadvance=0 page=0 chnl=0
char id=10 x=0 y=0 width=45 height=99 xoffset=-1 yoffset=-2 xadvance=43 page=0 chnl=0
char id=32 x=0 y=0 width=0 height=0 xoffset=-1 yoffset=75 xadvance=43 page=0 chnl=0
char id=33 x=498 y=99 width=10 height=55 xoffset=16 yoffset=23 xadvance=43 page=0 chnl=0
char id=34 x=434 y=319 width=20 height=19 xoffset=11 yoffset=21 xadvance=43 page=0 chnl=0
char id=35 x=175 y=265 width=41 height=54 xoffset=1 yoffset=23 xadvance=43 page=0 chnl=0
char id=36 x=200 y=0 width=35 height=69 xoffset=5 yoffset=15 xadvance=43 page=0 chnl=0
char id=37 x=0 y=155 width=42 height=56 xoffset=1 yoffset=22 xadvance=44 page=0 chnl=0
char id=38 x=42 y=155 width=41 height=56 xoffset=3 yoffset=22 xadvance=44 page=0 chnl=0
char id=39 x=502 y=211 width=7 height=19 xoffset=16 yoffset=21 xadvance=43 page=0 chnl=0
char id=40 x=45 y=0 width=21 height=78 xoffset=12 yoffset=16 xadvance=44 page=0 chnl=0
char id=41 x=66 y=0 width=22 height=78 xoffset=9 yoffset=16 xadvance=43 page=0 chnl=0
char id=42 x=256 y=319 width=37 height=37 xoffset=4 yoffset=32 xadvance=43 page=0 chnl=0
char id=43 x=219 y=319 width=37 height=40 xoffset=3 yoffset=32 xadvance=43 page=0 chnl=0
char id=44 x=421 y=319 width=13 height=22 xoffset=11 yoffset=67 xadvance=43 page=0 chnl=0
char id=45 x=17 y=360 width=29 height=8 xoffset=7 yoffset=49 xadvance=44 page=0 chnl=0
char id=46 x=496 y=319 width=12 height=13 xoffset=16 yoffset=65 xadvance=43 page=0 chnl=0
char id=47 x=319 y=0 width=31 height=58 xoffset=7 yoffset=23 xadvance=43 page=0 chnl=0
char id=48 x=431 y=99 width=35 height=56 xoffset=4 yoffset=22 xadvance=43 page=0 chnl=0
char id=49 x=36 y=265 width=23 height=54 xoffset=6 yoffset=23 xadvance=44 page=0 chnl=0
char id=50 x=189 y=155 width=37 height=55 xoffset=2 yoffset=22 xadvance=44 page=0 chnl=0
char id=51 x=361 y=99 width=35 height=56 xoffset=2 yoffset=22 xadvance=43 page=0 chnl=0
char id=52 x=59 y=265 width=39 height=54 xoffset=2 yoffset=23 xadvance=44 page=0 chnl=0
char id=53 x=226 y=155 width=35 height=55 xoffset=5 yoffset=23 xadvance=43 page=0 chnl=0
char id=54 x=261 y=155 width=35 height=55 xoffset=4 yoffset=23 xadvance=43 page=0 chnl=0
char id=55 x=98 y=265 width=37 height=54 xoffset=3 yoffset=23 xadvance=44 page=0 chnl=0
char id=56 x=396 y=99 width=35 height=56 xoffset=5 yoffset=22 xadvance=43 page=0 chnl=0
char id=57 x=296 y=155 width=34 height=55 xoffset=4 yoffset=22 xadvance=43 page=0 chnl=0
char id=58 x=490 y=211 width=12 height=43 xoffset=18 yoffset=35 xadvance=43 page=0 chnl=0
char id=59 x=486 y=0 width=14 height=55 xoffset=16 yoffset=35 xadvance=43 page=0 chnl=0
char id=60 x=293 y=319 width=32 height=35 xoffset=5 yoffset=36 xadvance=43 page=0 chnl=0
char id=61 x=388 y=319 width=33 height=23 xoffset=5 yoffset=41 xadvance=43 page=0 chnl=0
char id=62 x=325 y=319 width=33 height=35 xoffset=5 yoffset=36 xadvance=43 page=0 chnl=0
char id=63 x=466 y=99 width=32 height=56 xoffset=6 yoffset=22 xadvance=43 page=0 chnl=0
char id=64 x=135 y=265 width=40 height=54 xoffset=1 yoffset=23 xadvance=42 page=0 chnl=0
char id=65 x=330 y=155 width=42 height=54 xoffset=1 yoffset=23 xadvance=43 page=0 chnl=0
char id=66 x=372 y=155 width=35 height=54 xoffset=5 yoffset=23 xadvance=43 page=0 chnl=0
char id=67 x=448 y=0 width=38 height=56 xoffset=3 yoffset=22 xadvance=43 page=0 chnl=0
char id=68 x=407 y=155 width=37 height=54 xoffset=4 yoffset=23 xadvance=43 page=0 chnl=0
char id=69 x=444 y=155 width=34 height=54 xoffset=5 yoffset=23 xadvance=43 page=0 chnl=0
char id=70 x=0 y=211 width=34 height=54 xoffset=6 yoffset=23 xadvance=44 page=0 chnl=0
char id=71 x=0 y=99 width=38 height=56 xoffset=3 yoffset=22 xadvance=44 page=0 chnl=0
char id=72 x=34 y=211 width=36 height=54 xoffset=4 yoffset=23 xadvance=43 page=0 chnl=0
char id=73 x=478 y=155 width=33 height=54 xoffset=5 yoffset=23 xadvance=43 page=0 chnl=0
char id=74 x=83 y=155 width=36 height=55 xoffset=2 yoffset=23 xadvance=43 page=0 chnl=0
char id=75 x=70 y=211 width=38 height=54 xoffset=5 yoffset=23 xadvance=43 page=0 chnl=0
char id=76 x=108 y=211 width=34 height=54 xoffset=6 yoffset=23 xadvance=43 page=0 chnl=0
char id=77 x=142 y=211 width=36 height=54 xoffset=4 yoffset=23 xadvance=43 page=0 chnl=0
char id=78 x=178 y=211 width=35 height=54 xoffset=4 yoffset=23 xadvance=43 page=0 chnl=0
char id=79 x=38 y=99 width=38 height=56 xoffset=3 yoffset=22 xadvance=43 page=0 chnl=0
char id=80 x=213 y=211 width=36 height=54 xoffset=6 yoffset=23 xadvance=43 page=0 chnl=0
char id=81 x=242 y=0 width=40 height=64 xoffset=2 yoffset=22 xadvance=43 page=0 chnl=0
char id=82 x=249 y=211 width=36 height=54 xoffset=5 yoffset=23 xadvance=43 page=0 chnl=0
char id=83 x=76 y=99 width=38 height=56 xoffset=3 yoffset=22 xadvance=44 page=0 chnl=0
char id=84 x=285 y=211 width=40 height=54 xoffset=2 yoffset=23 xadvance=44 page=0 chnl=0
char id=85 x=119 y=155 width=36 height=55 xoffset=4 yoffset=23 xadvance=43 page=0 chnl=0
char id=86 x=325 y=211 width=41 height=54 xoffset=1 yoffset=23 xadvance=43 page=0 chnl=0
char id=87 x=366 y=211 width=42 height=54 xoffset=1 yoffset=23 xadvance=43 page=0 chnl=0
char id=88 x=408 y=211 width=41 height=54 xoffset=2 yoffset=23 xadvance=43 page=0 chnl=0
char id=89 x=449 y=211 width=41 height=54 xoffset=1 yoffset=23 xadvance=43 page=0 chnl=0
char id=90 x=0 y=265 width=36 height=54 xoffset=3 yoffset=23 xadvance=43 page=0 chnl=0
char id=91 x=88 y=0 width=16 height=72 xoffset=14 yoffset=16 xadvance=43 page=0 chnl=0
char id=92 x=350 y=0 width=30 height=58 xoffset=7 yoffset=23 xadvance=43 page=0 chnl=0
char id=93 x=104 y=0 width=17 height=72 xoffset=13 yoffset=16 xadvance=44 page=0 chnl=0
char id=94 x=358 y=319 width=30 height=30 xoffset=7 yoffset=23 xadvance=43 page=0 chnl=0
char id=95 x=46 y=360 width=34 height=8 xoffset=4 yoffset=74 xadvance=43 page=0 chnl=0
char id=96 x=0 y=360 width=17 height=12 xoffset=13 yoffset=22 xadvance=43 page=0 chnl=0
char id=97 x=251 y=265 width=35 height=42 xoffset=4 yoffset=36 xadvance=43 page=0 chnl=0
char id=98 x=380 y=0 width=34 height=57 xoffset=5 yoffset=21 xadvance=43 page=0 chnl=0
char id=99 x=286 y=265 width=35 height=42 xoffset=4 yoffset=36 xadvance=43 page=0 chnl=0
char id=100 x=414 y=0 width=34 height=57 xoffset=4 yoffset=21 xadvance=43 page=0 chnl=0
char id=101 x=321 y=265 width=36 height=42 xoffset=4 yoffset=36 xadvance=43 page=0 chnl=0
char id=102 x=282 y=0 width=37 height=58 xoffset=4 yoffset=19 xadvance=43 page=0 chnl=0
char id=103 x=114 y=99 width=34 height=56 xoffset=4 yoffset=36 xadvance=43 page=0 chnl=0
char id=104 x=148 y=99 width=34 height=56 xoffset=5 yoffset=21 xadvance=43 page=0 chnl=0
char id=105 x=155 y=155 width=34 height=55 xoffset=6 yoffset=22 xadvance=43 page=0 chnl=0
char id=106 x=121 y=0 width=26 height=71 xoffset=6 yoffset=22 xadvance=44 page=0 chnl=0
char id=107 x=182 y=99 width=36 height=56 xoffset=5 yoffset=21 xadvance=43 page=0 chnl=0
char id=108 x=218 y=99 width=34 height=56 xoffset=6 yoffset=21 xadvance=43 page=0 chnl=0
char id=109 x=428 y=265 width=39 height=41 xoffset=2 yoffset=36 xadvance=43 page=0 chnl=0
char id=110 x=467 y=265 width=34 height=41 xoffset=5 yoffset=36 xadvance=43 page=0 chnl=0
char id=111 x=357 y=265 width=37 height=42 xoffset=3 yoffset=36 xadvance=43 page=0 chnl=0
char id=112 x=252 y=99 width=34 height=56 xoffset=5 yoffset=36 xadvance=43 page=0 chnl=0
char id=113 x=286 y=99 width=34 height=56 xoffset=4 yoffset=36 xadvance=43 page=0 chnl=0
char id=114 x=0 y=319 width=29 height=41 xoffset=11 yoffset=36 xadvance=44 page=0 chnl=0
char id=115 x=394 y=265 width=34 height=42 xoffset=5 yoffset=36 xadvance=43 page=0 chnl=0
char id=116 x=216 y=265 width=35 height=51 xoffset=4 yoffset=27 xadvance=43 page=0 chnl=0
char id=117 x=29 y=319 width=33 height=41 xoffset=5 yoffset=37 xadvance=43 page=0 chnl=0
char id=118 x=62 y=319 width=39 height=40 xoffset=2 yoffset=37 xadvance=43 page=0 chnl=0
char id=119 x=101 y=319 width=43 height=40 xoffset=0 yoffset=37 xadvance=43 page=0 chnl=0
char id=120 x=144 y=319 width=40 height=40 xoffset=2 yoffset=37 xadvance=43 page=0 chnl=0
char id=121 x=320 y=99 width=41 height=56 xoffset=1 yoffset=37 xadvance=43 page=0 chnl=0
char id=122 x=184 y=319 width=35 height=40 xoffset=5 yoffset=37 xadvance=44 page=0 chnl=0
char id=123 x=147 y=0 width=26 height=71 xoffset=10 yoffset=19 xadvance=43 page=0 chnl=0
char id=124 x=235 y=0 width=7 height=68 xoffset=18 yoffset=23 xadvance=43 page=0 chnl=0
char id=125 x=173 y=0 width=27 height=71 xoffset=10 yoffset=19 xadvance=44 page=0 chnl=0
char id=126 x=454 y=319 width=42 height=16 xoffset=1 yoffset=47 xadvance=44 page=0 chnl=0
char id=127 x=0 y=0 width=45 height=99 xoffset=-1 yoffset=-2 xadvance=43 page=0 chnl=0
kernings count=0
Binary file not shown.

Before

Width:  |  Height:  |  Size: 51 KiB

-492
View File
@@ -1,492 +0,0 @@
info face="Roboto Slab Regular" size=72 bold=0 italic=0 charset="" unicode=0 stretchH=100 smooth=1 aa=1 padding=1,1,1,1 spacing=-2,-2
common lineHeight=96 base=76 scaleW=512 scaleH=512 pages=1 packed=0
page id=0 file="RobotoSlab72White.png"
chars count=98
char id=0 x=0 y=0 width=0 height=0 xoffset=-1 yoffset=75 xadvance=0 page=0 chnl=0
char id=10 x=0 y=0 width=70 height=98 xoffset=0 yoffset=-1 xadvance=70 page=0 chnl=0
char id=32 x=0 y=0 width=0 height=0 xoffset=-1 yoffset=75 xadvance=18 page=0 chnl=0
char id=33 x=497 y=156 width=9 height=54 xoffset=4 yoffset=23 xadvance=17 page=0 chnl=0
char id=34 x=191 y=362 width=19 height=20 xoffset=5 yoffset=20 xadvance=28 page=0 chnl=0
char id=35 x=406 y=266 width=41 height=54 xoffset=1 yoffset=23 xadvance=43 page=0 chnl=0
char id=36 x=212 y=0 width=35 height=69 xoffset=2 yoffset=15 xadvance=39 page=0 chnl=0
char id=37 x=174 y=156 width=48 height=56 xoffset=2 yoffset=22 xadvance=52 page=0 chnl=0
char id=38 x=222 y=156 width=44 height=56 xoffset=2 yoffset=22 xadvance=46 page=0 chnl=0
char id=39 x=210 y=362 width=8 height=20 xoffset=5 yoffset=20 xadvance=17 page=0 chnl=0
char id=40 x=70 y=0 width=21 height=77 xoffset=3 yoffset=17 xadvance=23 page=0 chnl=0
char id=41 x=91 y=0 width=21 height=77 xoffset=-1 yoffset=17 xadvance=23 page=0 chnl=0
char id=42 x=100 y=362 width=31 height=33 xoffset=1 yoffset=23 xadvance=33 page=0 chnl=0
char id=43 x=0 y=362 width=37 height=40 xoffset=2 yoffset=32 xadvance=41 page=0 chnl=0
char id=44 x=492 y=320 width=13 height=21 xoffset=-1 yoffset=67 xadvance=14 page=0 chnl=0
char id=45 x=287 y=362 width=19 height=8 xoffset=4 yoffset=50 xadvance=27 page=0 chnl=0
char id=46 x=278 y=362 width=9 height=9 xoffset=4 yoffset=68 xadvance=17 page=0 chnl=0
char id=47 x=470 y=0 width=30 height=58 xoffset=-1 yoffset=23 xadvance=29 page=0 chnl=0
char id=48 x=139 y=156 width=35 height=56 xoffset=3 yoffset=22 xadvance=41 page=0 chnl=0
char id=49 x=305 y=266 width=25 height=54 xoffset=3 yoffset=23 xadvance=30 page=0 chnl=0
char id=50 x=357 y=156 width=36 height=55 xoffset=2 yoffset=22 xadvance=40 page=0 chnl=0
char id=51 x=0 y=156 width=34 height=56 xoffset=2 yoffset=22 xadvance=39 page=0 chnl=0
char id=52 x=330 y=266 width=39 height=54 xoffset=1 yoffset=23 xadvance=42 page=0 chnl=0
char id=53 x=393 y=156 width=33 height=55 xoffset=2 yoffset=23 xadvance=37 page=0 chnl=0
char id=54 x=34 y=156 width=35 height=56 xoffset=3 yoffset=22 xadvance=40 page=0 chnl=0
char id=55 x=369 y=266 width=37 height=54 xoffset=2 yoffset=23 xadvance=40 page=0 chnl=0
char id=56 x=69 y=156 width=35 height=56 xoffset=2 yoffset=22 xadvance=39 page=0 chnl=0
char id=57 x=104 y=156 width=35 height=56 xoffset=2 yoffset=22 xadvance=41 page=0 chnl=0
char id=58 x=500 y=0 width=9 height=40 xoffset=4 yoffset=37 xadvance=15 page=0 chnl=0
char id=59 x=447 y=266 width=13 height=52 xoffset=0 yoffset=37 xadvance=15 page=0 chnl=0
char id=60 x=37 y=362 width=31 height=35 xoffset=2 yoffset=39 xadvance=36 page=0 chnl=0
char id=61 x=160 y=362 width=31 height=23 xoffset=4 yoffset=40 xadvance=39 page=0 chnl=0
char id=62 x=68 y=362 width=32 height=35 xoffset=3 yoffset=39 xadvance=37 page=0 chnl=0
char id=63 x=480 y=98 width=31 height=55 xoffset=1 yoffset=22 xadvance=33 page=0 chnl=0
char id=64 x=247 y=0 width=60 height=68 xoffset=1 yoffset=25 xadvance=64 page=0 chnl=0
char id=65 x=426 y=156 width=51 height=54 xoffset=1 yoffset=23 xadvance=53 page=0 chnl=0
char id=66 x=0 y=212 width=44 height=54 xoffset=1 yoffset=23 xadvance=47 page=0 chnl=0
char id=67 x=191 y=98 width=42 height=56 xoffset=1 yoffset=22 xadvance=46 page=0 chnl=0
char id=68 x=44 y=212 width=46 height=54 xoffset=1 yoffset=23 xadvance=50 page=0 chnl=0
char id=69 x=90 y=212 width=42 height=54 xoffset=1 yoffset=23 xadvance=46 page=0 chnl=0
char id=70 x=132 y=212 width=42 height=54 xoffset=1 yoffset=23 xadvance=44 page=0 chnl=0
char id=71 x=233 y=98 width=43 height=56 xoffset=1 yoffset=22 xadvance=49 page=0 chnl=0
char id=72 x=174 y=212 width=52 height=54 xoffset=1 yoffset=23 xadvance=55 page=0 chnl=0
char id=73 x=477 y=156 width=20 height=54 xoffset=1 yoffset=23 xadvance=22 page=0 chnl=0
char id=74 x=266 y=156 width=39 height=55 xoffset=1 yoffset=23 xadvance=41 page=0 chnl=0
char id=75 x=226 y=212 width=48 height=54 xoffset=1 yoffset=23 xadvance=50 page=0 chnl=0
char id=76 x=274 y=212 width=39 height=54 xoffset=1 yoffset=23 xadvance=42 page=0 chnl=0
char id=77 x=313 y=212 width=64 height=54 xoffset=1 yoffset=23 xadvance=66 page=0 chnl=0
char id=78 x=377 y=212 width=52 height=54 xoffset=1 yoffset=23 xadvance=54 page=0 chnl=0
char id=79 x=276 y=98 width=47 height=56 xoffset=2 yoffset=22 xadvance=51 page=0 chnl=0
char id=80 x=429 y=212 width=43 height=54 xoffset=1 yoffset=23 xadvance=45 page=0 chnl=0
char id=81 x=307 y=0 width=48 height=64 xoffset=2 yoffset=22 xadvance=51 page=0 chnl=0
char id=82 x=0 y=266 width=46 height=54 xoffset=1 yoffset=23 xadvance=48 page=0 chnl=0
char id=83 x=323 y=98 width=38 height=56 xoffset=3 yoffset=22 xadvance=43 page=0 chnl=0
char id=84 x=46 y=266 width=45 height=54 xoffset=0 yoffset=23 xadvance=45 page=0 chnl=0
char id=85 x=305 y=156 width=52 height=55 xoffset=1 yoffset=23 xadvance=54 page=0 chnl=0
char id=86 x=91 y=266 width=50 height=54 xoffset=1 yoffset=23 xadvance=52 page=0 chnl=0
char id=87 x=141 y=266 width=67 height=54 xoffset=0 yoffset=23 xadvance=67 page=0 chnl=0
char id=88 x=208 y=266 width=49 height=54 xoffset=1 yoffset=23 xadvance=51 page=0 chnl=0
char id=89 x=257 y=266 width=48 height=54 xoffset=1 yoffset=23 xadvance=50 page=0 chnl=0
char id=90 x=472 y=212 width=38 height=54 xoffset=2 yoffset=23 xadvance=42 page=0 chnl=0
char id=91 x=180 y=0 width=16 height=72 xoffset=5 yoffset=16 xadvance=21 page=0 chnl=0
char id=92 x=0 y=98 width=31 height=58 xoffset=0 yoffset=23 xadvance=30 page=0 chnl=0
char id=93 x=196 y=0 width=16 height=72 xoffset=-1 yoffset=16 xadvance=19 page=0 chnl=0
char id=94 x=131 y=362 width=29 height=28 xoffset=1 yoffset=23 xadvance=30 page=0 chnl=0
char id=95 x=306 y=362 width=34 height=8 xoffset=3 yoffset=74 xadvance=40 page=0 chnl=0
char id=96 x=260 y=362 width=18 height=12 xoffset=1 yoffset=22 xadvance=20 page=0 chnl=0
char id=97 x=0 y=320 width=36 height=42 xoffset=3 yoffset=36 xadvance=41 page=0 chnl=0
char id=98 x=363 y=0 width=41 height=58 xoffset=-2 yoffset=20 xadvance=42 page=0 chnl=0
char id=99 x=36 y=320 width=34 height=42 xoffset=2 yoffset=36 xadvance=39 page=0 chnl=0
char id=100 x=404 y=0 width=40 height=58 xoffset=2 yoffset=20 xadvance=43 page=0 chnl=0
char id=101 x=70 y=320 width=34 height=42 xoffset=2 yoffset=36 xadvance=39 page=0 chnl=0
char id=102 x=444 y=0 width=26 height=58 xoffset=1 yoffset=19 xadvance=25 page=0 chnl=0
char id=103 x=31 y=98 width=34 height=57 xoffset=2 yoffset=36 xadvance=40 page=0 chnl=0
char id=104 x=65 y=98 width=44 height=57 xoffset=1 yoffset=20 xadvance=46 page=0 chnl=0
char id=105 x=109 y=98 width=20 height=57 xoffset=2 yoffset=20 xadvance=23 page=0 chnl=0
char id=106 x=112 y=0 width=18 height=73 xoffset=-2 yoffset=20 xadvance=20 page=0 chnl=0
char id=107 x=129 y=98 width=42 height=57 xoffset=1 yoffset=20 xadvance=44 page=0 chnl=0
char id=108 x=171 y=98 width=20 height=57 xoffset=1 yoffset=20 xadvance=22 page=0 chnl=0
char id=109 x=171 y=320 width=66 height=41 xoffset=1 yoffset=36 xadvance=68 page=0 chnl=0
char id=110 x=237 y=320 width=44 height=41 xoffset=1 yoffset=36 xadvance=46 page=0 chnl=0
char id=111 x=104 y=320 width=36 height=42 xoffset=2 yoffset=36 xadvance=40 page=0 chnl=0
char id=112 x=361 y=98 width=40 height=56 xoffset=1 yoffset=36 xadvance=43 page=0 chnl=0
char id=113 x=401 y=98 width=39 height=56 xoffset=2 yoffset=36 xadvance=40 page=0 chnl=0
char id=114 x=484 y=266 width=27 height=41 xoffset=2 yoffset=36 xadvance=30 page=0 chnl=0
char id=115 x=140 y=320 width=31 height=42 xoffset=3 yoffset=36 xadvance=36 page=0 chnl=0
char id=116 x=460 y=266 width=24 height=51 xoffset=1 yoffset=27 xadvance=26 page=0 chnl=0
char id=117 x=281 y=320 width=43 height=41 xoffset=0 yoffset=37 xadvance=44 page=0 chnl=0
char id=118 x=324 y=320 width=39 height=40 xoffset=0 yoffset=37 xadvance=40 page=0 chnl=0
char id=119 x=363 y=320 width=57 height=40 xoffset=1 yoffset=37 xadvance=59 page=0 chnl=0
char id=120 x=420 y=320 width=40 height=40 xoffset=1 yoffset=37 xadvance=42 page=0 chnl=0
char id=121 x=440 y=98 width=40 height=56 xoffset=0 yoffset=37 xadvance=41 page=0 chnl=0
char id=122 x=460 y=320 width=32 height=40 xoffset=3 yoffset=37 xadvance=38 page=0 chnl=0
char id=123 x=130 y=0 width=25 height=73 xoffset=1 yoffset=18 xadvance=25 page=0 chnl=0
char id=124 x=355 y=0 width=8 height=63 xoffset=4 yoffset=23 xadvance=16 page=0 chnl=0
char id=125 x=155 y=0 width=25 height=73 xoffset=-1 yoffset=18 xadvance=25 page=0 chnl=0
char id=126 x=218 y=362 width=42 height=16 xoffset=3 yoffset=47 xadvance=49 page=0 chnl=0
char id=127 x=0 y=0 width=70 height=98 xoffset=0 yoffset=-1 xadvance=70 page=0 chnl=0
kernings count=389
kerning first=86 second=45 amount=-1
kerning first=114 second=46 amount=-4
kerning first=40 second=87 amount=1
kerning first=70 second=99 amount=-1
kerning first=84 second=110 amount=-3
kerning first=114 second=116 amount=1
kerning first=39 second=65 amount=-4
kerning first=104 second=34 amount=-1
kerning first=89 second=71 amount=-1
kerning first=107 second=113 amount=-1
kerning first=78 second=88 amount=1
kerning first=109 second=39 amount=-1
kerning first=120 second=100 amount=-1
kerning first=84 second=100 amount=-3
kerning first=68 second=90 amount=-1
kerning first=68 second=44 amount=-4
kerning first=84 second=103 amount=-3
kerning first=34 second=97 amount=-2
kerning first=70 second=97 amount=-1
kerning first=76 second=81 amount=-2
kerning first=73 second=89 amount=-1
kerning first=84 second=44 amount=-8
kerning first=68 second=65 amount=-3
kerning first=97 second=34 amount=-2
kerning first=111 second=121 amount=-1
kerning first=79 second=90 amount=-1
kerning first=75 second=121 amount=-1
kerning first=75 second=118 amount=-1
kerning first=111 second=118 amount=-1
kerning first=89 second=65 amount=-9
kerning first=75 second=71 amount=-4
kerning first=39 second=99 amount=-2
kerning first=75 second=99 amount=-1
kerning first=90 second=121 amount=-1
kerning first=44 second=39 amount=-6
kerning first=89 second=46 amount=-7
kerning first=89 second=74 amount=-7
kerning first=34 second=103 amount=-2
kerning first=70 second=103 amount=-1
kerning first=112 second=39 amount=-1
kerning first=122 second=113 amount=-1
kerning first=86 second=113 amount=-2
kerning first=68 second=84 amount=-1
kerning first=89 second=110 amount=-1
kerning first=34 second=100 amount=-2
kerning first=68 second=86 amount=-1
kerning first=87 second=45 amount=-2
kerning first=39 second=34 amount=-4
kerning first=114 second=100 amount=-1
kerning first=84 second=81 amount=-1
kerning first=70 second=101 amount=-1
kerning first=68 second=89 amount=-2
kerning first=88 second=117 amount=-1
kerning first=112 second=34 amount=-1
kerning first=76 second=67 amount=-2
kerning first=76 second=34 amount=-5
kerning first=88 second=111 amount=-1
kerning first=66 second=86 amount=-1
kerning first=66 second=89 amount=-2
kerning first=122 second=101 amount=-1
kerning first=86 second=101 amount=-2
kerning first=76 second=121 amount=-5
kerning first=84 second=119 amount=-2
kerning first=84 second=112 amount=-3
kerning first=87 second=111 amount=-1
kerning first=69 second=118 amount=-1
kerning first=65 second=117 amount=-2
kerning first=65 second=89 amount=-9
kerning first=72 second=89 amount=-1
kerning first=119 second=44 amount=-4
kerning first=69 second=121 amount=-1
kerning first=84 second=109 amount=-3
kerning first=84 second=122 amount=-2
kerning first=89 second=99 amount=-2
kerning first=76 second=118 amount=-5
kerning first=90 second=99 amount=-1
kerning first=90 second=103 amount=-1
kerning first=79 second=89 amount=-2
kerning first=90 second=79 amount=-1
kerning first=84 second=115 amount=-4
kerning first=76 second=65 amount=1
kerning first=90 second=100 amount=-1
kerning first=118 second=46 amount=-4
kerning first=87 second=117 amount=-1
kerning first=118 second=34 amount=1
kerning first=69 second=103 amount=-1
kerning first=97 second=121 amount=-1
kerning first=39 second=111 amount=-2
kerning first=72 second=88 amount=1
kerning first=76 second=87 amount=-5
kerning first=69 second=119 amount=-1
kerning first=121 second=97 amount=-1
kerning first=75 second=45 amount=-8
kerning first=65 second=86 amount=-9
kerning first=46 second=34 amount=-6
kerning first=76 second=84 amount=-10
kerning first=116 second=111 amount=-1
kerning first=87 second=113 amount=-1
kerning first=69 second=100 amount=-1
kerning first=97 second=118 amount=-1
kerning first=65 second=85 amount=-2
kerning first=90 second=71 amount=-1
kerning first=68 second=46 amount=-4
kerning first=65 second=79 amount=-3
kerning first=98 second=122 amount=-1
kerning first=86 second=41 amount=1
kerning first=84 second=118 amount=-3
kerning first=70 second=118 amount=-1
kerning first=121 second=111 amount=-1
kerning first=81 second=87 amount=-1
kerning first=70 second=100 amount=-1
kerning first=102 second=93 amount=1
kerning first=114 second=101 amount=-1
kerning first=88 second=45 amount=-2
kerning first=39 second=103 amount=-2
kerning first=75 second=103 amount=-1
kerning first=88 second=101 amount=-1
kerning first=89 second=103 amount=-2
kerning first=110 second=39 amount=-1
kerning first=89 second=89 amount=1
kerning first=87 second=65 amount=-2
kerning first=119 second=46 amount=-4
kerning first=34 second=34 amount=-4
kerning first=88 second=79 amount=-2
kerning first=79 second=86 amount=-1
kerning first=76 second=119 amount=-3
kerning first=75 second=111 amount=-1
kerning first=65 second=116 amount=-4
kerning first=86 second=65 amount=-9
kerning first=70 second=84 amount=1
kerning first=75 second=117 amount=-1
kerning first=80 second=65 amount=-9
kerning first=34 second=112 amount=-1
kerning first=102 second=99 amount=-1
kerning first=118 second=97 amount=-1
kerning first=89 second=81 amount=-1
kerning first=118 second=111 amount=-1
kerning first=102 second=101 amount=-1
kerning first=114 second=44 amount=-4
kerning first=90 second=119 amount=-1
kerning first=75 second=81 amount=-4
kerning first=88 second=121 amount=-1
kerning first=34 second=110 amount=-1
kerning first=86 second=100 amount=-2
kerning first=122 second=100 amount=-1
kerning first=89 second=67 amount=-1
kerning first=90 second=118 amount=-1
kerning first=84 second=84 amount=1
kerning first=121 second=34 amount=1
kerning first=91 second=74 amount=-1
kerning first=88 second=113 amount=-1
kerning first=77 second=88 amount=1
kerning first=75 second=119 amount=-2
kerning first=114 second=104 amount=-1
kerning first=68 second=88 amount=-2
kerning first=121 second=44 amount=-4
kerning first=81 second=89 amount=-1
kerning first=102 second=39 amount=1
kerning first=74 second=65 amount=-2
kerning first=114 second=118 amount=1
kerning first=84 second=46 amount=-8
kerning first=111 second=34 amount=-1
kerning first=88 second=71 amount=-2
kerning first=88 second=99 amount=-1
kerning first=84 second=74 amount=-8
kerning first=39 second=109 amount=-1
kerning first=98 second=34 amount=-1
kerning first=86 second=114 amount=-1
kerning first=88 second=81 amount=-2
kerning first=70 second=74 amount=-11
kerning first=89 second=83 amount=-1
kerning first=87 second=41 amount=1
kerning first=89 second=97 amount=-3
kerning first=89 second=87 amount=1
kerning first=67 second=125 amount=-1
kerning first=89 second=93 amount=1
kerning first=80 second=118 amount=1
kerning first=107 second=100 amount=-1
kerning first=114 second=34 amount=1
kerning first=89 second=109 amount=-1
kerning first=89 second=45 amount=-2
kerning first=70 second=44 amount=-8
kerning first=34 second=39 amount=-4
kerning first=88 second=67 amount=-2
kerning first=70 second=46 amount=-8
kerning first=102 second=41 amount=1
kerning first=89 second=117 amount=-1
kerning first=89 second=111 amount=-4
kerning first=89 second=115 amount=-4
kerning first=114 second=102 amount=1
kerning first=89 second=125 amount=1
kerning first=89 second=121 amount=-1
kerning first=114 second=108 amount=-1
kerning first=47 second=47 amount=-8
kerning first=65 second=63 amount=-2
kerning first=75 second=67 amount=-4
kerning first=87 second=100 amount=-1
kerning first=111 second=104 amount=-1
kerning first=111 second=107 amount=-1
kerning first=75 second=109 amount=-1
kerning first=87 second=114 amount=-1
kerning first=111 second=120 amount=-1
kerning first=69 second=99 amount=-1
kerning first=65 second=84 amount=-6
kerning first=39 second=97 amount=-2
kerning first=121 second=46 amount=-4
kerning first=89 second=85 amount=-3
kerning first=75 second=79 amount=-4
kerning first=107 second=99 amount=-1
kerning first=102 second=100 amount=-1
kerning first=102 second=103 amount=-1
kerning first=75 second=110 amount=-1
kerning first=39 second=110 amount=-1
kerning first=69 second=84 amount=1
kerning first=84 second=111 amount=-3
kerning first=120 second=111 amount=-1
kerning first=84 second=114 amount=-3
kerning first=112 second=120 amount=-1
kerning first=79 second=84 amount=-1
kerning first=84 second=117 amount=-3
kerning first=89 second=79 amount=-1
kerning first=75 second=113 amount=-1
kerning first=39 second=113 amount=-2
kerning first=80 second=44 amount=-11
kerning first=79 second=88 amount=-2
kerning first=98 second=39 amount=-1
kerning first=65 second=118 amount=-4
kerning first=65 second=34 amount=-4
kerning first=88 second=103 amount=-1
kerning first=77 second=89 amount=-1
kerning first=39 second=101 amount=-2
kerning first=75 second=101 amount=-1
kerning first=88 second=100 amount=-1
kerning first=78 second=65 amount=-3
kerning first=87 second=44 amount=-4
kerning first=67 second=41 amount=-1
kerning first=86 second=93 amount=1
kerning first=84 second=83 amount=-1
kerning first=102 second=113 amount=-1
kerning first=34 second=111 amount=-2
kerning first=70 second=111 amount=-1
kerning first=86 second=99 amount=-2
kerning first=84 second=86 amount=1
kerning first=122 second=99 amount=-1
kerning first=84 second=89 amount=1
kerning first=70 second=114 amount=-1
kerning first=86 second=74 amount=-8
kerning first=89 second=38 amount=-1
kerning first=87 second=97 amount=-1
kerning first=76 second=86 amount=-9
kerning first=40 second=86 amount=1
kerning first=90 second=113 amount=-1
kerning first=39 second=39 amount=-4
kerning first=111 second=39 amount=-1
kerning first=90 second=117 amount=-1
kerning first=89 second=41 amount=1
kerning first=65 second=121 amount=-4
kerning first=89 second=100 amount=-2
kerning first=89 second=42 amount=-2
kerning first=76 second=117 amount=-2
kerning first=69 second=111 amount=-1
kerning first=46 second=39 amount=-6
kerning first=118 second=39 amount=1
kerning first=91 second=85 amount=-1
kerning first=80 second=90 amount=-1
kerning first=90 second=81 amount=-1
kerning first=69 second=117 amount=-1
kerning first=76 second=39 amount=-5
kerning first=90 second=67 amount=-1
kerning first=87 second=103 amount=-1
kerning first=84 second=120 amount=-3
kerning first=89 second=101 amount=-2
kerning first=102 second=125 amount=1
kerning first=76 second=85 amount=-2
kerning first=79 second=65 amount=-3
kerning first=65 second=71 amount=-3
kerning first=79 second=44 amount=-4
kerning first=97 second=39 amount=-2
kerning first=90 second=101 amount=-1
kerning first=65 second=87 amount=-5
kerning first=79 second=46 amount=-4
kerning first=87 second=99 amount=-1
kerning first=34 second=101 amount=-2
kerning first=40 second=89 amount=1
kerning first=76 second=89 amount=-8
kerning first=69 second=113 amount=-1
kerning first=120 second=103 amount=-1
kerning first=69 second=101 amount=-1
kerning first=69 second=102 amount=-1
kerning first=104 second=39 amount=-1
kerning first=80 second=121 amount=1
kerning first=86 second=46 amount=-8
kerning first=65 second=81 amount=-3
kerning first=86 second=44 amount=-8
kerning first=120 second=99 amount=-1
kerning first=98 second=120 amount=-1
kerning first=39 second=115 amount=-3
kerning first=121 second=39 amount=1
kerning first=88 second=118 amount=-1
kerning first=84 second=65 amount=-6
kerning first=65 second=39 amount=-4
kerning first=84 second=79 amount=-1
kerning first=65 second=119 amount=-4
kerning first=70 second=117 amount=-1
kerning first=75 second=100 amount=-1
kerning first=86 second=111 amount=-2
kerning first=122 second=111 amount=-1
kerning first=81 second=84 amount=-2
kerning first=107 second=103 amount=-1
kerning first=118 second=44 amount=-4
kerning first=87 second=46 amount=-4
kerning first=87 second=101 amount=-1
kerning first=70 second=79 amount=-2
kerning first=87 second=74 amount=-2
kerning first=123 second=74 amount=-1
kerning first=76 second=71 amount=-2
kerning first=39 second=100 amount=-2
kerning first=80 second=88 amount=-1
kerning first=84 second=121 amount=-3
kerning first=112 second=122 amount=-1
kerning first=84 second=71 amount=-1
kerning first=89 second=86 amount=1
kerning first=84 second=113 amount=-3
kerning first=120 second=113 amount=-1
kerning first=89 second=44 amount=-7
kerning first=84 second=99 amount=-3
kerning first=34 second=113 amount=-2
kerning first=80 second=46 amount=-11
kerning first=86 second=117 amount=-1
kerning first=110 second=34 amount=-1
kerning first=80 second=74 amount=-7
kerning first=120 second=101 amount=-1
kerning first=73 second=88 amount=1
kerning first=108 second=111 amount=-1
kerning first=34 second=115 amount=-3
kerning first=89 second=113 amount=-2
kerning first=82 second=86 amount=-3
kerning first=114 second=39 amount=1
kerning first=34 second=109 amount=-1
kerning first=84 second=101 amount=-3
kerning first=70 second=121 amount=-1
kerning first=123 second=85 amount=-1
kerning first=122 second=103 amount=-1
kerning first=86 second=97 amount=-2
kerning first=82 second=89 amount=-4
kerning first=66 second=84 amount=-1
kerning first=84 second=97 amount=-4
kerning first=86 second=103 amount=-2
kerning first=70 second=113 amount=-1
kerning first=84 second=87 amount=1
kerning first=75 second=112 amount=-1
kerning first=114 second=111 amount=-1
kerning first=39 second=112 amount=-1
kerning first=107 second=101 amount=-1
kerning first=82 second=84 amount=-3
kerning first=114 second=121 amount=1
kerning first=34 second=99 amount=-2
kerning first=70 second=81 amount=-2
kerning first=111 second=122 amount=-1
kerning first=84 second=67 amount=-1
kerning first=111 second=108 amount=-1
kerning first=89 second=84 amount=1
kerning first=76 second=79 amount=-2
kerning first=85 second=65 amount=-2
kerning first=44 second=34 amount=-6
kerning first=65 second=67 amount=-3
kerning first=109 second=34 amount=-1
kerning first=114 second=103 amount=-1
kerning first=78 second=89 amount=-1
kerning first=89 second=114 amount=-1
kerning first=89 second=112 amount=-1
kerning first=34 second=65 amount=-4
kerning first=70 second=65 amount=-11
kerning first=81 second=86 amount=-1
kerning first=114 second=119 amount=1
kerning first=89 second=102 amount=-1
kerning first=84 second=45 amount=-8
kerning first=86 second=125 amount=1
kerning first=70 second=67 amount=-2
kerning first=89 second=116 amount=-1
kerning first=102 second=34 amount=1
kerning first=114 second=99 amount=-1
kerning first=67 second=84 amount=-1
kerning first=114 second=113 amount=-1
kerning first=89 second=122 amount=-1
kerning first=89 second=118 amount=-1
kerning first=70 second=71 amount=-2
kerning first=114 second=107 amount=-1
kerning first=89 second=120 amount=-1
Binary file not shown.

Before

Width:  |  Height:  |  Size: 53 KiB

-1
View File
@@ -1 +0,0 @@
!function(t){var i={};function r(o){if(i[o])return i[o].exports;var s=i[o]={i:o,l:!1,exports:{}};return t[o].call(s.exports,s,s.exports,r),s.l=!0,s.exports}r.m=t,r.c=i,r.d=function(t,i,o){r.o(t,i)||Object.defineProperty(t,i,{enumerable:!0,get:o})},r.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},r.t=function(t,i){if(1&i&&(t=r(t)),8&i)return t;if(4&i&&"object"==typeof t&&t&&t.__esModule)return t;var o=Object.create(null);if(r.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:t}),2&i&&"string"!=typeof t)for(var s in t)r.d(o,s,function(i){return t[i]}.bind(null,s));return o},r.n=function(t){var i=t&&t.__esModule?function(){return t.default}:function(){return t};return r.d(i,"a",i),i},r.o=function(t,i){return Object.prototype.hasOwnProperty.call(t,i)},r.p="",r(r.s=1)}([function(t,i){t.exports={options:{usePureJavaScript:!1}}},function(t,i,r){r(2),t.exports=r(0)},function(t,i,r){var o=r(0);r(3);var s=[2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509,521,523,541,547,557,563,569,571,577,587,593,599,601,607,613,617,619,631,641,643,647,653,659,661,673,677,683,691,701,709,719,727,733,739,743,751,757,761,769,773,787,797,809,811,821,823,827,829,839,853,857,859,863,877,881,883,887,907,911,919,929,937,941,947,953,967,971,977,983,991,997],e=(1<<26)/s[s.length-1],a=o.jsbn.BigInteger;new a(null).fromInt(2),self.addEventListener("message",(function(t){var i=function(t){for(var i=new a(t.hex,16),r=0,o=t.workLoad,s=0;s<o;++s){if(h(i))return{found:!0,prime:i.toString(16)};i.dAddOffset(n[r++%8],0)}return{found:!1}}(t.data);self.postMessage(i)})),self.postMessage({found:!1});var n=[6,4,2,4,2,4,6,2];function h(t){for(var i=1;i<s.length;){for(var r=s[i],o=i+1;o<s.length&&r<e;)r*=s[o++];for(r=t.modInt(r);i<o;)if(r%s[i++]==0)return!1}return function(t){var i,r=t.subtract(a.ONE),o=r.getLowestSetBit();if(o<=0)return!1;for(var s,e=r.shiftRight(o),n=(i=t.bitLength())<=100?27:i<=150?18:i<=200?15:i<=250?12:i<=300?9:i<=350?8:i<=400?7:i<=500?6:i<=600?5:i<=800?4:i<=1250?3:2,h={nextBytes:function(t){for(var i=0;i<t.length;++i)t[i]=Math.floor(255*Math.random())}},u=0;u<n;++u){do{s=new a(t.bitLength(),h)}while(s.compareTo(a.ONE)<=0||s.compareTo(r)>=0);var f=s.modPow(e,t);if(0!==f.compareTo(a.ONE)&&0!==f.compareTo(r)){for(var p=o;--p;){if(0===(f=f.modPowInt(2,t)).compareTo(a.ONE))return!1;if(0===f.compareTo(r))break}if(0===p)return!1}}return!0}(t)}},function(t,i,r){var o,s=r(0);function e(t,i,r){this.data=[],null!=t&&("number"==typeof t?this.fromNumber(t,i,r):null==i&&"string"!=typeof t?this.fromString(t,256):this.fromString(t,i))}function a(){return new e(null)}function n(t,i,r,o,s,e){for(var a=16383&i,n=i>>14;--e>=0;){var h=16383&this.data[t],u=this.data[t++]>>14,f=n*h+u*a;s=((h=a*h+((16383&f)<<14)+r.data[o]+s)>>28)+(f>>14)+n*u,r.data[o++]=268435455&h}return s}t.exports=s.jsbn=s.jsbn||{},s.jsbn.BigInteger=e,"undefined"==typeof navigator?(e.prototype.am=n,o=28):"Microsoft Internet Explorer"==navigator.appName?(e.prototype.am=function(t,i,r,o,s,e){for(var a=32767&i,n=i>>15;--e>=0;){var h=32767&this.data[t],u=this.data[t++]>>15,f=n*h+u*a;s=((h=a*h+((32767&f)<<15)+r.data[o]+(1073741823&s))>>>30)+(f>>>15)+n*u+(s>>>30),r.data[o++]=1073741823&h}return s},o=30):"Netscape"!=navigator.appName?(e.prototype.am=function(t,i,r,o,s,e){for(;--e>=0;){var a=i*this.data[t++]+r.data[o]+s;s=Math.floor(a/67108864),r.data[o++]=67108863&a}return s},o=26):(e.prototype.am=n,o=28),e.prototype.DB=o,e.prototype.DM=(1<<o)-1,e.prototype.DV=1<<o,e.prototype.FV=Math.pow(2,52),e.prototype.F1=52-o,e.prototype.F2=2*o-52;var h,u,f=new Array;for(h="0".charCodeAt(0),u=0;u<=9;++u)f[h++]=u;for(h="a".charCodeAt(0),u=10;u<36;++u)f[h++]=u;for(h="A".charCodeAt(0),u=10;u<36;++u)f[h++]=u;function p(t){return"0123456789abcdefghijklmnopqrstuvwxyz".charAt(t)}function d(t,i){var r=f[t.charCodeAt(i)];return null==r?-1:r}function c(t){var i=a();return i.fromInt(t),i}function m(t){var i,r=1;return 0!=(i=t>>>16)&&(t=i,r+=16),0!=(i=t>>8)&&(t=i,r+=8),0!=(i=t>>4)&&(t=i,r+=4),0!=(i=t>>2)&&(t=i,r+=2),0!=(i=t>>1)&&(t=i,r+=1),r}function l(t){this.m=t}function v(t){this.m=t,this.mp=t.invDigit(),this.mpl=32767&this.mp,this.mph=this.mp>>15,this.um=(1<<t.DB-15)-1,this.mt2=2*t.t}function T(t,i){return t&i}function y(t,i){return t|i}function b(t,i){return t^i}function g(t,i){return t&~i}function D(t){if(0==t)return-1;var i=0;return 0==(65535&t)&&(t>>=16,i+=16),0==(255&t)&&(t>>=8,i+=8),0==(15&t)&&(t>>=4,i+=4),0==(3&t)&&(t>>=2,i+=2),0==(1&t)&&++i,i}function B(t){for(var i=0;0!=t;)t&=t-1,++i;return i}function S(){}function M(t){return t}function w(t){this.r2=a(),this.q3=a(),eLine truncated
-17001
View File
File diff suppressed because it is too large. Load diff
-2
View File
@@ -1,2 +0,0 @@
/*! For license information please see main.js.LICENSE.txt */
(()=>{var __webpack_modules__={95640:(e,t,r)=>{var n=r(4002);!function(e,t,r){"use strict";if(e.MutationObserver&&"undefined"!=typeof HTMLElement){var n,o=0,i=(n=HTMLElement.prototype.matches||HTMLElement.prototype.webkitMatchesSelector||HTMLElement.prototype.mozMatchesSelector||HTMLElement.prototype.msMatchesSelector,{matchesSelector:function(e,t){return e instanceof HTMLElement&&n.call(e,t)},addMethod:function(e,t,r){var n=e[t];e[t]=function(){return r.length==arguments.length?r.apply(this,arguments):"function"==typeof n?n.apply(this,arguments):void 0}},callCallbacks:function(e,t){t&&t.options.onceOnly&&1==t.firedElems.length&&(e=[e[0]]);for(var r,n=0;r=e[n];n++)r&&r.callback&&r.callback.call(r.elem,r.elem);t&&t.options.onceOnly&&1==t.firedElems.length&&t.me.unbindEventWithSelectorAndCallback.call(t.target,t.selector,t.callback)},checkChildNodesRecursively:function(e,t,r,n){for(var o,a=0;o=e[a];a++)r(o,t,n)&&n.push({callback:t.callback,elem:o}),o.childNodes.length>0&&i.checkChildNodesRecursively(o.childNodes,t,r,n)},mergeArrays:function(e,t){var r,n={};for(r in e)e.hasOwnProperty(r)&&(n[r]=e[r]);for(r in t)t.hasOwnProperty(r)&&(n[r]=t[r]);return n},toElementsArray:function(t){return void 0===t||"number"==typeof t.length&&t!==e||(t=[t]),t}}),a=function(){var e=function(){this._eventsBucket=[],this._beforeAdding=null,this._beforeRemoving=null};return e.prototype.addEvent=function(e,t,r,n){var o={target:e,selector:t,options:r,callback:n,firedElems:[]};return this._beforeAdding&&this._beforeAdding(o),this._eventsBucket.push(o),o},e.prototype.removeEvent=function(e){for(var t,r=this._eventsBucket.length-1;t=this._eventsBucket[r];r--)if(e(t)){this._beforeRemoving&&this._beforeRemoving(t);var n=this._eventsBucket.splice(r,1);n&&n.length&&(n[0].callback=null)}},e.prototype.beforeAdding=function(e){this._beforeAdding=e},e.prototype.beforeRemoving=function(e){this._beforeRemoving=e},e}(),s=function(t,n){var o=new a,s=this,p={fireOnAttributesModification:!1};return o.beforeAdding((function(r){var o,i=r.target;i!==e.document&&i!==e||(i=document.getElementsByTagName("html")[0]),o=new MutationObserver((function(e){n.call(this,e,r)}));var a=t(r.options);o.observe(i,a),r.observer=o,r.me=s})),o.beforeRemoving((function(e){e.observer.disconnect()})),this.bindEvent=function(e,t,r){t=i.mergeArrays(p,t);for(var n=i.toElementsArray(this),a=0;a<n.length;a++)o.addEvent(n[a],e,t,r)},this.unbindEvent=function(){var e=i.toElementsArray(this);o.removeEvent((function(t){for(var n=0;n<e.length;n++)if(this===r||t.target===e[n])return!0;return!1}))},this.unbindEventWithSelectorOrCallback=function(e){var t,n=i.toElementsArray(this),a=e;t="function"==typeof e?function(e){for(var t=0;t<n.length;t++)if((this===r||e.target===n[t])&&e.callback===a)return!0;return!1}:function(t){for(var o=0;o<n.length;o++)if((this===r||t.target===n[o])&&t.selector===e)return!0;return!1},o.removeEvent(t)},this.unbindEventWithSelectorAndCallback=function(e,t){var n=i.toElementsArray(this);o.removeEvent((function(o){for(var i=0;i<n.length;i++)if((this===r||o.target===n[i])&&o.selector===e&&o.callback===t)return!0;return!1}))},this},p=new function(){var e={fireOnAttributesModification:!1,onceOnly:!1,existing:!1};function t(e,t,n){return!(!i.matchesSelector(e,t.selector)||(e._id===r&&(e._id=o++),-1!=t.firedElems.indexOf(e._id))||(t.firedElems.push(e._id),0))}var n=(p=new s((function(e){var t={attributes:!1,childList:!0,subtree:!0};return e.fireOnAttributesModification&&(t.attributes=!0),t}),(function(e,r){e.forEach((function(e){var n=e.addedNodes,o=e.target,a=[];null!==n&&n.length>0?i.checkChildNodesRecursively(n,r,t,a):"attributes"===e.type&&t(o,r)&&a.push({callback:r.callback,elem:o}),i.callCallbacks(a,r)}))}))).bindEvent;return p.bindEvent=function(t,r,o){void 0===o?(o=r,r=e):r=i.mergeArrays(e,r);var a=i.toElementsArray(this);if(r.existing){for(var s=[],p=0;p<a.length;p++)for(var c=a[p].querySelectorAll(t),l=0;l<c.length;l++)s.push({callback:o,elem:c[l]});if(r.onceOnly&&s.length)return o.call(s[0].elem,s[0].elem);setTimeout(i.callCallbacks,1,s)}n.call(this,t,r,o)},p},c=new function(){var e={};function t(e,t){return i.matchesSelector(e,t.selector)}var r=(c=new s((function(){return{childList:!0,subtree:!0}}),(function(e,r){e.forEach((function(e){var n=e.removedNodes,o=[];null!==n&&n.length>0&&i.checkChildNodesRecursively(n,r,t,o),i.callCallbacks(o,r)}))}))).bindEvent;return c.bindEvent=function(t,n,o){void 0===o?(o=n,n=e):n=i.mergeArrays(e,n),r.call(this,t,n,o)},c};t&&b(t.fn),b(HTMLElement.prototype),b(NodeList.prototype),b(HTMLCollection.prototype),b(HTMLDocument.prototype),b(Window.prototype);var l={};return u(p,l,"unbindAllArrive"),u(c,l,"unbindAllLeave"),l}function u(e,t,r){i.addMethod(t,r,e.unbindEvent),i.addMethod(t,r,e.unbindEventWithSelectorOrCallback),i.addMethod(t,r,e.unbindEventWithSelectorAndCallback)}function b(e){e.arrive=p.bindEvent,u(p,e,"unbindArrive"),e.leave=c.bindEvent,u(c,e,"unbindLeave")}}(window,void 0===n?null:n,void 0)},99239:(e,t,r)=>{vaLine truncated
-258
View File
@@ -1,258 +0,0 @@
/*!
* Bootstrap Colorpicker - Bootstrap Colorpicker is a modular color picker plugin for Bootstrap 4.
* @package bootstrap-colorpicker
* @version v3.4.0
* @license MIT
* @link https://itsjavi.com/bootstrap-colorpicker/
* @link https://github.com/itsjavi/bootstrap-colorpicker.git
*/
/*!
* Sizzle CSS Selector Engine v2.3.10
* https://sizzlejs.com/
*
* Copyright JS Foundation and other contributors
* Released under the MIT license
* https://js.foundation/
*
* Date: 2023-02-14
*/
/*!
* The buffer module from node.js, for the browser.
*
* @author Feross Aboukhadijeh <https://feross.org>
* @license MIT
*/
/*! cptable.js (C) 2013-present SheetJS -- http://sheetjs.com */
/*! cputils.js (C) 2013-present SheetJS -- http://sheetjs.com */
/*! https://mths.be/punycode v1.3.2 by @mathias */
/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */
/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */
/**
* @author Matt C [matt@artemisbot.uk]
* @copyright Crown Copyright 2016
* @license Apache-2.0
*/
/**
* @author d98762625 [d98762625@gmail.com]
* @copyright Crown Copyright 2019
* @license Apache-2.0
*/
/**
* @author n1474335 [n1474335@gmail.com]
* @author j433866 [j433866@gmail.com]
* @copyright Crown Copyright 2019
* @license Apache-2.0
*/
/**
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2016
* @license Apache-2.0
*/
/**
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*/
/**
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2022
* @license Apache-2.0
*
* In order to render whitespace characters as control character pictures in the output, even
* when they are the designated line separator, CyberChef sometimes chooses to represent them
* internally using the Unicode Private Use Area (https://en.wikipedia.org/wiki/Private_Use_Areas).
* See `Utils.escapeWhitespace()` for an example of this.
*
* The `renderSpecialChar()` function understands that it should display these characters as
* control pictures. When copying data from the Output, we need to replace these PUA characters
* with their original values, so we override the DOM "copy" event and modify the copied data
* if required. This handler is based closely on the built-in CodeMirror handler and defers to the
* built-in handler if PUA characters are not present in the copied data, in order to minimise the
* impact of breaking changes.
*/
/**
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2022
* @license Apache-2.0
*/
/**
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2023
* @license Apache-2.0
*/
/**
* A modification of the CodeMirror Panel extension to enable panels to the
* left and right of the editor.
* Based on code here: https://github.com/codemirror/view/blob/main/src/panel.ts
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2022
* @license Apache-2.0
*/
/**
* Base64 functions.
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2016
* @license Apache-2.0
*/
/**
* CodeMirror utilities that are relevant to both the input and output
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2022
* @license Apache-2.0
*/
/**
* Custom error type for handling Dish type errors.
* i.e. where the Dish cannot be successfully translated between types
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*/
/**
* Custom error type for handling operation input errors.
* i.e. where the operation can handle the error and print a message to the screen.
*
* @author d98762625 [d98762625@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*/
/**
* CyberChef - The Cyber Swiss Army Knife
*
* @copyright Crown Copyright 2016
* @license Apache-2.0
*
* Copyright 2016 Crown Copyright
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/**
* Decimal functions.
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*/
/**
* File signatures and extractor functions
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*
*/
/**
* File type functions
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*
*/
/**
* Styles index
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2017
* @license Apache-2.0
*/
/**
* Unicode Normalisation Forms
*
* @author Matthieu [m@tthieu.xyz]
* @copyright Crown Copyright 2019
* @license Apache-2.0
*/
/**
* Various components for drawing diagrams on an HTML5 canvas.
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2016
* @license Apache-2.0
*/
/**!
* @fileOverview Kickass library to create and place poppers near their reference elements.
* @version 1.16.1
* @license
* Copyright (c) 2016 Federico Zivolo and contributors
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/
/**!
* Sortable 1.15.0
* @author RubaXa <trash@rubaxa.org>
* @author owenm <owen23355@gmail.com>
* @license MIT
*/
//! Copyright (c) JS Foundation and other contributors
//! github.com/moment/moment-timezone
//! license : MIT
//! moment-timezone.js
//! moment.js
//! moment.js locale configuration
//! version : 0.5.41
Binary file not shown.
-1
View File
@@ -1 +0,0 @@
var TesseractCoreWASM=(()=>{var A="undefined"!=typeof document&&document.currentScript?document.currentScript.src:void 0;return"undefined"!=typeof __filename&&(A=A||__filename),function(I){var g,C,B;I=I||{},g||(g=void 0!==I?I:{}),g.ready=new Promise((function(A,I){C=A,B=I}));var Q,E,D,i,G,o,K=Object.assign({},g),F="./this.program",R=(A,I)=>{throw I},w="object"==typeof window,N="function"==typeof importScripts,y="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node,h="";y?(h=N?require("path").dirname(h)+"/":__dirname+"/",o=()=>{G||(i=require("fs"),G=require("path"))},Q=function(A,I){var g=rA(A);return g?I?g:g.toString():(o(),A=G.normalize(A),i.readFileSync(A,I?void 0:"utf8"))},D=A=>((A=Q(A,!0)).buffer||(A=new Uint8Array(A)),A),E=(A,I,g)=>{var C=rA(A);C&&I(C),o(),A=G.normalize(A),i.readFile(A,(function(A,C){A?g(A):I(C.buffer)}))},1<process.argv.length&&(F=process.argv[1].replace(/\\/g,"/")),process.argv.slice(2),process.on("uncaughtException",(function(A){if(!(A instanceof BA))throw A})),process.on("unhandledRejection",(function(A){throw A})),R=(A,I)=>{if(S)throw process.exitCode=A,I;I instanceof BA||J("exiting due to exception: "+I),process.exit(A)},g.inspect=function(){return"[Emscripten Module object]"}):(w||N)&&(N?h=self.location.href:"undefined"!=typeof document&&document.currentScript&&(h=document.currentScript.src),A&&(h=A),h=0!==h.indexOf("blob:")?h.substr(0,h.replace(/[?#].*/,"").lastIndexOf("/")+1):"",Q=A=>{try{var I=new XMLHttpRequest;return I.open("GET",A,!1),I.send(null),I.responseText}catch(B){if(A=rA(A)){I=[];for(var g=0;g<A.length;g++){var C=A[g];255<C&&(TA&&u("Character code "+C+" ("+String.fromCharCode(C)+") at offset "+g+" not in 0x00-0xFF."),C&=255),I.push(String.fromCharCode(C))}return I.join("")}throw B}},N&&(D=A=>{try{var I=new XMLHttpRequest;return I.open("GET",A,!1),I.responseType="arraybuffer",I.send(null),new Uint8Array(I.response)}catch(I){if(A=rA(A))return A;throw I}}),E=(A,I,g)=>{var C=new XMLHttpRequest;C.open("GET",A,!0),C.responseType="arraybuffer",C.onload=()=>{if(200==C.status||0==C.status&&C.response)I(C.response);else{var B=rA(A);B?I(B.buffer):g()}},C.onerror=g,C.send(null)});var U=g.print||console.log.bind(console),J=g.printErr||console.warn.bind(console);Object.assign(g,K),K=null,g.thisProgram&&(F=g.thisProgram),g.quit&&(R=g.quit);var Y,H=0;g.wasmBinary&&(Y=g.wasmBinary);var S=g.noExitRuntime||!0;"object"!=typeof WebAssembly&&u("no native wasm support detected");var M,k,a,s,L,c,d,q,Z,t=!1,l="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function n(A,I){for(var g=I+NaN,C=I;A[C]&&!(C>=g);)++C;if(16<C-I&&A.buffer&&l)return l.decode(A.subarray(I,C));for(g="";I<C;){var B=A[I++];if(128&B){var Q=63&A[I++];if(192==(224&B))g+=String.fromCharCode((31&B)<<6|Q);else{var E=63&A[I++];65536>(B=224==(240&B)?(15&B)<<12|Q<<6|E:(7&B)<<18|Q<<12|E<<6|63&A[I++])?g+=String.fromCharCode(B):(B-=65536,g+=String.fromCharCode(55296|B>>10,56320|1023&B))}}else g+=String.fromCharCode(B)}return g}function W(A){return A?n(s,A):""}function b(A,I,g,C){if(!(0<C))return 0;var B=g;C=g+C-1;for(var Q=0;Q<A.length;++Q){var E=A.charCodeAt(Q);if(55296<=E&&57343>=E&&(E=65536+((1023&E)<<10)|1023&A.charCodeAt(++Q)),127>=E){if(g>=C)break;I[g++]=E}else{if(2047>=E){if(g+1>=C)break;I[g++]=192|E>>6}else{if(65535>=E){if(g+2>=C)break;I[g++]=224|E>>12}else{if(g+3>=C)break;I[g++]=240|E>>18,I[g++]=128|E>>12&63}I[g++]=128|E>>6&63}I[g++]=128|63&E}}return I[g]=0,g-B}function V(A){for(var I=0,g=0;g<A.length;++g){var C=A.charCodeAt(g);127>=C?I++:2047>=C?I+=2:55296<=C&&57343>=C?(I+=4,++g):I+=3}return I}function m(){var A=M.buffer;k=A,g.HEAP8=a=new Int8Array(A),g.HEAP16=L=new Int16Array(A),g.HEAP32=c=new Int32Array(A),g.HEAPU8=s=new Uint8Array(A),g.HEAPU16=new Uint16Array(A),g.HEAPU32=d=new Uint32Array(A),g.HEAPF32=q=new Float32Array(A),g.HEAPF64=Z=new Float64Array(A)}var x,p=[],f=[],T=[],X=!1;function r(){var A=g.preRun.shift();p.unshift(A)}var O=0,j=null,e=null;function z(){O++,g.monitorRunDependencies&&g.monitorRunDependencies(O)}function P(){if(O--,g.monitorRunDependencies&&g.monitorRunDependencies(O),0==O&&(null!==j&&(clearInterval(j),j=null),e)){var A=e;e=null,A()}}function u(A){throw g.onAbort&&g.onAbort(A),J(A="Aborted("+A+")"),t=!0,A=new WebAssembly.RuntimeError(A+". Build with -sASSERTIONS for more info."),B(A),A}var v,_="data:application/octet-stream;base64,";if(!(v="data:application/octet-stream;base64,AGFzbQEAAAABmQukAWABfwBgAX8Bf2ADf39/AX9gAn9/AX9gAn9/AGADf39/AGAEf39/fwBgBH9/f38Bf2AFf39/f38AYAV/f39/fwF/YAZ/f39/f38Bf2AGf39/f39/AGADf35/AX5gB39/f39/f38AYAl/f39/f39/f38AYAAAYAF/AX1gAAF/YAd/f39/f39/AX9gCH9/f39/f39/AX9gAn9+AX9gCH9/f39/f39/AXxgAX8BfmAEf35/fwF+YAJ/fwF9YAx/f39/f39/f39/f38AYAF9AX1gAn9+AX5gAXwBfGADf39/AX1gCX9/f39/f39/fwF/YAJ/fQBgAn9/AX5gA399fwF/YAV/fn5+fgBgBX99fX1/AGACf38BfGAIf39/f39/f38AYAF/AXxgBH9/f38BfmAFf39/f3wBf2ADf39/AXxgCn9/f39/f39/f38Bf2ADf319AX9gBX9/fn9/AGAKf39/f39/f39/fwBgAnx8AXxgA39/fgBgA39+fwBgBX9/f39+AX9gAn5/AX9gBH9+fn8AYAN/fn8Bf2ADf399AXLine truncated
-2
View File
@@ -1,2 +0,0 @@
/*! For license information please see worker.min.js.LICENSE.txt */
(()=>{var __webpack_modules__={919:(t,e)=>{"use strict";e.byteLength=function(t){var e=f(t),r=e[0],n=e[1];return 3*(r+n)/4-n},e.toByteArray=function(t){var e,r,o=f(t),a=o[0],s=o[1],u=new i(function(t,e,r){return 3*(e+r)/4-r}(0,a,s)),c=0,h=s>0?a-4:a;for(r=0;r<h;r+=4)e=n[t.charCodeAt(r)]<<18|n[t.charCodeAt(r+1)]<<12|n[t.charCodeAt(r+2)]<<6|n[t.charCodeAt(r+3)],u[c++]=e>>16&255,u[c++]=e>>8&255,u[c++]=255&e;return 2===s&&(e=n[t.charCodeAt(r)]<<2|n[t.charCodeAt(r+1)]>>4,u[c++]=255&e),1===s&&(e=n[t.charCodeAt(r)]<<10|n[t.charCodeAt(r+1)]<<4|n[t.charCodeAt(r+2)]>>2,u[c++]=e>>8&255,u[c++]=255&e),u},e.fromByteArray=function(t){for(var e,n=t.length,i=n%3,o=[],a=16383,s=0,f=n-i;s<f;s+=a)o.push(u(t,s,s+a>f?f:s+a));return 1===i?(e=t[n-1],o.push(r[e>>2]+r[e<<4&63]+"==")):2===i&&(e=(t[n-2]<<8)+t[n-1],o.push(r[e>>10]+r[e>>4&63]+r[e<<2&63]+"=")),o.join("")};for(var r=[],n=[],i="undefined"!=typeof Uint8Array?Uint8Array:Array,o="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",a=0,s=o.length;a<s;++a)r[a]=o[a],n[o.charCodeAt(a)]=a;function f(t){var e=t.length;if(e%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var r=t.indexOf("=");return-1===r&&(r=e),[r,r===e?0:4-r%4]}function u(t,e,n){for(var i,o,a=[],s=e;s<n;s+=3)i=(t[s]<<16&16711680)+(t[s+1]<<8&65280)+(255&t[s+2]),a.push(r[(o=i)>>18&63]+r[o>>12&63]+r[o>>6&63]+r[63&o]);return a.join("")}n["-".charCodeAt(0)]=62,n["_".charCodeAt(0)]=63},86:(t,e,r)=>{var n=r(752),i=r(773);t.exports={encode:n,decode:i}},773:(t,e,r)=>{var n=r(33).lW;function i(t,e){if(this.pos=0,this.buffer=t,this.is_with_alpha=!!e,this.bottom_up=!0,this.flag=this.buffer.toString("utf-8",0,this.pos+=2),"BM"!=this.flag)throw new Error("Invalid BMP File");this.parseHeader(),this.parseRGBA()}i.prototype.parseHeader=function(){if(this.fileSize=this.buffer.readUInt32LE(this.pos),this.pos+=4,this.reserved=this.buffer.readUInt32LE(this.pos),this.pos+=4,this.offset=this.buffer.readUInt32LE(this.pos),this.pos+=4,this.headerSize=this.buffer.readUInt32LE(this.pos),this.pos+=4,this.width=this.buffer.readUInt32LE(this.pos),this.pos+=4,this.height=this.buffer.readInt32LE(this.pos),this.pos+=4,this.planes=this.buffer.readUInt16LE(this.pos),this.pos+=2,this.bitPP=this.buffer.readUInt16LE(this.pos),this.pos+=2,this.compress=this.buffer.readUInt32LE(this.pos),this.pos+=4,this.rawSize=this.buffer.readUInt32LE(this.pos),this.pos+=4,this.hr=this.buffer.readUInt32LE(this.pos),this.pos+=4,this.vr=this.buffer.readUInt32LE(this.pos),this.pos+=4,this.colors=this.buffer.readUInt32LE(this.pos),this.pos+=4,this.importantColors=this.buffer.readUInt32LE(this.pos),this.pos+=4,16===this.bitPP&&this.is_with_alpha&&(this.bitPP=15),this.bitPP<15){var t=0===this.colors?1<<this.bitPP:this.colors;this.palette=new Array(t);for(var e=0;e<t;e++){var r=this.buffer.readUInt8(this.pos++),n=this.buffer.readUInt8(this.pos++),i=this.buffer.readUInt8(this.pos++),o=this.buffer.readUInt8(this.pos++);this.palette[e]={red:i,green:n,blue:r,quad:o}}}this.height<0&&(this.height*=-1,this.bottom_up=!1)},i.prototype.parseRGBA=function(){var t="bit"+this.bitPP,e=this.width*this.height*4;this.data=new n(e),this[t]()},i.prototype.bit1=function(){var t=Math.ceil(this.width/8),e=t%4,r=this.height>=0?this.height-1:-this.height;for(r=this.height-1;r>=0;r--){for(var n=this.bottom_up?r:this.height-1-r,i=0;i<t;i++)for(var o=this.buffer.readUInt8(this.pos++),a=n*this.width*4+8*i*4,s=0;s<8&&8*i+s<this.width;s++){var f=this.palette[o>>7-s&1];this.data[a+4*s]=0,this.data[a+4*s+1]=f.blue,this.data[a+4*s+2]=f.green,this.data[a+4*s+3]=f.red}0!=e&&(this.pos+=4-e)}},i.prototype.bit4=function(){if(2==this.compress){var t=function(t){var r=this.palette[t];this.data[e]=0,this.data[e+1]=r.blue,this.data[e+2]=r.green,this.data[e+3]=r.red,e+=4};this.data.fill(255);for(var e=0,r=this.bottom_up?this.height-1:0,n=!1;e<this.data.length;){var i=this.buffer.readUInt8(this.pos++),o=this.buffer.readUInt8(this.pos++);if(0==i){if(0==o){this.bottom_up?r--:r++,e=r*this.width*4,n=!1;continue}if(1==o)break;if(2==o){var a=this.buffer.readUInt8(this.pos++),s=this.buffer.readUInt8(this.pos++);this.bottom_up?r-=s:r+=s,e+=s*this.width*4+4*a}else{for(var f=this.buffer.readUInt8(this.pos++),u=0;u<o;u++)t.call(this,n?15&f:(240&f)>>4),1&u&&u+1<o&&(f=this.buffer.readUInt8(this.pos++)),n=!n;1==(o+1>>1&1)&&this.pos++}}else for(u=0;u<i;u++)t.call(this,n?15&o:(240&o)>>4),n=!n}}else{var c=Math.ceil(this.width/2),h=c%4;for(s=this.height-1;s>=0;s--){var p=this.bottom_up?s:this.height-1-s;for(a=0;a<c;a++){o=this.buffer.readUInt8(this.pos++),e=p*this.width*4+2*a*4;var l=o>>4,d=15&o,m=this.palette[l];if(this.data[e]=0,this.data[e+1]=m.blue,this.data[e+2]=m.green,this.data[e+3]=m.red,2*a+1>=this.width)break;m=this.palette[d],this.data[e+4]=0,this.data[e+4+1]=m.blue,this.data[e+4+2]=m.green,this.data[e+4+3]=m.red}0!=h&&(this.pos+=4-h)}}},i.prototype.bit8=function(){if(1==this.compress){var t=function(t){var r=this.palette[t];this.data[e]=0,this.data[e+1]=r.blue,this.data[e+2]=r.green,this.dLine truncated
@@ -1 +0,0 @@
/*! For license information please see worker.min.js.LICENSE.txt */
File renamed without changes.
+32
View File
@@ -0,0 +1,32 @@
{
"tags": {
"allowUnknownTags": true
},
"plugins": [
"plugins/markdown",
"node_modules/jsdoc-babel"
],
"templates": {
"systemName": "CyberChef",
"footer": "",
"copyright": "&copy; Crown Copyright 2017",
"navType": "inline",
"theme": "cerulean",
"linenums": true,
"collapseSymbols": false,
"inverseNav": true,
"outputSourceFiles": true,
"outputSourcePath": true,
"dateFormat": "ddd MMM Do YYYY",
"sort": false,
"logoFile": "cyberchef-32x32.png",
"cleverLinks": false,
"monospaceLinks": false,
"protocol": "html://",
"methodHeadingReturns": false
},
"markdown": {
"parser": "gfm",
"hardwrap": true
}
}
-33
View File
@@ -1,33 +0,0 @@
<!--
CyberChef - The Cyber Swiss Army Knife
@copyright Crown Copyright 2016
@license Apache-2.0
Copyright 2016 Crown Copyright
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<!DOCTYPE html><html lang="en" class="classic"><head><meta charset="UTF-8"><title>CyberChef</title><meta name="copyright" content="Crown Copyright 2016"><meta name="description" content="The Cyber Swiss Army Knife - a web app for encryption, encoding, compression and data analysis"><meta name="keywords" content="base64, hex, decode, encode, encrypt, decrypt, compress, decompress, regex, regular expressions, hash, crypt, hexadecimal, user agent, url, certificate, x.509, parser, JSON, gzip, md5, sha1, aes, des, blowfish, xor"><link rel="icon" type="image/ico" href="assets/aecc661b69309290f600.ico"><script type="application/javascript">"use strict";try{document.querySelector(":root").className=(JSON.parse(localStorage.getItem("options"))||{}).theme}catch(e){}var loadingMsgs=["Proving P = NP...","Computing 6 x 9...","Mining bitcoin...","Dividing by 0...","Initialising Skynet...","[REDACTED]","Downloading more RAM...","Ordering 1s and 0s...","Navigating neural network...","Importing machine learning...","Issuing Alice and Bob one-time pads...","Mining bitcoin cash...","Generating key material by trying to escape vim...","for i in range(additional): Pylon()","(creating unresolved tension...","Symlinking emacs and vim to ed...","Training branch predictor...","Timing cache hits...","Speculatively executing recipes...","Adding LLM hallucinations..."];for(let e=loadingMsgs.length-1;e>0;--e){var j=Math.floor(Math.random()*(e+1)),temp=loadingMsgs[e];loadingMsgs[e]=loadingMsgs[j],loadingMsgs[j]=temp}function changeLoadingMsg(){var e=loadingMsgs.shift();loadingMsgs.push(e);try{var n=document.getElementById("preloader-msg");n.classList.contains("loading")||n.classList.add("loading"),n.innerHTML=e}catch(e){setTimeout(changeLoadingMsg,1e3)}}function loadingErrorHandler(e){function n(e){var n={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#x27;","/":"&#x2F;","`":"&#x60;"};return e.replace(/[&<>"'/`]/g,(function(e){return n[e]}))}var r=e.message+(e.filename?"\nFilename: "+e.filename:"")+(e.lineno?"\nLine: "+e.lineno:"")+(e.colno?"\nColumn: "+e.colno:"")+(e.error?"\nError: "+e.error:"")+"\nUser-Agent: "+navigator.userAgent+"\nCyberChef version: 10.5.2";clearInterval(window.loadingMsgsInt),document.getElementById("preloader").remove(),document.getElementById("preloader-msg").remove(),document.getElementById("preloader-error").innerHTML="CyberChef encountered an error while loading.<br><br>The following browser versions are supported:<ul><li>Google Chrome 50+</li><li>Mozilla Firefox 38+</li></ul>Your user agent is:<br>"+n(navigator.userAgent)+"<br><br>If your browser is supported, please <a href='https://github.com/gchq/CyberChef/issues/new/choose'>raise an issue</a> including the following details:<br><br><pre>"+n(r)+"</pre>"}changeLoadingMsg(),window.loadingMsgsInt=setInterval(changeLoadingMsg,2e3*Math.random()+1500),window.addEventListener("error",loadingErrorHandler)</script><script defer="defer" src="assets/main.js"></script><link href="assets/main.css" rel="stylesheet"><script type='application/ld+json'>[{"@context":"http://schema.org","@type":"Organization","url":"https://gchq.github.io/CyberChef/","logo":"https://gchq.github.io/CyberChef/images/cyberchef-128x128.png","sameAs":["https://github.com/gchq/CyberChef","https://www.npmjs.com/package/cyberchef"]},{"@context":"http://schema.org","@type":"WebSite","url":"https://gchq.github.io/CyberChef/","name":"CyberChef","potentialAction":{"@type":"SearchAction","target":"https://gchq.github.io/CyberChef/?op={operation_search_term}","query-input":"required name=operation_search_term"}}]</script></head><body><div id="loader-wrapper"><div id="preloader" class="loader"></div><div id="preloader-msg" class="loading-msg"></div><div id="preloader-error" class="loading-error"></div></div><button type="button" class="btn btn-warning bmd-btn-icon" id="edit-favourites" data-toggle="tooltip" title="Edit favourites"><i class="material-icons">star</i></button><div id="content-wrapper"><div id="banner" class="row"><div class="col" style="text-align:left;padding-left:10px"><a href="#" data-toggle="modal" data-target="#download-modal" data-help-title="Downloading CyberChef" data-help="<p>CyberChef can be downloaded to run locally or hosted within your own network. It has no server-side component so all that is required is that the ZIP file is uncompressed and the files are accessible.</p><p>As a user, it is worth noting that unofficial versions of CyberChef could have been modified to introduce Input and/or Recipe exfiltration. We recommend always using the official, open source, up-to-date version of CyberChef hosted at <a href='https://gchq.github.io/CyberChef'>https://gchq.github.io/CyberChef</a> if accessible.</p><p>The Network tab in your browser's Developer console (F12) can be used to inspect the network requests made by a website. This can confirm that no data is uploaded when a CyberChef recipe is baked.</p>">Download CyberChef <i class="material-icons">file_download</i></a></Line truncated
<!-- Begin Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-G9R4C1H8SR"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-G9R4C1H8SR');
</script>
<!-- End Google Analytics -->
</body></html>
-2
View File
@@ -1,2 +0,0 @@
/*! For license information please see Bletchley.js.LICENSE.txt */
(()=>{var e={79742:(e,t)=>{"use strict";t.byteLength=function(e){var t=u(e),r=t[0],n=t[1];return 3*(r+n)/4-n},t.toByteArray=function(e){var t,r,i=u(e),a=i[0],s=i[1],l=new o(function(e,t,r){return 3*(t+r)/4-r}(0,a,s)),c=0,f=s>0?a-4:a;for(r=0;r<f;r+=4)t=n[e.charCodeAt(r)]<<18|n[e.charCodeAt(r+1)]<<12|n[e.charCodeAt(r+2)]<<6|n[e.charCodeAt(r+3)],l[c++]=t>>16&255,l[c++]=t>>8&255,l[c++]=255&t;return 2===s&&(t=n[e.charCodeAt(r)]<<2|n[e.charCodeAt(r+1)]>>4,l[c++]=255&t),1===s&&(t=n[e.charCodeAt(r)]<<10|n[e.charCodeAt(r+1)]<<4|n[e.charCodeAt(r+2)]>>2,l[c++]=t>>8&255,l[c++]=255&t),l},t.fromByteArray=function(e){for(var t,n=e.length,o=n%3,i=[],a=16383,s=0,u=n-o;s<u;s+=a)i.push(l(e,s,s+a>u?u:s+a));return 1===o?(t=e[n-1],i.push(r[t>>2]+r[t<<4&63]+"==")):2===o&&(t=(e[n-2]<<8)+e[n-1],i.push(r[t>>10]+r[t>>4&63]+r[t<<2&63]+"=")),i.join("")};for(var r=[],n=[],o="undefined"!=typeof Uint8Array?Uint8Array:Array,i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",a=0,s=i.length;a<s;++a)r[a]=i[a],n[i.charCodeAt(a)]=a;function u(e){var t=e.length;if(t%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var r=e.indexOf("=");return-1===r&&(r=t),[r,r===t?0:4-r%4]}function l(e,t,n){for(var o,i,a=[],s=t;s<n;s+=3)o=(e[s]<<16&16711680)+(e[s+1]<<8&65280)+(255&e[s+2]),a.push(r[(i=o)>>18&63]+r[i>>12&63]+r[i>>6&63]+r[63&i]);return a.join("")}n["-".charCodeAt(0)]=62,n["_".charCodeAt(0)]=63},48764:(e,t,r)=>{"use strict";const n=r(79742),o=r(80645),i="function"==typeof Symbol&&"function"==typeof Symbol.for?Symbol.for("nodejs.util.inspect.custom"):null;t.Buffer=u,t.INSPECT_MAX_BYTES=50;const a=2147483647;function s(e){if(e>a)throw new RangeError('The value "'+e+'" is invalid for option "size"');const t=new Uint8Array(e);return Object.setPrototypeOf(t,u.prototype),t}function u(e,t,r){if("number"==typeof e){if("string"==typeof t)throw new TypeError('The "string" argument must be of type string. Received type number');return f(e)}return l(e,t,r)}function l(e,t,r){if("string"==typeof e)return function(e,t){if("string"==typeof t&&""!==t||(t="utf8"),!u.isEncoding(t))throw new TypeError("Unknown encoding: "+t);const r=0|m(e,t);let n=s(r);const o=n.write(e,t);return o!==r&&(n=n.slice(0,o)),n}(e,t);if(ArrayBuffer.isView(e))return function(e){if(Y(e,Uint8Array)){const t=new Uint8Array(e);return p(t.buffer,t.byteOffset,t.byteLength)}return h(e)}(e);if(null==e)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e);if(Y(e,ArrayBuffer)||e&&Y(e.buffer,ArrayBuffer))return p(e,t,r);if("undefined"!=typeof SharedArrayBuffer&&(Y(e,SharedArrayBuffer)||e&&Y(e.buffer,SharedArrayBuffer)))return p(e,t,r);if("number"==typeof e)throw new TypeError('The "value" argument must not be of type number. Received type number');const n=e.valueOf&&e.valueOf();if(null!=n&&n!==e)return u.from(n,t,r);const o=function(e){if(u.isBuffer(e)){const t=0|d(e.length),r=s(t);return 0===r.length||e.copy(r,0,0,t),r}return void 0!==e.length?"number"!=typeof e.length||J(e.length)?s(0):h(e):"Buffer"===e.type&&Array.isArray(e.data)?h(e.data):void 0}(e);if(o)return o;if("undefined"!=typeof Symbol&&null!=Symbol.toPrimitive&&"function"==typeof e[Symbol.toPrimitive])return u.from(e[Symbol.toPrimitive]("string"),t,r);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e)}function c(e){if("number"!=typeof e)throw new TypeError('"size" argument must be of type number');if(e<0)throw new RangeError('The value "'+e+'" is invalid for option "size"')}function f(e){return c(e),s(e<0?0:0|d(e))}function h(e){const t=e.length<0?0:0|d(e.length),r=s(t);for(let n=0;n<t;n+=1)r[n]=255&e[n];return r}function p(e,t,r){if(t<0||e.byteLength<t)throw new RangeError('"offset" is outside of buffer bounds');if(e.byteLength<t+(r||0))throw new RangeError('"length" is outside of buffer bounds');let n;return n=void 0===t&&void 0===r?new Uint8Array(e):void 0===r?new Uint8Array(e,t):new Uint8Array(e,t,r),Object.setPrototypeOf(n,u.prototype),n}function d(e){if(e>=a)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+a.toString(16)+" bytes");return 0|e}function m(e,t){if(u.isBuffer(e))return e.length;if(ArrayBuffer.isView(e)||Y(e,ArrayBuffer))return e.byteLength;if("string"!=typeof e)throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof e);const r=e.length,n=arguments.length>2&&!0===arguments[2];if(!n&&0===r)return 0;let o=!1;for(;;)switch(t){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":return Q(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return H(e).length;default:if(o)return n?-1:Q(e).length;t=(""+t).toLowerCase(),o=!0}}function v(e,t,r){let n=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<Line truncated
-226
View File
@@ -1,226 +0,0 @@
/*!
* The buffer module from node.js, for the browser.
*
* @author Feross Aboukhadijeh <https://feross.org>
* @license MIT
*/
/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */
/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */
/**
* @author d98762625 [d98762625@gmail.com]
* @copyright Crown Copyright 2019
* @license Apache-2.0
*/
/**
* @author n1474335 [n1474335@gmail.com]
* @author Matt C [matt@artemisbot.uk]
* @copyright Crown Copyright 2016
* @license Apache-2.0
*/
/**
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2016
* @license Apache-2.0
*/
/**
* Base64 functions.
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2016
* @license Apache-2.0
*/
/**
* Custom error type for handling Dish type errors.
* i.e. where the Dish cannot be successfully translated between types
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*/
/**
* Custom error type for handling operation input errors.
* i.e. where the operation can handle the error and print a message to the screen.
*
* @author d98762625 [d98762625@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*/
/**
* CyberChef - The Cyber Swiss Army Knife
*
* @copyright Crown Copyright 2016
* @license Apache-2.0
*
* Copyright 2016 Crown Copyright
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/**
* Decimal functions.
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*/
/**
* Emulation of Colossus.
*
* Tested against the Colossus Rebuild at Bletchley Park's TNMOC
* using a variety of inputs and settings to confirm correctness.
*
* @author VirtualColossus [martin@virtualcolossus.co.uk]
* @copyright Crown Copyright 2019
* @license Apache-2.0
*/
/**
* Emulation of the Bombe machine.
*
* @author s2224834
* @author The National Museum of Computing - Bombe Rebuild Project
* @copyright Crown Copyright 2019
* @license Apache-2.0
*/
/**
* Emulation of the Bombe machine.
*
* Tested against the Bombe Rebuild at Bletchley Park's TNMOC
* using a variety of inputs and settings to confirm correctness.
*
* @author s2224834
* @copyright Crown Copyright 2019
* @license Apache-2.0
*/
/**
* Emulation of the Bombe machine.
* This version carries out multiple Bombe runs to handle unknown rotor configurations.
*
* @author s2224834
* @copyright Crown Copyright 2019
* @license Apache-2.0
*/
/**
* Emulation of the Enigma machine.
*
* @author s2224834
* @copyright Crown Copyright 2019
* @license Apache-2.0
*/
/**
* Emulation of the Enigma machine.
*
* Tested against various genuine Enigma machines using a variety of inputs
* and settings to confirm correctness.
*
* @author s2224834
* @copyright Crown Copyright 2019
* @license Apache-2.0
*/
/**
* Emulation of the Lorenz SZ40/42a/42b cipher attachment.
*
* Tested against the Colossus Rebuild at Bletchley Park's TNMOC
* using a variety of inputs and settings to confirm correctness.
*
* @author VirtualColossus [martin@virtualcolossus.co.uk]
* @copyright Crown Copyright 2019
* @license Apache-2.0
*/
/**
* Emulation of the SIGABA machine
*
* @author hettysymes
* @copyright hettysymes 2020
* @license Apache-2.0
*/
/**
* Emulation of the SIGABA machine.
*
* @author hettysymes
* @copyright hettysymes 2020
* @license Apache-2.0
*/
/**
* Emulation of the Typex machine.
*
* @author s2224834
* @author The National Museum of Computing - Bombe Rebuild Project
* @copyright Crown Copyright 2019
* @license Apache-2.0
*/
/**
* Emulation of the Typex machine.
*
* Tested against a genuine Typex machine using a variety of inputs
* and settings to confirm correctness.
*
* @author s2224834
* @copyright Crown Copyright 2019
* @license Apache-2.0
*/
/**
* File signatures and extractor functions
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*
*/
/**
* File type functions
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*
*/
/**
* Resources required by the Lorenz SZ40/42 and Colossus
*
* @author VirtualColossus [martin@virtualcolossus.co.uk]
* @copyright Crown Copyright 2019
* @license Apache-2.0
*/
/**
* Stream class for parsing binary protocols.
*
* @author n1474335 [n1474335@gmail.com]
* @author tlwr [toby@toby.codes]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*
*/
-2
View File
@@ -1,2 +0,0 @@
/*! For license information please see Charts.js.LICENSE.txt */
(()=>{var t={79742:(t,e)=>{"use strict";e.byteLength=function(t){var e=c(t),n=e[0],r=e[1];return 3*(n+r)/4-r},e.toByteArray=function(t){var e,n,o=c(t),a=o[0],u=o[1],s=new i(function(t,e,n){return 3*(e+n)/4-n}(0,a,u)),f=0,l=u>0?a-4:a;for(n=0;n<l;n+=4)e=r[t.charCodeAt(n)]<<18|r[t.charCodeAt(n+1)]<<12|r[t.charCodeAt(n+2)]<<6|r[t.charCodeAt(n+3)],s[f++]=e>>16&255,s[f++]=e>>8&255,s[f++]=255&e;return 2===u&&(e=r[t.charCodeAt(n)]<<2|r[t.charCodeAt(n+1)]>>4,s[f++]=255&e),1===u&&(e=r[t.charCodeAt(n)]<<10|r[t.charCodeAt(n+1)]<<4|r[t.charCodeAt(n+2)]>>2,s[f++]=e>>8&255,s[f++]=255&e),s},e.fromByteArray=function(t){for(var e,r=t.length,i=r%3,o=[],a=16383,u=0,c=r-i;u<c;u+=a)o.push(s(t,u,u+a>c?c:u+a));return 1===i?(e=t[r-1],o.push(n[e>>2]+n[e<<4&63]+"==")):2===i&&(e=(t[r-2]<<8)+t[r-1],o.push(n[e>>10]+n[e>>4&63]+n[e<<2&63]+"=")),o.join("")};for(var n=[],r=[],i="undefined"!=typeof Uint8Array?Uint8Array:Array,o="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",a=0,u=o.length;a<u;++a)n[a]=o[a],r[o.charCodeAt(a)]=a;function c(t){var e=t.length;if(e%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var n=t.indexOf("=");return-1===n&&(n=e),[n,n===e?0:4-n%4]}function s(t,e,r){for(var i,o,a=[],u=e;u<r;u+=3)i=(t[u]<<16&16711680)+(t[u+1]<<8&65280)+(255&t[u+2]),a.push(n[(o=i)>>18&63]+n[o>>12&63]+n[o>>6&63]+n[63&o]);return a.join("")}r["-".charCodeAt(0)]=62,r["_".charCodeAt(0)]=63},48764:(t,e,n)=>{"use strict";const r=n(79742),i=n(80645),o="function"==typeof Symbol&&"function"==typeof Symbol.for?Symbol.for("nodejs.util.inspect.custom"):null;e.Buffer=c,e.INSPECT_MAX_BYTES=50;const a=2147483647;function u(t){if(t>a)throw new RangeError('The value "'+t+'" is invalid for option "size"');const e=new Uint8Array(t);return Object.setPrototypeOf(e,c.prototype),e}function c(t,e,n){if("number"==typeof t){if("string"==typeof e)throw new TypeError('The "string" argument must be of type string. Received type number');return l(t)}return s(t,e,n)}function s(t,e,n){if("string"==typeof t)return function(t,e){if("string"==typeof e&&""!==e||(e="utf8"),!c.isEncoding(e))throw new TypeError("Unknown encoding: "+e);const n=0|y(t,e);let r=u(n);const i=r.write(t,e);return i!==n&&(r=r.slice(0,i)),r}(t,e);if(ArrayBuffer.isView(t))return function(t){if(X(t,Uint8Array)){const e=new Uint8Array(t);return d(e.buffer,e.byteOffset,e.byteLength)}return h(t)}(t);if(null==t)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof t);if(X(t,ArrayBuffer)||t&&X(t.buffer,ArrayBuffer))return d(t,e,n);if("undefined"!=typeof SharedArrayBuffer&&(X(t,SharedArrayBuffer)||t&&X(t.buffer,SharedArrayBuffer)))return d(t,e,n);if("number"==typeof t)throw new TypeError('The "value" argument must not be of type number. Received type number');const r=t.valueOf&&t.valueOf();if(null!=r&&r!==t)return c.from(r,e,n);const i=function(t){if(c.isBuffer(t)){const e=0|p(t.length),n=u(e);return 0===n.length||t.copy(n,0,0,e),n}return void 0!==t.length?"number"!=typeof t.length||J(t.length)?u(0):h(t):"Buffer"===t.type&&Array.isArray(t.data)?h(t.data):void 0}(t);if(i)return i;if("undefined"!=typeof Symbol&&null!=Symbol.toPrimitive&&"function"==typeof t[Symbol.toPrimitive])return c.from(t[Symbol.toPrimitive]("string"),e,n);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof t)}function f(t){if("number"!=typeof t)throw new TypeError('"size" argument must be of type number');if(t<0)throw new RangeError('The value "'+t+'" is invalid for option "size"')}function l(t){return f(t),u(t<0?0:0|p(t))}function h(t){const e=t.length<0?0:0|p(t.length),n=u(e);for(let r=0;r<e;r+=1)n[r]=255&t[r];return n}function d(t,e,n){if(e<0||t.byteLength<e)throw new RangeError('"offset" is outside of buffer bounds');if(t.byteLength<e+(n||0))throw new RangeError('"length" is outside of buffer bounds');let r;return r=void 0===e&&void 0===n?new Uint8Array(t):void 0===n?new Uint8Array(t,e):new Uint8Array(t,e,n),Object.setPrototypeOf(r,c.prototype),r}function p(t){if(t>=a)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+a.toString(16)+" bytes");return 0|t}function y(t,e){if(c.isBuffer(t))return t.length;if(ArrayBuffer.isView(t)||X(t,ArrayBuffer))return t.byteLength;if("string"!=typeof t)throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof t);const n=t.length,r=arguments.length>2&&!0===arguments[2];if(!r&&0===n)return 0;let i=!1;for(;;)switch(e){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":return G(t).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return V(t).length;default:if(i)return r?-1:G(t).length;e=(""+e).toLowerCase(),i=!0}}function g(t,e,n){let r=!1;if((void 0===e||e<0)&&(e=0),e>this.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<Line truncated
-119
View File
@@ -1,119 +0,0 @@
/*!
* The buffer module from node.js, for the browser.
*
* @author Feross Aboukhadijeh <https://feross.org>
* @license MIT
*/
/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */
/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */
/**
* @author d98762625 [d98762625@gmail.com]
* @copyright Crown Copyright 2019
* @license Apache-2.0
*/
/**
* @author n1474335 [n1474335@gmail.com]
* @author Matt C [matt@artemisbot.uk]
* @copyright Crown Copyright 2016
* @license Apache-2.0
*/
/**
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2016
* @license Apache-2.0
*/
/**
* @author tlwr [toby@toby.codes]
* @author Matt C [me@mitt.dev]
* @copyright Crown Copyright 2019
* @license Apache-2.0
*/
/**
* Base64 functions.
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2016
* @license Apache-2.0
*/
/**
* Custom error type for handling Dish type errors.
* i.e. where the Dish cannot be successfully translated between types
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*/
/**
* Custom error type for handling operation input errors.
* i.e. where the operation can handle the error and print a message to the screen.
*
* @author d98762625 [d98762625@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*/
/**
* CyberChef - The Cyber Swiss Army Knife
*
* @copyright Crown Copyright 2016
* @license Apache-2.0
*
* Copyright 2016 Crown Copyright
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/**
* Decimal functions.
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*/
/**
* File signatures and extractor functions
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*
*/
/**
* File type functions
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*
*/
/**
* Stream class for parsing binary protocols.
*
* @author n1474335 [n1474335@gmail.com]
* @author tlwr [toby@toby.codes]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*
*/
-2
View File
@@ -1,2 +0,0 @@
/*! For license information please see Ciphers.js.LICENSE.txt */
(()=>{var __webpack_modules__={10322:function(module){var factory;factory=function(){return function(e){var t={};function r(n){if(t[n])return t[n].exports;var i=t[n]={i:n,l:!1,exports:{}};return e[n].call(i.exports,i,i.exports,r),i.l=!0,i.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)r.d(n,i,function(t){return e[t]}.bind(null,i));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=177)}([function(e,t){"function"==typeof Object.create?e.exports=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}:e.exports=function(e,t){e.super_=t;var r=function(){};r.prototype=t.prototype,e.prototype=new r,e.prototype.constructor=e}},function(e,t,r){var n=r(2),i=n.Buffer;function a(e,t){for(var r in e)t[r]=e[r]}function o(e,t,r){return i(e,t,r)}i.from&&i.alloc&&i.allocUnsafe&&i.allocUnsafeSlow?e.exports=n:(a(n,t),t.Buffer=o),a(i,o),o.from=function(e,t,r){if("number"==typeof e)throw new TypeError("Argument must not be a number");return i(e,t,r)},o.alloc=function(e,t,r){if("number"!=typeof e)throw new TypeError("Argument must be a number");var n=i(e);return void 0!==t?"string"==typeof r?n.fill(t,r):n.fill(t):n.fill(0),n},o.allocUnsafe=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return i(e)},o.allocUnsafeSlow=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return n.SlowBuffer(e)}},function(e,t,r){"use strict";(function(e){var n=r(169),i=r(168),a=r(76);function o(){return c.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function s(e,t){if(o()<t)throw new RangeError("Invalid typed array length");return c.TYPED_ARRAY_SUPPORT?(e=new Uint8Array(t)).__proto__=c.prototype:(null===e&&(e=new c(t)),e.length=t),e}function c(e,t,r){if(!(c.TYPED_ARRAY_SUPPORT||this instanceof c))return new c(e,t,r);if("number"==typeof e){if("string"==typeof t)throw new Error("If encoding is specified then the first argument must be a string");return h(this,e)}return u(this,e,t,r)}function u(e,t,r,n){if("number"==typeof t)throw new TypeError('"value" argument must not be a number');return"undefined"!=typeof ArrayBuffer&&t instanceof ArrayBuffer?function(e,t,r,n){if(t.byteLength,r<0||t.byteLength<r)throw new RangeError("'offset' is out of bounds");if(t.byteLength<r+(n||0))throw new RangeError("'length' is out of bounds");return t=void 0===r&&void 0===n?new Uint8Array(t):void 0===n?new Uint8Array(t,r):new Uint8Array(t,r,n),c.TYPED_ARRAY_SUPPORT?(e=t).__proto__=c.prototype:e=l(e,t),e}(e,t,r,n):"string"==typeof t?function(e,t,r){if("string"==typeof r&&""!==r||(r="utf8"),!c.isEncoding(r))throw new TypeError('"encoding" must be a valid string encoding');var n=0|p(t,r),i=(e=s(e,n)).write(t,r);return i!==n&&(e=e.slice(0,i)),e}(e,t,r):function(e,t){if(c.isBuffer(t)){var r=0|d(t.length);return 0===(e=s(e,r)).length||t.copy(e,0,0,r),e}if(t){if("undefined"!=typeof ArrayBuffer&&t.buffer instanceof ArrayBuffer||"length"in t)return"number"!=typeof t.length||(n=t.length)!=n?s(e,0):l(e,t);if("Buffer"===t.type&&a(t.data))return l(e,t.data)}var n;throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.")}(e,t)}function f(e){if("number"!=typeof e)throw new TypeError('"size" argument must be a number');if(e<0)throw new RangeError('"size" argument must not be negative')}function h(e,t){if(f(t),e=s(e,t<0?0:0|d(t)),!c.TYPED_ARRAY_SUPPORT)for(var r=0;r<t;++r)e[r]=0;return e}function l(e,t){var r=t.length<0?0:0|d(t.length);e=s(e,r);for(var n=0;n<r;n+=1)e[n]=255&t[n];return e}function d(e){if(e>=o())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+o().toString(16)+" bytes");return 0|e}function p(e,t){if(c.isBuffer(e))return e.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!=typeof e&&(e=""+e);var r=e.length;if(0===r)return 0;for(var n=!1;;)switch(t){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":case void 0:return K(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return G(e).length;default:if(n)return K(e).length;t=(""+t).toLowerCase(),n=!0}}function y(e,t,r){var n=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===r||r>this.length)&&(r=this.lenLine truncated
-306
View File
@@ -1,306 +0,0 @@
/*!
* The buffer module from node.js, for the browser.
*
* @author Feross Aboukhadijeh <feross@feross.org> <http://feross.org>
* @license MIT
*/
/*!
* The buffer module from node.js, for the browser.
*
* @author Feross Aboukhadijeh <https://feross.org>
* @license MIT
*/
/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */
/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */
/**
Blowfish.js from Dojo Toolkit 1.8.1 (https://github.com/dojo/dojox/tree/1.8/encoding)
Extracted by Sladex (xslade@gmail.com)
Shoehorned into working with mjs for CyberChef by Matt C (matt@artemisbot.uk)
Refactored and implemented modes support by cbeuw (cbeuw.andy@gmail.com)
@license BSD
========================================================================
The "New" BSD License:
**********************
Copyright (c) 2005-2016, The Dojo Foundation
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
* Neither the name of the Dojo Foundation nor the names of its contributors
may be used to endorse or promote products derived from this software
without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
/**
* @author Flavio Diez [flaviofdiez+cyberchef@gmail.com]
* @copyright Crown Copyright 2020
* @license Apache-2.0
*/
/**
* @author Jarmo van Lenthe [github.com/jarmovanlenthe]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*/
/**
* @author Matt C [matt@artemisbot.uk]
* @copyright Crown Copyright 2016
* @license Apache-2.0
*/
/**
* @author Matt C [matt@artemisbot.uk]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*/
/**
* @author Matt C [me@mitt.dev]
* @author gchq77703 []
* @copyright Crown Copyright 2018
* @license Apache-2.0
*/
/**
* @author Matt C [me@mitt.dev]
* @author gchq77703 []
* @copyright Crown Copyright 2020
* @license Apache-2.0
*/
/**
* @author Matt C [me@mitt.dev]
* @copyright Crown Copyright 2020
* @license Apache-2.0
*/
/**
* @author d98762625 [d98762625@gmail.com]
* @copyright Crown Copyright 2019
* @license Apache-2.0
*/
/**
* @author dolphinOnKeys [robin@weird.io]
* @copyright Crown Copyright 2022
* @license Apache-2.0
*/
/**
* @author mikecat
* @copyright Crown Copyright 2022
* @license Apache-2.0
*/
/**
* @author n1073645 [n1073645@gmail.com]
* @copyright Crown Copyright 2020
* @license Apache-2.0
*/
/**
* @author n1474335 [n1474335@gmail.com]
* @author Matt C [matt@artemisbot.uk]
* @copyright Crown Copyright 2016
* @license Apache-2.0
*/
/**
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2016
* @license Apache-2.0
*/
/**
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2023
* @license Apache-2.0
*/
/**
* @author swesven
* @copyright 2021
* @license Apache-2.0
*/
/**
* Base64 functions.
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2016
* @license Apache-2.0
*/
/**
* Binary functions.
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*/
/**
* Cipher functions.
*
* @author Matt C [matt@artemisbot.uk]
* @author n1474335 [n1474335@gmail.com]
*
* @copyright Crown Copyright 2018
* @license Apache-2.0
*
*/
/**
* Complete implementation of SM4 cipher encryption/decryption with
* ECB, CBC, CFB, OFB, CTR block modes.
* These modes are specified in IETF draft-ribose-cfrg-sm4-09, see:
* https://tools.ietf.org/id/draft-ribose-cfrg-sm4-09.html
* for details.
*
* Follows spec from Cryptography Standardization Technical Comittee:
* http://www.gmbz.org.cn/upload/2018-04-04/1522788048733065051.pdf
*
* @author swesven
* @copyright 2021
* @license Apache-2.0
*/
/**
* Custom error type for handling Dish type errors.
* i.e. where the Dish cannot be successfully translated between types
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*/
/**
* Custom error type for handling operation input errors.
* i.e. where the operation can handle the error and print a message to the screen.
*
* @author d98762625 [d98762625@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*/
/**
* CyberChef - The Cyber Swiss Army Knife
*
* @copyright Crown Copyright 2016
* @license Apache-2.0
*
* Copyright 2016 Crown Copyright
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/**
* Decimal functions.
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*/
/**
* File signatures and extractor functions
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*
*/
/**
* File type functions
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*
*/
/**
* Hexadecimal functions.
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2016
* @license Apache-2.0
*/
/**
* RSA resources.
*
* @author Matt C [me@mitt.dev]
* @copyright Crown Copyright 2021
* @license Apache-2.0
*/
/**
* Stream class for parsing binary protocols.
*
* @author n1474335 [n1474335@gmail.com]
* @author tlwr [toby@toby.codes]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*
*/
/**
* Various delimiters
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*/
/** @preserve
* Counter block mode compatible with Dr Brian Gladman fileenc.c
* derived from CryptoJS.mode.CTR
* Jan Hruby jhruby.web@gmail.com
*/
/** @preserve
(c) 2012 by Cédric Mesnil. All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
- Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
- Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-2
View File
@@ -1,2 +0,0 @@
/*! For license information please see Code.js.LICENSE.txt */
(()=>{var e={92878:function(e,t,n){var r=n(48764).Buffer;!function(e){"use strict";const t=",".charCodeAt(0),n=";".charCodeAt(0),i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",a=new Uint8Array(64),o=new Uint8Array(128);for(let e=0;e<i.length;e++){const t=i.charCodeAt(e);o[t]=e,a[e]=t}const s="undefined"!=typeof TextDecoder?new TextDecoder:void 0!==r?{decode:e=>r.from(e.buffer,e.byteOffset,e.byteLength).toString()}:{decode(e){let t="";for(let n=0;n<e.length;n++)t+=String.fromCharCode(e[n]);return t}};function l(e,t,n,r){let i=0,a=0,s=0;do{const n=e.charCodeAt(t++);s=o[n],i|=(31&s)<<a,a+=5}while(32&s);const l=1&i;return i>>>=1,l&&(i=-2147483648|-i),n[r]+=i,t}function u(e,r){if(r>=e.length)return!1;const i=e.charCodeAt(r);return i!==t&&i!==n}function c(e){e.sort(p)}function p(e,t){return e[0]-t[0]}function d(e){const r=new Int32Array(5);let i=new Uint8Array(1024),a=0;for(let o=0;o<e.length;o++){const s=e[o];if(o>0&&(i=_(i,a,1),i[a++]=n),0!==s.length){r[0]=0;for(let e=0;e<s.length;e++){const n=s[e];i=_(i,a,36),e>0&&(i[a++]=t),a=m(i,a,r,n,0),1!==n.length&&(a=m(i,a,r,n,1),a=m(i,a,r,n,2),a=m(i,a,r,n,3),4!==n.length&&(a=m(i,a,r,n,4)))}}}return s.decode(i.subarray(0,a))}function _(e,t,n){if(e.length>t+n)return e;const r=new Uint8Array(2*e.length);return r.set(e),r}function m(e,t,n,r,i){const o=r[i];let s=o-n[i];n[i]=o,s=s<0?-s<<1|1:s<<1;do{let n=31&s;s>>>=5,s>0&&(n|=32),e[t++]=a[n]}while(s>0);return t}const f=/^[\w+.-]+:\/\//,h=/^([\w+.-]+:)\/\/([^@/#?]*@)?([^:/#?]*)(:\d+)?(\/[^#?]*)?/,g=/^file:(?:\/\/((?![a-z]:)[^/]*)?)?(\/?.*)/i;function E(e){return e.startsWith("/")}function S(e){const t=h.exec(e);return b(t[1],t[2]||"",t[3],t[4]||"",t[5]||"/")}function b(e,t,n,r,i){return{scheme:e,user:t,host:n,port:r,path:i,relativePath:!1}}function D(e){if(function(e){return e.startsWith("//")}(e)){const t=S("http:"+e);return t.scheme="",t}if(E(e)){const t=S("http://foo.com"+e);return t.scheme="",t.host="",t}if(function(e){return e.startsWith("file:")}(e))return function(e){const t=g.exec(e),n=t[2];return b("file:","",t[1]||"","",E(n)?n:"/"+n)}(e);if(function(e){return f.test(e)}(e))return S(e);const t=S("http://foo.com/"+e);return t.scheme="",t.host="",t.relativePath=!0,t}function C(e){const{relativePath:t}=e,n=e.path.split("/");let r=1,i=0,a=!1;for(let e=1;e<n.length;e++){const o=n[e];o?(a=!1,"."!==o&&(".."!==o?(n[r++]=o,i++):i?(a=!0,i--,r--):t&&(n[r++]=o))):a=!0}let o="";for(let e=1;e<r;e++)o+="/"+n[e];(!o||a&&!o.endsWith("/.."))&&(o+="/"),e.path=o}function A(e,t){if(!e&&!t)return"";const n=D(e);if(t&&!n.scheme){const e=D(t);n.scheme=e.scheme,n.host||(n.user=e.user,n.host=e.host,n.port=e.port),function(e,t){e.relativePath&&(C(t),"/"===e.path?e.path=t.path:e.path=function(e){if(e.endsWith("/.."))return e;const t=e.lastIndexOf("/");return e.slice(0,t+1)}(t.path)+e.path,e.relativePath=t.relativePath)}(n,e)}if(C(n),n.relativePath){const r=n.path.slice(1);return r?!(t||e).startsWith(".")||r.startsWith(".")?r:"./"+r:"."}return n.scheme||n.host?`${n.scheme}//${n.user}${n.host}${n.port}${n.path}`:n.path}function y(e,t){return t&&!t.endsWith("/")&&(t+="/"),A(e,t)}const v=0,T=1,R=2,N=3,O=4;function x(e,t){for(let n=t;n<e.length;n++)if(!I(e[n]))return n;return e.length}function I(e){for(let t=1;t<e.length;t++)if(e[t][v]<e[t-1][v])return!1;return!0}function w(e,t){return t||(e=e.slice()),e.sort(F)}function F(e,t){return e[v]-t[v]}let M=!1;function k(e,t,n){for(let r=n+1;r<e.length&&e[r][v]===t;r++,n++);return n}function L(e,t,n){for(let r=n-1;r>=0&&e[r][v]===t;r--,n--);return n}function B(e,t,n,r){const{lastKey:i,lastNeedle:a,lastIndex:o}=n;let s=0,l=e.length-1;if(r===i){if(t===a)return M=-1!==o&&e[o][v]===t,o;t>=a?s=-1===o?0:o:l=o}return n.lastKey=r,n.lastNeedle=t,n.lastIndex=function(e,t,n,r){for(;n<=r;){const i=n+(r-n>>1),a=e[i][v]-t;if(0===a)return M=!0,i;a<0?n=i+1:r=i-1}return M=!1,n-1}(e,t,s,l)}const P=function(e,t){const n="string"==typeof e?JSON.parse(e):e;if(!("sections"in n))return new $(n,t);const r=[],i=[],a=[],o=[],{sections:s}=n;let l=0;for(;l<s.length-1;l++){const e=s[l+1].offset;U(s[l],t,r,i,a,o,e.line,e.column)}s.length>0&&U(s[l],t,r,i,a,o,1/0,1/0);const u={version:3,file:n.file,names:o,sources:i,sourcesContent:a,mappings:r};return q(u)};function U(e,t,n,r,i,a,o,s){const l=P(e.map,t),{line:u,column:c}=e.offset,p=r.length,d=a.length,_=H(l),{resolvedSources:m}=l;G(r,m),G(i,l.sourcesContent||function(e){const t=[];for(let n=0;n<e;n++)t[n]=null;return t}(m.length)),G(a,l.names);for(let e=n.length;e<=u;e++)n.push([]);const f=o-u,h=Math.min(_.length,f+1);for(let e=0;e<h;e++){const t=_[e],r=0===e?n[u]:n[u+e]=[],i=0===e?c:0;for(let n=0;n<t.length;n++){const a=t[n],o=i+a[v];if(e===f&&o>=s)break;if(1===a.length){r.push([o]);continue}const l=p+a[T],u=a[R],c=a[N];4!==a.length?r.push([o,l,u,c,d+a[O]]):r.push([o,l,u,c])}}}function G(e,t){for(let n=0;n<t.length;n++)e.push(t[n])}const V=Object.freeze({source:null,line:null,column:null,name:null});Object.freeze({line:null,column:null});const Y=-1;let H,z,q,K,W;clLine truncated
-214
View File
@@ -1,214 +0,0 @@
/*!
* The buffer module from node.js, for the browser.
*
* @author Feross Aboukhadijeh <https://feross.org>
* @license MIT
*/
/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */
/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */
/**
* @author Matt C (matt@artemisbot.uk)
* @copyright Crown Copyright 2016
* @license Apache-2.0
*/
/**
* @author Matt C [matt@artemisbot.uk]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*/
/**
* @author Mikescher (https://github.com/Mikescher | https://mikescher.com)
* @copyright Crown Copyright 2016
* @license Apache-2.0
*/
/**
* @author d98762625 [d98762625@gmail.com]
* @copyright Crown Copyright 2019
* @license Apache-2.0
*/
/**
* @author j433866 [j433866@gmail.com]
* @copyright Crown Copyright 2019
* @license Apache-2.0
*/
/**
* @author n1474335 [n1474335@gmail.com]
* @author Matt C [matt@artemisbot.uk]
* @copyright Crown Copyright 2016
* @license Apache-2.0
*/
/**
* @author n1474335 [n1474335@gmail.com]
* @author Phillip Nordwall [phillip.nordwall@gmail.com]
* @copyright Crown Copyright 2016
* @license Apache-2.0
*/
/**
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2016
* @license Apache-2.0
*/
/**
* @author tlwr [toby@toby.codes]
* @copyright Crown Copyright 2017
* @license Apache-2.0
*/
/**
* Base64 functions.
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2016
* @license Apache-2.0
*/
/**
* Code resources.
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*/
/**
* Custom error type for handling Dish type errors.
* i.e. where the Dish cannot be successfully translated between types
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*/
/**
* Custom error type for handling operation input errors.
* i.e. where the operation can handle the error and print a message to the screen.
*
* @author d98762625 [d98762625@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*/
/**
* CyberChef - The Cyber Swiss Army Knife
*
* @copyright Crown Copyright 2016
* @license Apache-2.0
*
* Copyright 2016 Crown Copyright
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/**
* Decimal functions.
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*/
/**
* File signatures and extractor functions
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*
*/
/**
* File type functions
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*
*/
/**
* Stream class for parsing binary protocols.
*
* @author n1474335 [n1474335@gmail.com]
* @author tlwr [toby@toby.codes]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*
*/
/**
* Transform a json object into html representation
*
* Adapted for CyberChef by @n1474335 from jQuery json-viewer
* @author Alexandre Bodelot <alexandre.bodelot@gmail.com>
* @link https://github.com/abodelot/jquery.json-viewer
* @license MIT
*
* @returns {string}
*/
/**
* vkBeautify - javascript plugin to pretty-print or minify text in XML, JSON, CSS and SQL formats.
*
* Copyright (c) 2012 Vadim Kiryukhin
* vkiryukhin @ gmail.com
* http://www.eslinstructor.net/vkbeautify/
*
* Dual licensed under the MIT and GPL licenses:
* http://www.opensource.org/licenses/mit-license.php
* http://www.gnu.org/licenses/gpl.html
*
* Pretty print
*
* vkbeautify.xml(text [,indent_pattern]);
* vkbeautify.json(text [,indent_pattern]);
* vkbeautify.css(text [,indent_pattern]);
* vkbeautify.sql(text [,indent_pattern]);
*
* @text - String; text to beatufy;
* @indent_pattern - Integer | String;
* Integer: number of white spaces;
* String: character string to visualize indentation ( can also be a set of white spaces )
* Minify
*
* vkbeautify.xmlmin(text [,preserve_comments]);
* vkbeautify.jsonmin(text);
* vkbeautify.cssmin(text [,preserve_comments]);
* vkbeautify.sqlmin(text);
*
* @text - String; text to minify;
* @preserve_comments - Bool; [optional];
* Set this flag to true to prevent removing comments from @text ( minxml and mincss functions only. )
*
* Examples:
* vkbeautify.xml(text); // pretty print XML
* vkbeautify.json(text, 4 ); // pretty print JSON
* vkbeautify.css(text, '. . . .'); // pretty print CSS
* vkbeautify.sql(text, '----'); // pretty print SQL
*
* vkbeautify.xmlmin(text, true);// minify XML, preserve comments
* vkbeautify.jsonmin(text);// minify JSON
* vkbeautify.cssmin(text);// minify CSS, remove comments ( default )
* vkbeautify.sqlmin(text);// minify SQL
*
*/
-2
View File
@@ -1,2 +0,0 @@
/*! For license information please see Compression.js.LICENSE.txt */
(()=>{var __webpack_modules__={79742:(A,e)=>{"use strict";e.byteLength=function(A){var e=o(A),t=e[0],I=e[1];return 3*(t+I)/4-I},e.toByteArray=function(A){var e,t,i=o(A),g=i[0],n=i[1],a=new r(function(A,e,t){return 3*(e+t)/4-t}(0,g,n)),C=0,B=n>0?g-4:g;for(t=0;t<B;t+=4)e=I[A.charCodeAt(t)]<<18|I[A.charCodeAt(t+1)]<<12|I[A.charCodeAt(t+2)]<<6|I[A.charCodeAt(t+3)],a[C++]=e>>16&255,a[C++]=e>>8&255,a[C++]=255&e;return 2===n&&(e=I[A.charCodeAt(t)]<<2|I[A.charCodeAt(t+1)]>>4,a[C++]=255&e),1===n&&(e=I[A.charCodeAt(t)]<<10|I[A.charCodeAt(t+1)]<<4|I[A.charCodeAt(t+2)]>>2,a[C++]=e>>8&255,a[C++]=255&e),a},e.fromByteArray=function(A){for(var e,I=A.length,r=I%3,i=[],g=16383,n=0,o=I-r;n<o;n+=g)i.push(a(A,n,n+g>o?o:n+g));return 1===r?(e=A[I-1],i.push(t[e>>2]+t[e<<4&63]+"==")):2===r&&(e=(A[I-2]<<8)+A[I-1],i.push(t[e>>10]+t[e>>4&63]+t[e<<2&63]+"=")),i.join("")};for(var t=[],I=[],r="undefined"!=typeof Uint8Array?Uint8Array:Array,i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",g=0,n=i.length;g<n;++g)t[g]=i[g],I[i.charCodeAt(g)]=g;function o(A){var e=A.length;if(e%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var t=A.indexOf("=");return-1===t&&(t=e),[t,t===e?0:4-t%4]}function a(A,e,I){for(var r,i,g=[],n=e;n<I;n+=3)r=(A[n]<<16&16711680)+(A[n+1]<<8&65280)+(255&A[n+2]),g.push(t[(i=r)>>18&63]+t[i>>12&63]+t[i>>6&63]+t[63&i]);return g.join("")}I["-".charCodeAt(0)]=62,I["_".charCodeAt(0)]=63},48764:(A,e,t)=>{"use strict";const I=t(79742),r=t(80645),i="function"==typeof Symbol&&"function"==typeof Symbol.for?Symbol.for("nodejs.util.inspect.custom"):null;e.Buffer=o,e.INSPECT_MAX_BYTES=50;const g=2147483647;function n(A){if(A>g)throw new RangeError('The value "'+A+'" is invalid for option "size"');const e=new Uint8Array(A);return Object.setPrototypeOf(e,o.prototype),e}function o(A,e,t){if("number"==typeof A){if("string"==typeof e)throw new TypeError('The "string" argument must be of type string. Received type number');return B(A)}return a(A,e,t)}function a(A,e,t){if("string"==typeof A)return function(A,e){if("string"==typeof e&&""!==e||(e="utf8"),!o.isEncoding(e))throw new TypeError("Unknown encoding: "+e);const t=0|Q(A,e);let I=n(t);const r=I.write(A,e);return r!==t&&(I=I.slice(0,r)),I}(A,e);if(ArrayBuffer.isView(A))return function(A){if(Z(A,Uint8Array)){const e=new Uint8Array(A);return E(e.buffer,e.byteOffset,e.byteLength)}return s(A)}(A);if(null==A)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof A);if(Z(A,ArrayBuffer)||A&&Z(A.buffer,ArrayBuffer))return E(A,e,t);if("undefined"!=typeof SharedArrayBuffer&&(Z(A,SharedArrayBuffer)||A&&Z(A.buffer,SharedArrayBuffer)))return E(A,e,t);if("number"==typeof A)throw new TypeError('The "value" argument must not be of type number. Received type number');const I=A.valueOf&&A.valueOf();if(null!=I&&I!==A)return o.from(I,e,t);const r=function(A){if(o.isBuffer(A)){const e=0|h(A.length),t=n(e);return 0===t.length||A.copy(t,0,0,e),t}return void 0!==A.length?"number"!=typeof A.length||j(A.length)?n(0):s(A):"Buffer"===A.type&&Array.isArray(A.data)?s(A.data):void 0}(A);if(r)return r;if("undefined"!=typeof Symbol&&null!=Symbol.toPrimitive&&"function"==typeof A[Symbol.toPrimitive])return o.from(A[Symbol.toPrimitive]("string"),e,t);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof A)}function C(A){if("number"!=typeof A)throw new TypeError('"size" argument must be of type number');if(A<0)throw new RangeError('The value "'+A+'" is invalid for option "size"')}function B(A){return C(A),n(A<0?0:0|h(A))}function s(A){const e=A.length<0?0:0|h(A.length),t=n(e);for(let I=0;I<e;I+=1)t[I]=255&A[I];return t}function E(A,e,t){if(e<0||A.byteLength<e)throw new RangeError('"offset" is outside of buffer bounds');if(A.byteLength<e+(t||0))throw new RangeError('"length" is outside of buffer bounds');let I;return I=void 0===e&&void 0===t?new Uint8Array(A):void 0===t?new Uint8Array(A,e):new Uint8Array(A,e,t),Object.setPrototypeOf(I,o.prototype),I}function h(A){if(A>=g)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+g.toString(16)+" bytes");return 0|A}function Q(A,e){if(o.isBuffer(A))return A.length;if(ArrayBuffer.isView(A)||Z(A,ArrayBuffer))return A.byteLength;if("string"!=typeof A)throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof A);const t=A.length,I=arguments.length>2&&!0===arguments[2];if(!I&&0===t)return 0;let r=!1;for(;;)switch(e){case"ascii":case"latin1":case"binary":return t;case"utf8":case"utf-8":return W(A).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*t;case"hex":return t>>>1;case"base64":return P(A).length;default:if(r)return I?-1:W(A).length;e=(""+e).toLowerCase(),r=!0}}function c(A,e,t){let I=!1;if((void 0===e||e<0)&&(e=0),e>this.length)return"";if((void 0===t||t>this.length)&&Line truncated
-144
View File
@@ -1,144 +0,0 @@
/*!
* The buffer module from node.js, for the browser.
*
* @author Feross Aboukhadijeh <https://feross.org>
* @license MIT
*/
/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */
/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */
/**
* @author Matt C [me@mitt.dev]
* @copyright Crown Copyright 2019
* @license Apache-2.0
*/
/**
* @author Matt C [me@mitt.dev]
* @copyright Crown Copyright 2022
* @license Apache-2.0
*/
/**
* @author crespyl [peter@crespyl.net]
* @copyright Peter Jacobs 2021
* @license Apache-2.0
*/
/**
* @author d98762625 [d98762625@gmail.com]
* @copyright Crown Copyright 2019
* @license Apache-2.0
*/
/**
* @author n1474335 [n1474335@gmail.com]
* @author Matt C [matt@artemisbot.uk]
* @copyright Crown Copyright 2016
* @license Apache-2.0
*/
/**
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2016
* @license Apache-2.0
*/
/**
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2022
* @license Apache-2.0
*/
/**
* @author tlwr [toby@toby.codes]
* @copyright Crown Copyright 2016
* @license Apache-2.0
*/
/**
* Base64 functions.
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2016
* @license Apache-2.0
*/
/**
* Custom error type for handling Dish type errors.
* i.e. where the Dish cannot be successfully translated between types
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*/
/**
* Custom error type for handling operation input errors.
* i.e. where the operation can handle the error and print a message to the screen.
*
* @author d98762625 [d98762625@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*/
/**
* CyberChef - The Cyber Swiss Army Knife
*
* @copyright Crown Copyright 2016
* @license Apache-2.0
*
* Copyright 2016 Crown Copyright
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/**
* Decimal functions.
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*/
/**
* File signatures and extractor functions
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*
*/
/**
* File type functions
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*
*/
/**
* Stream class for parsing binary protocols.
*
* @author n1474335 [n1474335@gmail.com]
* @author tlwr [toby@toby.codes]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*
*/
/** @license zlib.js 2012 - imaya [ https://github.com/imaya/zlib.js ] The MIT License */
-2
View File
@@ -1,2 +0,0 @@
/*! For license information please see Crypto.js.LICENSE.txt */
(()=>{var t,e,r={94110:(t,e,r)=>{var i,n=r(34155),o="undefined"!=typeof self&&void 0!==self.Module?self.Module:{},a={};for(i in o)o.hasOwnProperty(i)&&(a[i]=o[i]);var s,u,h,c,f=[];h="object"==typeof window,c="function"==typeof importScripts,s="object"==typeof n&&"object"==typeof n.versions&&"string"==typeof n.versions.node,u=!h&&!s&&!c;var l,d,p,g,m,A="";s?(A=c?r(62520).dirname(A)+"/":"//",l=function(t,e){return g||(g=r(8866)),m||(m=r(62520)),t=m.normalize(t),g.readFileSync(t,e?null:"utf8")},p=function(t){var e=l(t,!0);return e.buffer||(e=new Uint8Array(e)),C(e.buffer),e},n.argv.length>1&&n.argv[1].replace(/\\/g,"/"),f=n.argv.slice(2),t.exports=o,n.on("uncaughtException",(function(t){if(!(t instanceof z))throw t})),n.on("unhandledRejection",N),o.inspect=function(){return"[Emscripten Module object]"}):u?("undefined"!=typeof read&&(l=function(t){return read(t)}),p=function(t){var e;return"function"==typeof readbuffer?new Uint8Array(readbuffer(t)):(C("object"==typeof(e=read(t,"binary"))),e)},"undefined"!=typeof scriptArgs?f=scriptArgs:"undefined"!=typeof arguments&&(f=arguments),"undefined"!=typeof print&&("undefined"==typeof console&&(console={}),console.log=print,console.warn=console.error="undefined"!=typeof printErr?printErr:print)):(h||c)&&(c?A=self.location.href:"undefined"!=typeof document&&document.currentScript&&(A=document.currentScript.src),A=0!==A.indexOf("blob:")?A.substr(0,A.lastIndexOf("/")+1):"",l=function(t){var e=new XMLHttpRequest;return e.open("GET",t,!1),e.send(null),e.responseText},c&&(p=function(t){var e=new XMLHttpRequest;return e.open("GET",t,!1),e.responseType="arraybuffer",e.send(null),new Uint8Array(e.response)}),d=function(t,e,r){var i=new XMLHttpRequest;i.open("GET",t,!0),i.responseType="arraybuffer",i.onload=function(){200==i.status||0==i.status&&i.response?e(i.response):r()},i.onerror=r,i.send(null)}),o.print||console.log.bind(console);var y,v,b=o.printErr||console.warn.bind(console);for(i in a)a.hasOwnProperty(i)&&(o[i]=a[i]);a=null,o.arguments&&(f=o.arguments),o.thisProgram&&o.thisProgram,o.quit&&o.quit,o.wasmBinary&&(y=o.wasmBinary),o.noExitRuntime,"object"!=typeof WebAssembly&&N("no native wasm support detected");var w=!1;function C(t,e){t||N("Assertion failed: "+e)}var E,B,I="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function M(t){E=t,o.HEAP8=new Int8Array(t),o.HEAP16=new Int16Array(t),o.HEAP32=new Int32Array(t),o.HEAPU8=B=new Uint8Array(t),o.HEAPU16=new Uint16Array(t),o.HEAPU32=new Uint32Array(t),o.HEAPF32=new Float32Array(t),o.HEAPF64=new Float64Array(t)}o.INITIAL_MEMORY;var S,k=[],_=[],T=[],R=0,x=null,Q=null;function N(t){throw o.onAbort&&o.onAbort(t),b(t+=""),w=!0,t="abort("+t+"). Build with -s ASSERTIONS=1 for more info.",new WebAssembly.RuntimeError(t)}o.preloadedImages={},o.preloadedAudios={};var D="data:application/octet-stream;base64,";function U(t){return t.startsWith(D)}function L(t){return t.startsWith("file://")}var F,O="argon2.wasm";function P(t){try{if(t==O&&y)return new Uint8Array(y);if(p)return p(t);throw"both async and sync fetching of the wasm failed"}catch(t){N(t)}}function H(t){for(;t.length>0;){var e=t.shift();if("function"!=typeof e){var r=e.func;"number"==typeof r?void 0===e.arg?S.get(r)():S.get(r)(e.arg):r(void 0===e.arg?null:e.arg)}else e(o)}}function j(t){try{return v.grow(t-E.byteLength+65535>>>16),M(v.buffer),1}catch(t){}}U(O)||(F=O,O=o.locateFile?o.locateFile(F,A):A+F);var G,K={a:function(t,e,r){B.copyWithin(t,e,e+r)},b:function(t){var e,r=B.length,i=2147418112;if((t>>>=0)>i)return!1;for(var n=1;n<=4;n*=2){var o=r*(1+.2/n);if(o=Math.min(o,t+100663296),j(Math.min(i,((e=Math.max(t,o))%65536>0&&(e+=65536-e%65536),e))))return!0}return!1}},V=(function(){var t={a:K};function e(t,e){var r,i=t.exports;o.asm=i,M((v=o.asm.c).buffer),S=o.asm.k,r=o.asm.d,_.unshift(r),function(t){if(R--,o.monitorRunDependencies&&o.monitorRunDependencies(R),0==R&&(null!==x&&(clearInterval(x),x=null),Q)){var e=Q;Q=null,e()}}()}function r(t){e(t.instance)}function i(e){return function(){if(!y&&(h||c)){if("function"==typeof fetch&&!L(O))return fetch(O,{credentials:"same-origin"}).then((function(t){if(!t.ok)throw"failed to load wasm binary file at '"+O+"'";return t.arrayBuffer()})).catch((function(){return P(O)}));if(d)return new Promise((function(t,e){d(O,(function(e){t(new Uint8Array(e))}),e)}))}return Promise.resolve().then((function(){return P(O)}))}().then((function(e){return WebAssembly.instantiate(e,t)})).then(e,(function(t){b("failed to asynchronously prepare wasm: "+t),N(t)}))}if(R++,o.monitorRunDependencies&&o.monitorRunDependencies(R),o.instantiateWasm)try{return o.instantiateWasm(t,e)}catch(t){return b("Module.instantiateWasm callback failed with error: "+t),!1}y||"function"!=typeof WebAssembly.instantiateStreaming||U(O)||L(O)||"function"!=typeof fetch?i(r):fetch(O,{credentials:"same-origin"}).then((function(e){return WebAssembly.instantiateStreaming(e,t).then(r,(function(t){return b("wasm streaming compile failed: "+t),b("falling back to ArrayBuLine truncated
-285
View File
@@ -1,285 +0,0 @@
/*!
* The buffer module from node.js, for the browser.
*
* @author Feross Aboukhadijeh <https://feross.org>
* @license MIT
*/
/*! https://mths.be/punycode v1.3.2 by @mathias */
/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */
/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */
/*! safe-buffer. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */
/**
* @author Tan Zhen Yong [tzy@beyondthesprawl.com]
* @copyright Crown Copyright 2019
* @license Apache-2.0
*/
/**
* @author brun0ne [brunonblok@gmail.com]
* @copyright Crown Copyright 2022
* @license Apache-2.0
*/
/**
* @author d98762625 [d98762625@gmail.com]
* @copyright Crown Copyright 2019
* @license Apache-2.0
*/
/**
* @author gchq77703 []
* @copyright Crown Copyright 2018
* @license Apache-2.0
*/
/**
* @author h345983745
* @copyright Crown Copyright 2019
* @license Apache-2.0
*/
/**
* @author mikecat
* @copyright Crown Copyright 2022
* @license Apache-2.0
*/
/**
* @author mikecat
* @copyright Crown Copyright 2023
* @license Apache-2.0
*/
/**
* @author mshwed [m@ttshwed.com]
* @copyright Crown Copyright 2019
* @license Apache-2.0
*/
/**
* @author n1073645 [n1073645@gmail.com]
* @copyright Crown Copyright 2020
* @license Apache-2.0
*/
/**
* @author n1474335 [n1474335@gmail.com]
* @author Matt C [matt@artemisbot.uk]
* @copyright Crown Copyright 2016
* @license Apache-2.0
*/
/**
* @author n1474335 [n1474335@gmail.com]
* @author john19696 [john19696@protonmail.com]
* @copyright Crown Copyright 2016
* @license Apache-2.0
*/
/**
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2016
* @license Apache-2.0
*/
/**
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2019
* @license Apache-2.0
*/
/**
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2021
* @license Apache-2.0
*
* HASSH created by Salesforce
* Ben Reardon (@benreardon)
* Adel Karimi (@0x4d31)
* and the JA3 crew:
* John B. Althouse
* Jeff Atkinson
* Josh Atkins
*
* Algorithm released under the BSD-3-clause licence
*/
/**
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2021
* @license Apache-2.0
*
* HASSH created by Salesforce
* Ben Reardon (@benreardon)
* Adel Karimi (@0x4d31)
* and the JA3 crew:
* John B. Althouse
* Jeff Atkinson
* Josh Atkins
*
* Algorithm released under the BSD-3-clause licence
*/
/**
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2021
* @license Apache-2.0
*
* JA3 created by Salesforce
* John B. Althouse
* Jeff Atkinson
* Josh Atkins
*
* Algorithm released under the BSD-3-clause licence
*/
/**
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2021
* @license Apache-2.0
*
* JA3S created by Salesforce
* John B. Althouse
* Jeff Atkinson
* Josh Atkins
*
* Algorithm released under the BSD-3-clause licence
*/
/**
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2022
* @license Apache-2.0
*/
/**
* Base64 functions.
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2016
* @license Apache-2.0
*/
/**
* Custom error type for handling Dish type errors.
* i.e. where the Dish cannot be successfully translated between types
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*/
/**
* Custom error type for handling operation input errors.
* i.e. where the operation can handle the error and print a message to the screen.
*
* @author d98762625 [d98762625@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*/
/**
* CyberChef - The Cyber Swiss Army Knife
*
* @copyright Crown Copyright 2016
* @license Apache-2.0
*
* Copyright 2016 Crown Copyright
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/**
* Decimal functions.
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*/
/**
* File signatures and extractor functions
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*
*/
/**
* File type functions
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*
*/
/**
* Hashing resources.
*
* @author n1474335 [n1474335@gmail.com]
*
* @copyright Crown Copyright 2016
* @license Apache-2.0
*/
/**
* JWT resources
*
* @author mt3571 [mt3571@protonmail.com]
* @copyright Crown Copyright 2020
* @license Apache-2.0
*/
/**
* Stream class for parsing binary protocols.
*
* @author n1474335 [n1474335@gmail.com]
* @author tlwr [toby@toby.codes]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*
*/
/**
* Various delimiters
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*/
/**
* [js-crc]{@link https://github.com/emn178/js-crc}
*
* @namespace crc
* @version 0.2.0
* @author Chen, Yi-Cyuan [emn178@gmail.com]
* @copyright Chen, Yi-Cyuan 2015-2017
* @license MIT
*/
/**
* [js-sha3]{@link https://github.com/emn178/js-sha3}
*
* @version 0.8.0
* @author Chen, Yi-Cyuan [emn178@gmail.com]
* @copyright Chen, Yi-Cyuan 2015-2018
* @license MIT
*/
-2
View File
@@ -1,2 +0,0 @@
/*! For license information please see Diff.js.LICENSE.txt */
(()=>{var e={79742:(e,t)=>{"use strict";t.byteLength=function(e){var t=s(e),r=t[0],n=t[1];return 3*(r+n)/4-n},t.toByteArray=function(e){var t,r,o=s(e),a=o[0],u=o[1],c=new i(function(e,t,r){return 3*(t+r)/4-r}(0,a,u)),l=0,f=u>0?a-4:a;for(r=0;r<f;r+=4)t=n[e.charCodeAt(r)]<<18|n[e.charCodeAt(r+1)]<<12|n[e.charCodeAt(r+2)]<<6|n[e.charCodeAt(r+3)],c[l++]=t>>16&255,c[l++]=t>>8&255,c[l++]=255&t;return 2===u&&(t=n[e.charCodeAt(r)]<<2|n[e.charCodeAt(r+1)]>>4,c[l++]=255&t),1===u&&(t=n[e.charCodeAt(r)]<<10|n[e.charCodeAt(r+1)]<<4|n[e.charCodeAt(r+2)]>>2,c[l++]=t>>8&255,c[l++]=255&t),c},t.fromByteArray=function(e){for(var t,n=e.length,i=n%3,o=[],a=16383,u=0,s=n-i;u<s;u+=a)o.push(c(e,u,u+a>s?s:u+a));return 1===i?(t=e[n-1],o.push(r[t>>2]+r[t<<4&63]+"==")):2===i&&(t=(e[n-2]<<8)+e[n-1],o.push(r[t>>10]+r[t>>4&63]+r[t<<2&63]+"=")),o.join("")};for(var r=[],n=[],i="undefined"!=typeof Uint8Array?Uint8Array:Array,o="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",a=0,u=o.length;a<u;++a)r[a]=o[a],n[o.charCodeAt(a)]=a;function s(e){var t=e.length;if(t%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var r=e.indexOf("=");return-1===r&&(r=t),[r,r===t?0:4-r%4]}function c(e,t,n){for(var i,o,a=[],u=t;u<n;u+=3)i=(e[u]<<16&16711680)+(e[u+1]<<8&65280)+(255&e[u+2]),a.push(r[(o=i)>>18&63]+r[o>>12&63]+r[o>>6&63]+r[63&o]);return a.join("")}n["-".charCodeAt(0)]=62,n["_".charCodeAt(0)]=63},48764:(e,t,r)=>{"use strict";const n=r(79742),i=r(80645),o="function"==typeof Symbol&&"function"==typeof Symbol.for?Symbol.for("nodejs.util.inspect.custom"):null;t.Buffer=s,t.INSPECT_MAX_BYTES=50;const a=2147483647;function u(e){if(e>a)throw new RangeError('The value "'+e+'" is invalid for option "size"');const t=new Uint8Array(e);return Object.setPrototypeOf(t,s.prototype),t}function s(e,t,r){if("number"==typeof e){if("string"==typeof t)throw new TypeError('The "string" argument must be of type string. Received type number');return f(e)}return c(e,t,r)}function c(e,t,r){if("string"==typeof e)return function(e,t){if("string"==typeof t&&""!==t||(t="utf8"),!s.isEncoding(t))throw new TypeError("Unknown encoding: "+t);const r=0|m(e,t);let n=u(r);const i=n.write(e,t);return i!==r&&(n=n.slice(0,i)),n}(e,t);if(ArrayBuffer.isView(e))return function(e){if(q(e,Uint8Array)){const t=new Uint8Array(e);return h(t.buffer,t.byteOffset,t.byteLength)}return p(e)}(e);if(null==e)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e);if(q(e,ArrayBuffer)||e&&q(e.buffer,ArrayBuffer))return h(e,t,r);if("undefined"!=typeof SharedArrayBuffer&&(q(e,SharedArrayBuffer)||e&&q(e.buffer,SharedArrayBuffer)))return h(e,t,r);if("number"==typeof e)throw new TypeError('The "value" argument must not be of type number. Received type number');const n=e.valueOf&&e.valueOf();if(null!=n&&n!==e)return s.from(n,t,r);const i=function(e){if(s.isBuffer(e)){const t=0|d(e.length),r=u(t);return 0===r.length||e.copy(r,0,0,t),r}return void 0!==e.length?"number"!=typeof e.length||Z(e.length)?u(0):p(e):"Buffer"===e.type&&Array.isArray(e.data)?p(e.data):void 0}(e);if(i)return i;if("undefined"!=typeof Symbol&&null!=Symbol.toPrimitive&&"function"==typeof e[Symbol.toPrimitive])return s.from(e[Symbol.toPrimitive]("string"),t,r);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e)}function l(e){if("number"!=typeof e)throw new TypeError('"size" argument must be of type number');if(e<0)throw new RangeError('The value "'+e+'" is invalid for option "size"')}function f(e){return l(e),u(e<0?0:0|d(e))}function p(e){const t=e.length<0?0:0|d(e.length),r=u(t);for(let n=0;n<t;n+=1)r[n]=255&e[n];return r}function h(e,t,r){if(t<0||e.byteLength<t)throw new RangeError('"offset" is outside of buffer bounds');if(e.byteLength<t+(r||0))throw new RangeError('"length" is outside of buffer bounds');let n;return n=void 0===t&&void 0===r?new Uint8Array(e):void 0===r?new Uint8Array(e,t):new Uint8Array(e,t,r),Object.setPrototypeOf(n,s.prototype),n}function d(e){if(e>=a)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+a.toString(16)+" bytes");return 0|e}function m(e,t){if(s.isBuffer(e))return e.length;if(ArrayBuffer.isView(e)||q(e,ArrayBuffer))return e.byteLength;if("string"!=typeof e)throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof e);const r=e.length,n=arguments.length>2&&!0===arguments[2];if(!n&&0===r)return 0;let i=!1;for(;;)switch(t){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":return V(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return Y(e).length;default:if(i)return n?-1:V(e).length;t=(""+t).toLowerCase(),i=!0}}function v(e,t,r){let n=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<Line truncated
-112
View File
@@ -1,112 +0,0 @@
/*!
* The buffer module from node.js, for the browser.
*
* @author Feross Aboukhadijeh <https://feross.org>
* @license MIT
*/
/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */
/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */
/**
* @author d98762625 [d98762625@gmail.com]
* @copyright Crown Copyright 2019
* @license Apache-2.0
*/
/**
* @author n1474335 [n1474335@gmail.com]
* @author Matt C [matt@artemisbot.uk]
* @copyright Crown Copyright 2016
* @license Apache-2.0
*/
/**
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2016
* @license Apache-2.0
*/
/**
* Base64 functions.
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2016
* @license Apache-2.0
*/
/**
* Custom error type for handling Dish type errors.
* i.e. where the Dish cannot be successfully translated between types
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*/
/**
* Custom error type for handling operation input errors.
* i.e. where the operation can handle the error and print a message to the screen.
*
* @author d98762625 [d98762625@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*/
/**
* CyberChef - The Cyber Swiss Army Knife
*
* @copyright Crown Copyright 2016
* @license Apache-2.0
*
* Copyright 2016 Crown Copyright
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/**
* Decimal functions.
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*/
/**
* File signatures and extractor functions
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*
*/
/**
* File type functions
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*
*/
/**
* Stream class for parsing binary protocols.
*
* @author n1474335 [n1474335@gmail.com]
* @author tlwr [toby@toby.codes]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*
*/
-2
View File
@@ -1,2 +0,0 @@
/*! For license information please see Encodings.js.LICENSE.txt */
(()=>{var t={79742:(t,e)=>{"use strict";e.byteLength=function(t){var e=s(t),r=e[0],n=e[1];return 3*(r+n)/4-n},e.toByteArray=function(t){var e,r,i=s(t),a=i[0],l=i[1],c=new o(function(t,e,r){return 3*(e+r)/4-r}(0,a,l)),h=0,f=l>0?a-4:a;for(r=0;r<f;r+=4)e=n[t.charCodeAt(r)]<<18|n[t.charCodeAt(r+1)]<<12|n[t.charCodeAt(r+2)]<<6|n[t.charCodeAt(r+3)],c[h++]=e>>16&255,c[h++]=e>>8&255,c[h++]=255&e;return 2===l&&(e=n[t.charCodeAt(r)]<<2|n[t.charCodeAt(r+1)]>>4,c[h++]=255&e),1===l&&(e=n[t.charCodeAt(r)]<<10|n[t.charCodeAt(r+1)]<<4|n[t.charCodeAt(r+2)]>>2,c[h++]=e>>8&255,c[h++]=255&e),c},e.fromByteArray=function(t){for(var e,n=t.length,o=n%3,i=[],a=16383,l=0,s=n-o;l<s;l+=a)i.push(c(t,l,l+a>s?s:l+a));return 1===o?(e=t[n-1],i.push(r[e>>2]+r[e<<4&63]+"==")):2===o&&(e=(t[n-2]<<8)+t[n-1],i.push(r[e>>10]+r[e>>4&63]+r[e<<2&63]+"=")),i.join("")};for(var r=[],n=[],o="undefined"!=typeof Uint8Array?Uint8Array:Array,i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",a=0,l=i.length;a<l;++a)r[a]=i[a],n[i.charCodeAt(a)]=a;function s(t){var e=t.length;if(e%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var r=t.indexOf("=");return-1===r&&(r=e),[r,r===e?0:4-r%4]}function c(t,e,n){for(var o,i,a=[],l=e;l<n;l+=3)o=(t[l]<<16&16711680)+(t[l+1]<<8&65280)+(255&t[l+2]),a.push(r[(i=o)>>18&63]+r[i>>12&63]+r[i>>6&63]+r[63&i]);return a.join("")}n["-".charCodeAt(0)]=62,n["_".charCodeAt(0)]=63},48764:(t,e,r)=>{"use strict";const n=r(79742),o=r(80645),i="function"==typeof Symbol&&"function"==typeof Symbol.for?Symbol.for("nodejs.util.inspect.custom"):null;e.Buffer=s,e.INSPECT_MAX_BYTES=50;const a=2147483647;function l(t){if(t>a)throw new RangeError('The value "'+t+'" is invalid for option "size"');const e=new Uint8Array(t);return Object.setPrototypeOf(e,s.prototype),e}function s(t,e,r){if("number"==typeof t){if("string"==typeof e)throw new TypeError('The "string" argument must be of type string. Received type number');return f(t)}return c(t,e,r)}function c(t,e,r){if("string"==typeof t)return function(t,e){if("string"==typeof e&&""!==e||(e="utf8"),!s.isEncoding(e))throw new TypeError("Unknown encoding: "+e);const r=0|g(t,e);let n=l(r);const o=n.write(t,e);return o!==r&&(n=n.slice(0,o)),n}(t,e);if(ArrayBuffer.isView(t))return function(t){if(Y(t,Uint8Array)){const e=new Uint8Array(t);return p(e.buffer,e.byteOffset,e.byteLength)}return u(t)}(t);if(null==t)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof t);if(Y(t,ArrayBuffer)||t&&Y(t.buffer,ArrayBuffer))return p(t,e,r);if("undefined"!=typeof SharedArrayBuffer&&(Y(t,SharedArrayBuffer)||t&&Y(t.buffer,SharedArrayBuffer)))return p(t,e,r);if("number"==typeof t)throw new TypeError('The "value" argument must not be of type number. Received type number');const n=t.valueOf&&t.valueOf();if(null!=n&&n!==t)return s.from(n,e,r);const o=function(t){if(s.isBuffer(t)){const e=0|d(t.length),r=l(e);return 0===r.length||t.copy(r,0,0,e),r}return void 0!==t.length?"number"!=typeof t.length||K(t.length)?l(0):u(t):"Buffer"===t.type&&Array.isArray(t.data)?u(t.data):void 0}(t);if(o)return o;if("undefined"!=typeof Symbol&&null!=Symbol.toPrimitive&&"function"==typeof t[Symbol.toPrimitive])return s.from(t[Symbol.toPrimitive]("string"),e,r);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof t)}function h(t){if("number"!=typeof t)throw new TypeError('"size" argument must be of type number');if(t<0)throw new RangeError('The value "'+t+'" is invalid for option "size"')}function f(t){return h(t),l(t<0?0:0|d(t))}function u(t){const e=t.length<0?0:0|d(t.length),r=l(e);for(let n=0;n<e;n+=1)r[n]=255&t[n];return r}function p(t,e,r){if(e<0||t.byteLength<e)throw new RangeError('"offset" is outside of buffer bounds');if(t.byteLength<e+(r||0))throw new RangeError('"length" is outside of buffer bounds');let n;return n=void 0===e&&void 0===r?new Uint8Array(t):void 0===r?new Uint8Array(t,e):new Uint8Array(t,e,r),Object.setPrototypeOf(n,s.prototype),n}function d(t){if(t>=a)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+a.toString(16)+" bytes");return 0|t}function g(t,e){if(s.isBuffer(t))return t.length;if(ArrayBuffer.isView(t)||Y(t,ArrayBuffer))return t.byteLength;if("string"!=typeof t)throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof t);const r=t.length,n=arguments.length>2&&!0===arguments[2];if(!n&&0===r)return 0;let o=!1;for(;;)switch(e){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":return q(t).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return W(t).length;default:if(o)return n?-1:q(t).length;e=(""+e).toLowerCase(),o=!0}}function A(t,e,r){let n=!1;if((void 0===e||e<0)&&(e=0),e>this.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<Line truncated
-172
View File
@@ -1,172 +0,0 @@
/*!
* The buffer module from node.js, for the browser.
*
* @author Feross Aboukhadijeh <https://feross.org>
* @license MIT
*/
/*! *****************************************************************************
Copyright (C) Microsoft. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
this file except in compliance with the License. You may obtain a copy of the
License at http://www.apache.org/licenses/LICENSE-2.0
THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
MERCHANTABLITY OR NON-INFRINGEMENT.
See the Apache Version 2.0 License for specific language governing permissions
and limitations under the License.
***************************************************************************** */
/*! cptable.js (C) 2013-present SheetJS -- http://sheetjs.com */
/*! cputils.js (C) 2013-present SheetJS -- http://sheetjs.com */
/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */
/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */
/**
* @author Cynser
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*/
/**
* @author Matthieu [m@tthieu.xyz]
* @copyright Crown Copyright 2019
* @license Apache-2.0
*/
/**
* @author bwhitn [brian.m.whitney@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*/
/**
* @author d98762625 [d98762625@gmail.com]
* @copyright Crown Copyright 2019
* @license Apache-2.0
*/
/**
* @author n1474335 [n1474335@gmail.com]
* @author Matt C [matt@artemisbot.uk]
* @copyright Crown Copyright 2016
* @license Apache-2.0
*/
/**
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2016
* @license Apache-2.0
*/
/**
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2022
* @license Apache-2.0
*/
/**
* Base64 functions.
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2016
* @license Apache-2.0
*/
/**
* Character encoding resources.
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2016
* @license Apache-2.0
*/
/**
* Custom error type for handling Dish type errors.
* i.e. where the Dish cannot be successfully translated between types
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*/
/**
* Custom error type for handling operation input errors.
* i.e. where the operation can handle the error and print a message to the screen.
*
* @author d98762625 [d98762625@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*/
/**
* CyberChef - The Cyber Swiss Army Knife
*
* @copyright Crown Copyright 2016
* @license Apache-2.0
*
* Copyright 2016 Crown Copyright
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/**
* Decimal functions.
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*/
/**
* File signatures and extractor functions
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*
*/
/**
* File type functions
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*
*/
/**
* Stream class for parsing binary protocols.
*
* @author n1474335 [n1474335@gmail.com]
* @author tlwr [toby@toby.codes]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*
*/
/**
* Unicode Normalisation Forms
*
* @author Matthieu [m@tthieu.xyz]
* @copyright Crown Copyright 2019
* @license Apache-2.0
*/
-2
View File
@@ -1,2 +0,0 @@
/*! For license information please see Hashing.js.LICENSE.txt */
(()=>{var t={39809:(t,e,r)=>{"use strict";const i=e;i.bignum=r(4590),i.define=r(22500).define,i.base=r(71979),i.constants=r(36826),i.decoders=r(78307),i.encoders=r(56579)},22500:(t,e,r)=>{"use strict";const i=r(56579),n=r(78307),o=r(35717);function s(t,e){this.name=t,this.body=e,this.decoders={},this.encoders={}}e.define=function(t,e){return new s(t,e)},s.prototype._createNamed=function(t){const e=this.name;function r(t){this._initNamed(t,e)}return o(r,t),r.prototype._initNamed=function(e,r){t.call(this,e,r)},new r(this)},s.prototype._getDecoder=function(t){return t=t||"der",this.decoders.hasOwnProperty(t)||(this.decoders[t]=this._createNamed(n[t])),this.decoders[t]},s.prototype.decode=function(t,e,r){return this._getDecoder(e).decode(t,r)},s.prototype._getEncoder=function(t){return t=t||"der",this.encoders.hasOwnProperty(t)||(this.encoders[t]=this._createNamed(i[t])),this.encoders[t]},s.prototype.encode=function(t,e,r){return this._getEncoder(e).encode(t,r)}},36625:(t,e,r)=>{"use strict";const i=r(35717),n=r(98465).b,o=r(2399).Buffer;function s(t,e){n.call(this,e),o.isBuffer(t)?(this.base=t,this.offset=0,this.length=t.length):this.error("Input not Buffer")}function a(t,e){if(Array.isArray(t))this.length=0,this.value=t.map((function(t){return a.isEncoderBuffer(t)||(t=new a(t,e)),this.length+=t.length,t}),this);else if("number"==typeof t){if(!(0<=t&&t<=255))return e.error("non-byte EncoderBuffer value");this.value=t,this.length=1}else if("string"==typeof t)this.value=t,this.length=o.byteLength(t);else{if(!o.isBuffer(t))return e.error("Unsupported type: "+typeof t);this.value=t,this.length=t.length}}i(s,n),e.C=s,s.isDecoderBuffer=function(t){return t instanceof s||"object"==typeof t&&o.isBuffer(t.base)&&"DecoderBuffer"===t.constructor.name&&"number"==typeof t.offset&&"number"==typeof t.length&&"function"==typeof t.save&&"function"==typeof t.restore&&"function"==typeof t.isEmpty&&"function"==typeof t.readUInt8&&"function"==typeof t.skip&&"function"==typeof t.raw},s.prototype.save=function(){return{offset:this.offset,reporter:n.prototype.save.call(this)}},s.prototype.restore=function(t){const e=new s(this.base);return e.offset=t.offset,e.length=this.offset,this.offset=t.offset,n.prototype.restore.call(this,t.reporter),e},s.prototype.isEmpty=function(){return this.offset===this.length},s.prototype.readUInt8=function(t){return this.offset+1<=this.length?this.base.readUInt8(this.offset++,!0):this.error(t||"DecoderBuffer overrun")},s.prototype.skip=function(t,e){if(!(this.offset+t<=this.length))return this.error(e||"DecoderBuffer overrun");const r=new s(this.base);return r._reporterState=this._reporterState,r.offset=this.offset,r.length=this.offset+t,this.offset+=t,r},s.prototype.raw=function(t){return this.base.slice(t?t.offset:this.offset,this.length)},e.R=a,a.isEncoderBuffer=function(t){return t instanceof a||"object"==typeof t&&"EncoderBuffer"===t.constructor.name&&"number"==typeof t.length&&"function"==typeof t.join},a.prototype.join=function(t,e){return t||(t=o.alloc(this.length)),e||(e=0),0===this.length||(Array.isArray(this.value)?this.value.forEach((function(r){r.join(t,e),e+=r.length})):("number"==typeof this.value?t[e]=this.value:"string"==typeof this.value?t.write(this.value,e):o.isBuffer(this.value)&&this.value.copy(t,e),e+=this.length)),t}},71979:(t,e,r)=>{"use strict";const i=e;i.Reporter=r(98465).b,i.DecoderBuffer=r(36625).C,i.EncoderBuffer=r(36625).R,i.Node=r(41949)},41949:(t,e,r)=>{"use strict";const i=r(98465).b,n=r(36625).R,o=r(36625).C,s=r(79746),a=["seq","seqof","set","setof","objid","bool","gentime","utctime","null_","enum","int","objDesc","bitstr","bmpstr","charstr","genstr","graphstr","ia5str","iso646str","numstr","octstr","printstr","t61str","unistr","utf8str","videostr"],h=["key","obj","use","optional","explicit","implicit","def","choice","any","contains"].concat(a);function u(t,e,r){const i={};this._baseState=i,i.name=r,i.enc=t,i.parent=e||null,i.children=null,i.tag=null,i.args=null,i.reverseArgs=null,i.choice=null,i.optional=!1,i.any=!1,i.obj=!1,i.use=null,i.useDecoder=null,i.key=null,i.default=null,i.explicit=null,i.implicit=null,i.contains=null,i.parent||(i.children=[],this._wrap())}t.exports=u;const f=["enc","parent","children","tag","args","reverseArgs","choice","optional","any","obj","use","alteredUse","key","default","explicit","implicit","contains"];u.prototype.clone=function(){const t=this._baseState,e={};f.forEach((function(r){e[r]=t[r]}));const r=new this.constructor(e.parent);return r._baseState=e,r},u.prototype._wrap=function(){const t=this._baseState;h.forEach((function(e){this[e]=function(){const r=new this.constructor(this);return t.children.push(r),r[e].apply(r,arguments)}}),this)},u.prototype._init=function(t){const e=this._baseState;s(null===e.parent),t.call(this),e.children=e.children.filter((function(t){return t._baseState.parent===this}),this),s.equal(e.children.length,1,"Root node can have only one child")},u.prototype._useArgs=function(t){const e=this._baseState,Line truncated
-138
View File
@@ -1,138 +0,0 @@
/*!
* The buffer module from node.js, for the browser.
*
* @author Feross Aboukhadijeh <https://feross.org>
* @license MIT
*/
/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */
/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */
/*! safe-buffer. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */
/**
* @author d98762625 [d98762625@gmail.com]
* @copyright Crown Copyright 2019
* @license Apache-2.0
*/
/**
* @author h345983745
* @copyright Crown Copyright 2019
* @license Apache-2.0
*/
/**
* @author j433866 [j433866@gmail.com]
* @copyright Crown Copyright 2019
* @license Apache-2.0
*/
/**
* @author mshwed [m@ttshwed.com]
* @copyright Crown Copyright 2019
* @license Apache-2.0
*/
/**
* @author n1474335 [n1474335@gmail.com]
* @author Matt C [matt@artemisbot.uk]
* @copyright Crown Copyright 2016
* @license Apache-2.0
*/
/**
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2016
* @license Apache-2.0
*/
/**
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2019
* @license Apache-2.0
*/
/**
* Base64 functions.
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2016
* @license Apache-2.0
*/
/**
* Custom error type for handling Dish type errors.
* i.e. where the Dish cannot be successfully translated between types
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*/
/**
* Custom error type for handling operation input errors.
* i.e. where the operation can handle the error and print a message to the screen.
*
* @author d98762625 [d98762625@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*/
/**
* CyberChef - The Cyber Swiss Army Knife
*
* @copyright Crown Copyright 2016
* @license Apache-2.0
*
* Copyright 2016 Crown Copyright
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/**
* Decimal functions.
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*/
/**
* File signatures and extractor functions
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*
*/
/**
* File type functions
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*
*/
/**
* Stream class for parsing binary protocols.
*
* @author n1474335 [n1474335@gmail.com]
* @author tlwr [toby@toby.codes]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*
*/
-2
View File
@@ -1,2 +0,0 @@
/*! For license information please see Image.js.LICENSE.txt */
(()=>{var __webpack_modules__={63443:(t,e,r)=>{"use strict";var n=r(64836);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var i=n(r(38416)),a=n(r(70784)),o=r(49118),s="image/bmp",u="image/x-ms-bmp",l=function(t){return e=a.default.decode(t),(0,o.scan)({bitmap:e},0,0,e.width,e.height,(function(t,r,n){var i=this.bitmap.data[n+0],a=this.bitmap.data[n+1],o=this.bitmap.data[n+2],s=this.bitmap.data[n+3];this.bitmap.data[n+0]=s,this.bitmap.data[n+1]=o,this.bitmap.data[n+2]=a,this.bitmap.data[n+3]=e.is_with_alpha?i:255})).bitmap;var e},c=function(t){return a.default.encode(function(t){return(0,o.scan)(t,0,0,t.bitmap.width,t.bitmap.height,(function(t,e,r){var n=this.bitmap.data[r+0],i=this.bitmap.data[r+1],a=this.bitmap.data[r+2],o=this.bitmap.data[r+3];this.bitmap.data[r+0]=o,this.bitmap.data[r+1]=a,this.bitmap.data[r+2]=i,this.bitmap.data[r+3]=n})).bitmap}(t)).data};e.default=function(){var t,e;return{mime:(0,i.default)({},s,["bmp"]),constants:{MIME_BMP:s,MIME_X_MS_BMP:u},decoders:(t={},(0,i.default)(t,s,l),(0,i.default)(t,u,l),t),encoders:(e={},(0,i.default)(e,s,c),(0,i.default)(e,u,c),e)}},t.exports=e.default},89407:(t,e)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.srcOver=function(t,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1;t.a*=r;var n=e.a+t.a-e.a*t.a;return{r:(t.r*t.a+e.r*e.a*(1-t.a))/n,g:(t.g*t.a+e.g*e.a*(1-t.a))/n,b:(t.b*t.a+e.b*e.a*(1-t.a))/n,a:n}},e.dstOver=function(t,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1;t.a*=r;var n=e.a+t.a-e.a*t.a;return{r:(e.r*e.a+t.r*t.a*(1-e.a))/n,g:(e.g*e.a+t.g*t.a*(1-e.a))/n,b:(e.b*e.a+t.b*t.a*(1-e.a))/n,a:n}},e.multiply=function(t,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1;t.a*=r;var n=e.a+t.a-e.a*t.a,i=t.r*t.a,a=t.g*t.a,o=t.b*t.a,s=e.r*e.a,u=e.g*e.a,l=e.b*e.a;return{r:(i*s+i*(1-e.a)+s*(1-t.a))/n,g:(a*u+a*(1-e.a)+u*(1-t.a))/n,b:(o*l+o*(1-e.a)+l*(1-t.a))/n,a:n}},e.add=function(t,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1;t.a*=r;var n=e.a+t.a-e.a*t.a,i=t.r*t.a,a=t.g*t.a,o=t.b*t.a;return{r:(i+e.r*e.a)/n,g:(a+e.g*e.a)/n,b:(o+e.b*e.a)/n,a:n}},e.screen=function(t,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1;t.a*=r;var n=e.a+t.a-e.a*t.a,i=t.r*t.a,a=t.g*t.a,o=t.b*t.a,s=e.r*e.a,u=e.g*e.a,l=e.b*e.a;return{r:(i*e.a+s*t.a-i*s+i*(1-e.a)+s*(1-t.a))/n,g:(a*e.a+u*t.a-a*u+a*(1-e.a)+u*(1-t.a))/n,b:(o*e.a+l*t.a-o*l+o*(1-e.a)+l*(1-t.a))/n,a:n}},e.overlay=function(t,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1;t.a*=r;var n=e.a+t.a-e.a*t.a,i=t.r*t.a,a=t.g*t.a,o=t.b*t.a,s=e.r*e.a,u=e.g*e.a,l=e.b*e.a;return{r:(2*s<=e.a?2*i*s+i*(1-e.a)+s*(1-t.a):i*(1+e.a)+s*(1+t.a)-2*s*i-e.a*t.a)/n,g:(2*u<=e.a?2*a*u+a*(1-e.a)+u*(1-t.a):a*(1+e.a)+u*(1+t.a)-2*u*a-e.a*t.a)/n,b:(2*l<=e.a?2*o*l+o*(1-e.a)+l*(1-t.a):o*(1+e.a)+l*(1+t.a)-2*l*o-e.a*t.a)/n,a:n}},e.darken=function(t,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1;t.a*=r;var n=e.a+t.a-e.a*t.a,i=t.r*t.a,a=t.g*t.a,o=t.b*t.a,s=e.r*e.a,u=e.g*e.a,l=e.b*e.a;return{r:(Math.min(i*e.a,s*t.a)+i*(1-e.a)+s*(1-t.a))/n,g:(Math.min(a*e.a,u*t.a)+a*(1-e.a)+u*(1-t.a))/n,b:(Math.min(o*e.a,l*t.a)+o*(1-e.a)+l*(1-t.a))/n,a:n}},e.lighten=function(t,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1;t.a*=r;var n=e.a+t.a-e.a*t.a,i=t.r*t.a,a=t.g*t.a,o=t.b*t.a,s=e.r*e.a,u=e.g*e.a,l=e.b*e.a;return{r:(Math.max(i*e.a,s*t.a)+i*(1-e.a)+s*(1-t.a))/n,g:(Math.max(a*e.a,u*t.a)+a*(1-e.a)+u*(1-t.a))/n,b:(Math.max(o*e.a,l*t.a)+o*(1-e.a)+l*(1-t.a))/n,a:n}},e.hardLight=function(t,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1;t.a*=r;var n=e.a+t.a-e.a*t.a,i=t.r*t.a,a=t.g*t.a,o=t.b*t.a,s=e.r*e.a,u=e.g*e.a,l=e.b*e.a;return{r:(2*i<=t.a?2*i*s+i*(1-e.a)+s*(1-t.a):i*(1+e.a)+s*(1+t.a)-2*s*i-e.a*t.a)/n,g:(2*a<=t.a?2*a*u+a*(1-e.a)+u*(1-t.a):a*(1+e.a)+u*(1+t.a)-2*u*a-e.a*t.a)/n,b:(2*o<=t.a?2*o*l+o*(1-e.a)+l*(1-t.a):o*(1+e.a)+l*(1+t.a)-2*l*o-e.a*t.a)/n,a:n}},e.difference=function(t,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1;t.a*=r;var n=e.a+t.a-e.a*t.a,i=t.r*t.a,a=t.g*t.a,o=t.b*t.a,s=e.r*e.a,u=e.g*e.a,l=e.b*e.a;return{r:(i+s-2*Math.min(i*e.a,s*t.a))/n,g:(a+u-2*Math.min(a*e.a,u*t.a))/n,b:(o+l-2*Math.min(o*e.a,l*t.a))/n,a:n}},e.exclusion=function(t,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1;t.a*=r;var n=e.a+t.a-e.a*t.a,i=t.r*t.a,a=t.g*t.a,o=t.b*t.a,s=e.r*e.a,u=e.g*e.a,l=e.b*e.a;return{r:(i*e.a+s*t.a-2*i*s+i*(1-e.a)+s*(1-t.a))/n,g:(a*e.a+u*t.a-2*a*u+a*(1-e.a)+u*(1-t.a))/n,b:(o*e.a+l*t.a-2*o*l+o*(1-e.a)+l*(1-t.a))/n,a:n}}},58380:(t,e,r)=>{"use strict";var n=r(75263);Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t,e,r){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},s=arguments.length>4?arguments[4]:void 0;if("function"==typeof n&&(s=n,n={}),!(t instanceof this.constructor))return i.throwError.call(this,"The source must be a Jimp image",s);if("number"!=typeof e||"number"!=typeof r)return i.throwError.call(this,"Line truncated
-450
View File
@@ -1,450 +0,0 @@
/*!
* The buffer module from node.js, for the browser.
*
* @author Feross Aboukhadijeh <feross@feross.org> <http://feross.org>
* @license MIT
*/
/*!
* The buffer module from node.js, for the browser.
*
* @author Feross Aboukhadijeh <https://feross.org>
* @license MIT
*/
/*!
* Timm
*
* Immutability helpers with fast reads and acceptable writes.
*
* @copyright Guillermo Grau Panea 2016
* @license MIT
*/
/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */
/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */
/*! safe-buffer. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */
/**
* @author Ge0rg3 [georgeomnet+cyberchef@gmail.com]
* @copyright Crown Copyright 2019
* @license Apache-2.0
*/
/**
* @author Matt C [matt@artemisbot.uk]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*/
/**
* @author d98762625 [d98762625@gmail.com]
* @copyright Crown Copyright 2019
* @license Apache-2.0
*/
/**
* @author j433866 [j433866@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*/
/**
* @author j433866 [j433866@gmail.com]
* @copyright Crown Copyright 2019
* @license Apache-2.0
*/
/**
* @author n1474335 [n1474335@gmail.com]
* @author Matt C [matt@artemisbot.uk]
* @copyright Crown Copyright 2016
* @license Apache-2.0
*/
/**
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2016
* @license Apache-2.0
*/
/**
* @author pointhi [thomas.pointhuber@gmx.at]
* @copyright Crown Copyright 2019
* @license Apache-2.0
*/
/**
* @author tlwr [toby@toby.codes]
* @copyright Crown Copyright 2017
* @license Apache-2.0
*/
/**
* @preserve
* Copyright 2015-2018 Igor Bezkrovnyi
* All rights reserved. (MIT Licensed)
*
* cie94.ts - part of Image Quantization Library
*/
/**
* @preserve
* Copyright 2015-2018 Igor Bezkrovnyi
* All rights reserved. (MIT Licensed)
*
* ciede2000.ts - part of Image Quantization Library
*/
/**
* @preserve
* Copyright 2015-2018 Igor Bezkrovnyi
* All rights reserved. (MIT Licensed)
*
* cmetric.ts - part of Image Quantization Library
*/
/**
* @preserve
* Copyright 2015-2018 Igor Bezkrovnyi
* All rights reserved. (MIT Licensed)
*
* common.ts - part of Image Quantization Library
*/
/**
* @preserve
* Copyright 2015-2018 Igor Bezkrovnyi
* All rights reserved. (MIT Licensed)
*
* constants.ts - part of Image Quantization Library
*/
/**
* @preserve
* Copyright 2015-2018 Igor Bezkrovnyi
* All rights reserved. (MIT Licensed)
*
* ditherErrorDiffusionArray.ts - part of Image Quantization Library
*/
/**
* @preserve
* Copyright 2015-2018 Igor Bezkrovnyi
* All rights reserved. (MIT Licensed)
*
* euclidean.ts - part of Image Quantization Library
*/
/**
* @preserve
* Copyright 2015-2018 Igor Bezkrovnyi
* All rights reserved. (MIT Licensed)
*
* helper.ts - part of Image Quantization Library
*/
/**
* @preserve
* Copyright 2015-2018 Igor Bezkrovnyi
* All rights reserved. (MIT Licensed)
*
* hueStatistics.ts - part of Image Quantization Library
*/
/**
* @preserve
* Copyright 2015-2018 Igor Bezkrovnyi
* All rights reserved. (MIT Licensed)
*
* iq.ts - Image Quantization Library
*/
/**
* @preserve
* Copyright 2015-2018 Igor Bezkrovnyi
* All rights reserved. (MIT Licensed)
*
* lab2rgb.ts - part of Image Quantization Library
*/
/**
* @preserve
* Copyright 2015-2018 Igor Bezkrovnyi
* All rights reserved. (MIT Licensed)
*
* lab2xyz.ts - part of Image Quantization Library
*/
/**
* @preserve
* Copyright 2015-2018 Igor Bezkrovnyi
* All rights reserved. (MIT Licensed)
*
* manhattanNeuQuant.ts - part of Image Quantization Library
*/
/**
* @preserve
* Copyright 2015-2018 Igor Bezkrovnyi
* All rights reserved. (MIT Licensed)
*
* nearestColor.ts - part of Image Quantization Library
*/
/**
* @preserve
* Copyright 2015-2018 Igor Bezkrovnyi
* All rights reserved. (MIT Licensed)
*
* palette.ts - part of Image Quantization Library
*/
/**
* @preserve
* Copyright 2015-2018 Igor Bezkrovnyi
* All rights reserved. (MIT Licensed)
*
* pngQuant.ts - part of Image Quantization Library
*/
/**
* @preserve
* Copyright 2015-2018 Igor Bezkrovnyi
* All rights reserved. (MIT Licensed)
*
* point.ts - part of Image Quantization Library
*/
/**
* @preserve
* Copyright 2015-2018 Igor Bezkrovnyi
* All rights reserved. (MIT Licensed)
*
* pointContainer.ts - part of Image Quantization Library
*/
/**
* @preserve
* Copyright 2015-2018 Igor Bezkrovnyi
* All rights reserved. (MIT Licensed)
*
* rgb2hsl.ts - part of Image Quantization Library
*/
/**
* @preserve
* Copyright 2015-2018 Igor Bezkrovnyi
* All rights reserved. (MIT Licensed)
*
* rgb2lab.ts - part of Image Quantization Library
*/
/**
* @preserve
* Copyright 2015-2018 Igor Bezkrovnyi
* All rights reserved. (MIT Licensed)
*
* rgb2xyz.ts - part of Image Quantization Library
*/
/**
* @preserve
* Copyright 2015-2018 Igor Bezkrovnyi
* All rights reserved. (MIT Licensed)
*
* ssim.ts - part of Image Quantization Library
*/
/**
* @preserve
* Copyright 2015-2018 Igor Bezkrovnyi
* All rights reserved. (MIT Licensed)
*
* wuQuant.ts - part of Image Quantization Library
*/
/**
* @preserve
* Copyright 2015-2018 Igor Bezkrovnyi
* All rights reserved. (MIT Licensed)
*
* xyz2lab.ts - part of Image Quantization Library
*/
/**
* @preserve
* Copyright 2015-2018 Igor Bezkrovnyi
* All rights reserved. (MIT Licensed)
*
* xyz2rgb.ts - part of Image Quantization Library
*/
/**
* @preserve
* MIT License
*
* Copyright 2015-2018 Igor Bezkrovnyi
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to
* deal in the Software without restriction, including without limitation the
* rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
* sell copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
* IN THE SOFTWARE.
*
* riemersma.ts - part of Image Quantization Library
*/
/**
* @preserve TypeScript port:
* Copyright 2015-2018 Igor Bezkrovnyi
* All rights reserved. (MIT Licensed)
*
* colorHistogram.ts - part of Image Quantization Library
*/
/**
* @preserve TypeScript port:
* Copyright 2015-2018 Igor Bezkrovnyi
* All rights reserved. (MIT Licensed)
*
* neuquant.ts - part of Image Quantization Library
*/
/**
* @preserve TypeScript port:
* Copyright 2015-2018 Igor Bezkrovnyi
* All rights reserved. (MIT Licensed)
*
* rgbquant.ts - part of Image Quantization Library
*/
/**
* Base64 functions.
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2016
* @license Apache-2.0
*/
/**
* Custom error type for handling Dish type errors.
* i.e. where the Dish cannot be successfully translated between types
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*/
/**
* Custom error type for handling operation input errors.
* i.e. where the operation can handle the error and print a message to the screen.
*
* @author d98762625 [d98762625@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*/
/**
* CyberChef - The Cyber Swiss Army Knife
*
* @copyright Crown Copyright 2016
* @license Apache-2.0
*
* Copyright 2016 Crown Copyright
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/**
* Decimal functions.
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*/
/**
* File signatures and extractor functions
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*
*/
/**
* File type functions
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*
*/
/**
* Hashing resources.
*
* @author n1474335 [n1474335@gmail.com]
*
* @copyright Crown Copyright 2016
* @license Apache-2.0
*/
/**
* Image manipulation resources
*
* @author j433866 [j433866@gmail.com]
* @copyright Crown Copyright 2019
* @license Apache-2.0
*/
/**
* QR code resources
*
* @author j433866 [j433866@gmail.com]
* @copyright Crown Copyright 2019
* @license Apache-2.0
*/
/**
* Stream class for parsing binary protocols.
*
* @author n1474335 [n1474335@gmail.com]
* @author tlwr [toby@toby.codes]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*
*/
/**
* Various delimiters
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*/
-2
View File
@@ -1,2 +0,0 @@
/*! For license information please see OCR.js.LICENSE.txt */
(()=>{var e={79742:(e,t)=>{"use strict";t.byteLength=function(e){var t=s(e),r=t[0],n=t[1];return 3*(r+n)/4-n},t.toByteArray=function(e){var t,r,i=s(e),a=i[0],u=i[1],c=new o(function(e,t,r){return 3*(t+r)/4-r}(0,a,u)),l=0,f=u>0?a-4:a;for(r=0;r<f;r+=4)t=n[e.charCodeAt(r)]<<18|n[e.charCodeAt(r+1)]<<12|n[e.charCodeAt(r+2)]<<6|n[e.charCodeAt(r+3)],c[l++]=t>>16&255,c[l++]=t>>8&255,c[l++]=255&t;return 2===u&&(t=n[e.charCodeAt(r)]<<2|n[e.charCodeAt(r+1)]>>4,c[l++]=255&t),1===u&&(t=n[e.charCodeAt(r)]<<10|n[e.charCodeAt(r+1)]<<4|n[e.charCodeAt(r+2)]>>2,c[l++]=t>>8&255,c[l++]=255&t),c},t.fromByteArray=function(e){for(var t,n=e.length,o=n%3,i=[],a=16383,u=0,s=n-o;u<s;u+=a)i.push(c(e,u,u+a>s?s:u+a));return 1===o?(t=e[n-1],i.push(r[t>>2]+r[t<<4&63]+"==")):2===o&&(t=(e[n-2]<<8)+e[n-1],i.push(r[t>>10]+r[t>>4&63]+r[t<<2&63]+"=")),i.join("")};for(var r=[],n=[],o="undefined"!=typeof Uint8Array?Uint8Array:Array,i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",a=0,u=i.length;a<u;++a)r[a]=i[a],n[i.charCodeAt(a)]=a;function s(e){var t=e.length;if(t%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var r=e.indexOf("=");return-1===r&&(r=t),[r,r===t?0:4-r%4]}function c(e,t,n){for(var o,i,a=[],u=t;u<n;u+=3)o=(e[u]<<16&16711680)+(e[u+1]<<8&65280)+(255&e[u+2]),a.push(r[(i=o)>>18&63]+r[i>>12&63]+r[i>>6&63]+r[63&i]);return a.join("")}n["-".charCodeAt(0)]=62,n["_".charCodeAt(0)]=63},48764:(e,t,r)=>{"use strict";const n=r(79742),o=r(80645),i="function"==typeof Symbol&&"function"==typeof Symbol.for?Symbol.for("nodejs.util.inspect.custom"):null;t.Buffer=s,t.INSPECT_MAX_BYTES=50;const a=2147483647;function u(e){if(e>a)throw new RangeError('The value "'+e+'" is invalid for option "size"');const t=new Uint8Array(e);return Object.setPrototypeOf(t,s.prototype),t}function s(e,t,r){if("number"==typeof e){if("string"==typeof t)throw new TypeError('The "string" argument must be of type string. Received type number');return f(e)}return c(e,t,r)}function c(e,t,r){if("string"==typeof e)return function(e,t){if("string"==typeof t&&""!==t||(t="utf8"),!s.isEncoding(t))throw new TypeError("Unknown encoding: "+t);const r=0|m(e,t);let n=u(r);const o=n.write(e,t);return o!==r&&(n=n.slice(0,o)),n}(e,t);if(ArrayBuffer.isView(e))return function(e){if(q(e,Uint8Array)){const t=new Uint8Array(e);return h(t.buffer,t.byteOffset,t.byteLength)}return p(e)}(e);if(null==e)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e);if(q(e,ArrayBuffer)||e&&q(e.buffer,ArrayBuffer))return h(e,t,r);if("undefined"!=typeof SharedArrayBuffer&&(q(e,SharedArrayBuffer)||e&&q(e.buffer,SharedArrayBuffer)))return h(e,t,r);if("number"==typeof e)throw new TypeError('The "value" argument must not be of type number. Received type number');const n=e.valueOf&&e.valueOf();if(null!=n&&n!==e)return s.from(n,t,r);const o=function(e){if(s.isBuffer(e)){const t=0|d(e.length),r=u(t);return 0===r.length||e.copy(r,0,0,t),r}return void 0!==e.length?"number"!=typeof e.length||K(e.length)?u(0):p(e):"Buffer"===e.type&&Array.isArray(e.data)?p(e.data):void 0}(e);if(o)return o;if("undefined"!=typeof Symbol&&null!=Symbol.toPrimitive&&"function"==typeof e[Symbol.toPrimitive])return s.from(e[Symbol.toPrimitive]("string"),t,r);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e)}function l(e){if("number"!=typeof e)throw new TypeError('"size" argument must be of type number');if(e<0)throw new RangeError('The value "'+e+'" is invalid for option "size"')}function f(e){return l(e),u(e<0?0:0|d(e))}function p(e){const t=e.length<0?0:0|d(e.length),r=u(t);for(let n=0;n<t;n+=1)r[n]=255&e[n];return r}function h(e,t,r){if(t<0||e.byteLength<t)throw new RangeError('"offset" is outside of buffer bounds');if(e.byteLength<t+(r||0))throw new RangeError('"length" is outside of buffer bounds');let n;return n=void 0===t&&void 0===r?new Uint8Array(e):void 0===r?new Uint8Array(e,t):new Uint8Array(e,t,r),Object.setPrototypeOf(n,s.prototype),n}function d(e){if(e>=a)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+a.toString(16)+" bytes");return 0|e}function m(e,t){if(s.isBuffer(e))return e.length;if(ArrayBuffer.isView(e)||q(e,ArrayBuffer))return e.byteLength;if("string"!=typeof e)throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof e);const r=e.length,n=arguments.length>2&&!0===arguments[2];if(!n&&0===r)return 0;let o=!1;for(;;)switch(t){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":return V(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return W(e).length;default:if(o)return n?-1:V(e).length;t=(""+t).toLowerCase(),o=!0}}function g(e,t,r){let n=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<Line truncated
-120
View File
@@ -1,120 +0,0 @@
/*!
* The buffer module from node.js, for the browser.
*
* @author Feross Aboukhadijeh <https://feross.org>
* @license MIT
*/
/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */
/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */
/**
* @author d98762625 [d98762625@gmail.com]
* @copyright Crown Copyright 2019
* @license Apache-2.0
*/
/**
* @author n1474335 [n1474335@gmail.com]
* @author Matt C [matt@artemisbot.uk]
* @copyright Crown Copyright 2016
* @license Apache-2.0
*/
/**
* @author n1474335 [n1474335@gmail.com]
* @author mshwed [m@ttshwed.com]
* @author Matt C [me@mitt.dev]
* @copyright Crown Copyright 2019
* @license Apache-2.0
*/
/**
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2016
* @license Apache-2.0
*/
/**
* Base64 functions.
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2016
* @license Apache-2.0
*/
/**
* Custom error type for handling Dish type errors.
* i.e. where the Dish cannot be successfully translated between types
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*/
/**
* Custom error type for handling operation input errors.
* i.e. where the operation can handle the error and print a message to the screen.
*
* @author d98762625 [d98762625@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*/
/**
* CyberChef - The Cyber Swiss Army Knife
*
* @copyright Crown Copyright 2016
* @license Apache-2.0
*
* Copyright 2016 Crown Copyright
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/**
* Decimal functions.
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*/
/**
* File signatures and extractor functions
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*
*/
/**
* File type functions
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*
*/
/**
* Stream class for parsing binary protocols.
*
* @author n1474335 [n1474335@gmail.com]
* @author tlwr [toby@toby.codes]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*
*/
-2
View File
@@ -1,2 +0,0 @@
/*! For license information please see PGP.js.LICENSE.txt */
(()=>{var t={39809:(t,e,r)=>{"use strict";const n=e;n.bignum=r(4590),n.define=r(22500).define,n.base=r(71979),n.constants=r(36826),n.decoders=r(78307),n.encoders=r(56579)},22500:(t,e,r)=>{"use strict";const n=r(56579),i=r(78307),o=r(35717);function s(t,e){this.name=t,this.body=e,this.decoders={},this.encoders={}}e.define=function(t,e){return new s(t,e)},s.prototype._createNamed=function(t){const e=this.name;function r(t){this._initNamed(t,e)}return o(r,t),r.prototype._initNamed=function(e,r){t.call(this,e,r)},new r(this)},s.prototype._getDecoder=function(t){return t=t||"der",this.decoders.hasOwnProperty(t)||(this.decoders[t]=this._createNamed(i[t])),this.decoders[t]},s.prototype.decode=function(t,e,r){return this._getDecoder(e).decode(t,r)},s.prototype._getEncoder=function(t){return t=t||"der",this.encoders.hasOwnProperty(t)||(this.encoders[t]=this._createNamed(n[t])),this.encoders[t]},s.prototype.encode=function(t,e,r){return this._getEncoder(e).encode(t,r)}},36625:(t,e,r)=>{"use strict";const n=r(35717),i=r(98465).b,o=r(2399).Buffer;function s(t,e){i.call(this,e),o.isBuffer(t)?(this.base=t,this.offset=0,this.length=t.length):this.error("Input not Buffer")}function a(t,e){if(Array.isArray(t))this.length=0,this.value=t.map((function(t){return a.isEncoderBuffer(t)||(t=new a(t,e)),this.length+=t.length,t}),this);else if("number"==typeof t){if(!(0<=t&&t<=255))return e.error("non-byte EncoderBuffer value");this.value=t,this.length=1}else if("string"==typeof t)this.value=t,this.length=o.byteLength(t);else{if(!o.isBuffer(t))return e.error("Unsupported type: "+typeof t);this.value=t,this.length=t.length}}n(s,i),e.C=s,s.isDecoderBuffer=function(t){return t instanceof s||"object"==typeof t&&o.isBuffer(t.base)&&"DecoderBuffer"===t.constructor.name&&"number"==typeof t.offset&&"number"==typeof t.length&&"function"==typeof t.save&&"function"==typeof t.restore&&"function"==typeof t.isEmpty&&"function"==typeof t.readUInt8&&"function"==typeof t.skip&&"function"==typeof t.raw},s.prototype.save=function(){return{offset:this.offset,reporter:i.prototype.save.call(this)}},s.prototype.restore=function(t){const e=new s(this.base);return e.offset=t.offset,e.length=this.offset,this.offset=t.offset,i.prototype.restore.call(this,t.reporter),e},s.prototype.isEmpty=function(){return this.offset===this.length},s.prototype.readUInt8=function(t){return this.offset+1<=this.length?this.base.readUInt8(this.offset++,!0):this.error(t||"DecoderBuffer overrun")},s.prototype.skip=function(t,e){if(!(this.offset+t<=this.length))return this.error(e||"DecoderBuffer overrun");const r=new s(this.base);return r._reporterState=this._reporterState,r.offset=this.offset,r.length=this.offset+t,this.offset+=t,r},s.prototype.raw=function(t){return this.base.slice(t?t.offset:this.offset,this.length)},e.R=a,a.isEncoderBuffer=function(t){return t instanceof a||"object"==typeof t&&"EncoderBuffer"===t.constructor.name&&"number"==typeof t.length&&"function"==typeof t.join},a.prototype.join=function(t,e){return t||(t=o.alloc(this.length)),e||(e=0),0===this.length||(Array.isArray(this.value)?this.value.forEach((function(r){r.join(t,e),e+=r.length})):("number"==typeof this.value?t[e]=this.value:"string"==typeof this.value?t.write(this.value,e):o.isBuffer(this.value)&&this.value.copy(t,e),e+=this.length)),t}},71979:(t,e,r)=>{"use strict";const n=e;n.Reporter=r(98465).b,n.DecoderBuffer=r(36625).C,n.EncoderBuffer=r(36625).R,n.Node=r(41949)},41949:(t,e,r)=>{"use strict";const n=r(98465).b,i=r(36625).R,o=r(36625).C,s=r(79746),a=["seq","seqof","set","setof","objid","bool","gentime","utctime","null_","enum","int","objDesc","bitstr","bmpstr","charstr","genstr","graphstr","ia5str","iso646str","numstr","octstr","printstr","t61str","unistr","utf8str","videostr"],u=["key","obj","use","optional","explicit","implicit","def","choice","any","contains"].concat(a);function f(t,e,r){const n={};this._baseState=n,n.name=r,n.enc=t,n.parent=e||null,n.children=null,n.tag=null,n.args=null,n.reverseArgs=null,n.choice=null,n.optional=!1,n.any=!1,n.obj=!1,n.use=null,n.useDecoder=null,n.key=null,n.default=null,n.explicit=null,n.implicit=null,n.contains=null,n.parent||(n.children=[],this._wrap())}t.exports=f;const h=["enc","parent","children","tag","args","reverseArgs","choice","optional","any","obj","use","alteredUse","key","default","explicit","implicit","contains"];f.prototype.clone=function(){const t=this._baseState,e={};h.forEach((function(r){e[r]=t[r]}));const r=new this.constructor(e.parent);return r._baseState=e,r},f.prototype._wrap=function(){const t=this._baseState;u.forEach((function(e){this[e]=function(){const r=new this.constructor(this);return t.children.push(r),r[e].apply(r,arguments)}}),this)},f.prototype._init=function(t){const e=this._baseState;s(null===e.parent),t.call(this),e.children=e.children.filter((function(t){return t._baseState.parent===this}),this),s.equal(e.children.length,1,"Root node can have only one child")},f.prototype._useArgs=function(t){const e=this._baseState,Line truncated
-171
View File
@@ -1,171 +0,0 @@
/*!
* The buffer module from node.js, for the browser.
*
* @author Feross Aboukhadijeh <feross@feross.org> <http://feross.org>
* @license MIT
*/
/*!
* The buffer module from node.js, for the browser.
*
* @author Feross Aboukhadijeh <https://feross.org>
* @license MIT
*/
/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */
/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */
/*! safe-buffer. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */
/**
* bwt_reverse code from wikipedia (slightly modified)
* @url http://en.wikipedia.org/wiki/Burrows%E2%80%93Wheeler_transform
* @license: CC-SA 3.0
*/
/**
* this is a port of pyflate
* @url http://www.paul.sladen.org/projects/pyflate/
* @author kirilloid
* @license CC-SA 3.0
* @usage ArchUtils.bz2.decode(str)
* @example ArchUtils.bz2.decode(
* "BZh91AY&SYN\xEC\xE86\0\0\2Q\x80\0\x10@\0\6D\x90\x80 " +
* "\x001\6LA\1\xA7\xA9\xA5\x80\xBB\x941\xF8\xBB\x92)\xC2\x84\x82wgA\xB0"
* ) == "hello world\n";
*/
/**
* @author Matt C [me@mitt.dev]
* @copyright Crown Copyright 2019
* @license Apache-2.0
*/
/**
* @author d98762625 [d98762625@gmail.com]
* @copyright Crown Copyright 2019
* @license Apache-2.0
*/
/**
* @author n1474335 [n1474335@gmail.com]
* @author Matt C [matt@artemisbot.uk]
* @copyright Crown Copyright 2016
* @license Apache-2.0
*/
/**
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2016
* @license Apache-2.0
*/
/**
* @author tlwr [toby@toby.codes]
* @author Matt C [matt@artemisbot.uk]
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2017
* @license Apache-2.0
*/
/**
* @author tlwr [toby@toby.codes]
* @copyright Crown Copyright 2017
* @license Apache-2.0
*/
/**
* Base64 functions.
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2016
* @license Apache-2.0
*/
/**
* Custom error type for handling Dish type errors.
* i.e. where the Dish cannot be successfully translated between types
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*/
/**
* Custom error type for handling operation input errors.
* i.e. where the operation can handle the error and print a message to the screen.
*
* @author d98762625 [d98762625@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*/
/**
* CyberChef - The Cyber Swiss Army Knife
*
* @copyright Crown Copyright 2016
* @license Apache-2.0
*
* Copyright 2016 Crown Copyright
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/**
* Decimal functions.
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*/
/**
* File signatures and extractor functions
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*
*/
/**
* File type functions
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*
*/
/**
* PGP functions.
*
* @author tlwr [toby@toby.codes]
* @author Matt C [matt@artemisbot.uk]
* @author n1474335 [n1474335@gmail.com]
*
* @copyright Crown Copyright 2018
* @license Apache-2.0
*
*/
/**
* Stream class for parsing binary protocols.
*
* @author n1474335 [n1474335@gmail.com]
* @author tlwr [toby@toby.codes]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*
*/
-2
View File
@@ -1,2 +0,0 @@
/*! For license information please see Protobuf.js.LICENSE.txt */
(()=>{var __webpack_modules__={34537:e=>{"use strict";e.exports=function(e,t){for(var r=new Array(arguments.length-1),n=0,i=2,o=!0;i<arguments.length;)r[n++]=arguments[i++];return new Promise((function(i,s){r[n]=function(e){if(o)if(o=!1,e)s(e);else{for(var t=new Array(arguments.length-1),r=0;r<t.length;)t[r++]=arguments[r];i.apply(null,t)}};try{e.apply(t||null,r)}catch(e){o&&(o=!1,s(e))}}))}},97419:(e,t)=>{"use strict";var r=t;r.length=function(e){var t=e.length;if(!t)return 0;for(var r=0;--t%4>1&&"="===e.charAt(t);)++r;return Math.ceil(3*e.length)/4-r};for(var n=new Array(64),i=new Array(123),o=0;o<64;)i[n[o]=o<26?o+65:o<52?o+71:o<62?o-4:o-59|43]=o++;r.encode=function(e,t,r){for(var i,o=null,s=[],a=0,u=0;t<r;){var c=e[t++];switch(u){case 0:s[a++]=n[c>>2],i=(3&c)<<4,u=1;break;case 1:s[a++]=n[i|c>>4],i=(15&c)<<2,u=2;break;case 2:s[a++]=n[i|c>>6],s[a++]=n[63&c],u=0}a>8191&&((o||(o=[])).push(String.fromCharCode.apply(String,s)),a=0)}return u&&(s[a++]=n[i],s[a++]=61,1===u&&(s[a++]=61)),o?(a&&o.push(String.fromCharCode.apply(String,s.slice(0,a))),o.join("")):String.fromCharCode.apply(String,s.slice(0,a))};var s="invalid encoding";r.decode=function(e,t,r){for(var n,o=r,a=0,u=0;u<e.length;){var c=e.charCodeAt(u++);if(61===c&&a>1)break;if(void 0===(c=i[c]))throw Error(s);switch(a){case 0:n=c,a=1;break;case 1:t[r++]=n<<2|(48&c)>>4,n=c,a=2;break;case 2:t[r++]=(15&n)<<4|(60&c)>>2,n=c,a=3;break;case 3:t[r++]=(3&n)<<6|c,a=0}}if(1===a)throw Error(s);return r-o},r.test=function(e){return/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(e)}},75124:e=>{"use strict";function t(e,r){"string"==typeof e&&(r=e,e=void 0);var n=[];function i(e){if("string"!=typeof e){var r=o();if(t.verbose&&console.log("codegen: "+r),r="return "+r,e){for(var s=Object.keys(e),a=new Array(s.length+1),u=new Array(s.length),c=0;c<s.length;)a[c]=s[c],u[c]=e[s[c++]];return a[c]=r,Function.apply(null,a).apply(null,u)}return Function(r)()}for(var f=new Array(arguments.length-1),l=0;l<f.length;)f[l]=arguments[++l];if(l=0,e=e.replace(/%([%dfijs])/g,(function(e,t){var r=f[l++];switch(t){case"d":case"f":return String(Number(r));case"i":return String(Math.floor(r));case"j":return JSON.stringify(r);case"s":return String(r)}return"%"})),l!==f.length)throw Error("parameter count mismatch");return n.push(e),i}function o(t){return"function "+(t||r||"")+"("+(e&&e.join(",")||"")+"){\n "+n.join("\n ")+"\n}"}return i.toString=o,i}e.exports=t,t.verbose=!1},19211:e=>{"use strict";function t(){this._listeners={}}e.exports=t,t.prototype.on=function(e,t,r){return(this._listeners[e]||(this._listeners[e]=[])).push({fn:t,ctx:r||this}),this},t.prototype.off=function(e,t){if(void 0===e)this._listeners={};else if(void 0===t)this._listeners[e]=[];else for(var r=this._listeners[e],n=0;n<r.length;)r[n].fn===t?r.splice(n,1):++n;return this},t.prototype.emit=function(e){var t=this._listeners[e];if(t){for(var r=[],n=1;n<arguments.length;)r.push(arguments[n++]);for(n=0;n<t.length;)t[n].fn.apply(t[n++].ctx,r)}return this}},49054:(e,t,r)=>{"use strict";e.exports=o;var n=r(34537),i=r(67199)("fs");function o(e,t,r){return"function"==typeof t?(r=t,t={}):t||(t={}),r?!t.xhr&&i&&i.readFile?i.readFile(e,(function(n,i){return n&&"undefined"!=typeof XMLHttpRequest?o.xhr(e,t,r):n?r(n):r(null,t.binary?i:i.toString("utf8"))})):o.xhr(e,t,r):n(o,this,e,t)}o.xhr=function(e,t,r){var n=new XMLHttpRequest;n.onreadystatechange=function(){if(4===n.readyState){if(0!==n.status&&200!==n.status)return r(Error("status "+n.status));if(t.binary){var e=n.response;if(!e){e=[];for(var i=0;i<n.responseText.length;++i)e.push(255&n.responseText.charCodeAt(i))}return r(null,"undefined"!=typeof Uint8Array?new Uint8Array(e):e)}return r(null,n.responseText)}},t.binary&&("overrideMimeType"in n&&n.overrideMimeType("text/plain; charset=x-user-defined"),n.responseType="arraybuffer"),n.open("GET",e),n.send()}},10945:e=>{"use strict";function t(e){return"undefined"!=typeof Float32Array?function(){var t=new Float32Array([-0]),r=new Uint8Array(t.buffer),n=128===r[3];function i(e,n,i){t[0]=e,n[i]=r[0],n[i+1]=r[1],n[i+2]=r[2],n[i+3]=r[3]}function o(e,n,i){t[0]=e,n[i]=r[3],n[i+1]=r[2],n[i+2]=r[1],n[i+3]=r[0]}function s(e,n){return r[0]=e[n],r[1]=e[n+1],r[2]=e[n+2],r[3]=e[n+3],t[0]}function a(e,n){return r[3]=e[n],r[2]=e[n+1],r[1]=e[n+2],r[0]=e[n+3],t[0]}e.writeFloatLE=n?i:o,e.writeFloatBE=n?o:i,e.readFloatLE=n?s:a,e.readFloatBE=n?a:s}():function(){function t(e,t,r,n){var i=t<0?1:0;if(i&&(t=-t),0===t)e(1/t>0?0:2147483648,r,n);else if(isNaN(t))e(2143289344,r,n);else if(t>34028234663852886e22)e((i<<31|2139095040)>>>0,r,n);else if(t<11754943508222875e-54)e((i<<31|Math.round(t/1401298464324817e-60))>>>0,r,n);else{var o=Math.floor(Math.log(t)/Math.LN2);e((i<<31|o+127<<23|8388607&Math.round(t*Math.pow(2,-o)*8388608))>>>0,r,n)}}function s(e,t,r){var n=e(t,r),i=2*(n>>31)+1,o=n>>>23&255,s=8388607&n;return 255===o?s?NaN:i*(1/0):0===o?1401298464324817e-60*i*s:i*Math.pow(2,o-150)*(s+8388608)}e.writeFloatLE=t.bind(null,r),e.Line truncated
-136
View File
@@ -1,136 +0,0 @@
/*!
* The buffer module from node.js, for the browser.
*
* @author Feross Aboukhadijeh <https://feross.org>
* @license MIT
*/
/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */
/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */
/**
* @author GCHQ Contributor [3]
* @copyright Crown Copyright 2019
* @license Apache-2.0
*/
/**
* @author GCHQ Contributor [3]
* @copyright Crown Copyright 2021
* @license Apache-2.0
*/
/**
* @author d98762625 [d98762625@gmail.com]
* @copyright Crown Copyright 2019
* @license Apache-2.0
*/
/**
* @author n1474335 [n1474335@gmail.com]
* @author Matt C [matt@artemisbot.uk]
* @copyright Crown Copyright 2016
* @license Apache-2.0
*/
/**
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2016
* @license Apache-2.0
*/
/**
* Base64 functions.
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2016
* @license Apache-2.0
*/
/**
* Custom error type for handling Dish type errors.
* i.e. where the Dish cannot be successfully translated between types
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*/
/**
* Custom error type for handling operation input errors.
* i.e. where the operation can handle the error and print a message to the screen.
*
* @author d98762625 [d98762625@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*/
/**
* CyberChef - The Cyber Swiss Army Knife
*
* @copyright Crown Copyright 2016
* @license Apache-2.0
*
* Copyright 2016 Crown Copyright
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/**
* Decimal functions.
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*/
/**
* File signatures and extractor functions
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*
*/
/**
* File type functions
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*
*/
/**
* Protobuf lib. Contains functions to decode protobuf serialised
* data without a schema or .proto file.
*
* Provides utility functions to encode and decode variable length
* integers (varint).
*
* @author GCHQ Contributor [3]
* @copyright Crown Copyright 2019
* @license Apache-2.0
*/
/**
* Stream class for parsing binary protocols.
*
* @author n1474335 [n1474335@gmail.com]
* @author tlwr [toby@toby.codes]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*
*/
-2
View File
@@ -1,2 +0,0 @@
/*! For license information please see PublicKey.js.LICENSE.txt */
(()=>{var t={79742:(t,e)=>{"use strict";e.byteLength=function(t){var e=u(t),r=e[0],n=e[1];return 3*(r+n)/4-n},e.toByteArray=function(t){var e,r,s=u(t),a=s[0],o=s[1],c=new i(function(t,e,r){return 3*(e+r)/4-r}(0,a,o)),h=0,l=o>0?a-4:a;for(r=0;r<l;r+=4)e=n[t.charCodeAt(r)]<<18|n[t.charCodeAt(r+1)]<<12|n[t.charCodeAt(r+2)]<<6|n[t.charCodeAt(r+3)],c[h++]=e>>16&255,c[h++]=e>>8&255,c[h++]=255&e;return 2===o&&(e=n[t.charCodeAt(r)]<<2|n[t.charCodeAt(r+1)]>>4,c[h++]=255&e),1===o&&(e=n[t.charCodeAt(r)]<<10|n[t.charCodeAt(r+1)]<<4|n[t.charCodeAt(r+2)]>>2,c[h++]=e>>8&255,c[h++]=255&e),c},e.fromByteArray=function(t){for(var e,n=t.length,i=n%3,s=[],a=16383,o=0,u=n-i;o<u;o+=a)s.push(c(t,o,o+a>u?u:o+a));return 1===i?(e=t[n-1],s.push(r[e>>2]+r[e<<4&63]+"==")):2===i&&(e=(t[n-2]<<8)+t[n-1],s.push(r[e>>10]+r[e>>4&63]+r[e<<2&63]+"=")),s.join("")};for(var r=[],n=[],i="undefined"!=typeof Uint8Array?Uint8Array:Array,s="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",a=0,o=s.length;a<o;++a)r[a]=s[a],n[s.charCodeAt(a)]=a;function u(t){var e=t.length;if(e%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var r=t.indexOf("=");return-1===r&&(r=e),[r,r===e?0:4-r%4]}function c(t,e,n){for(var i,s,a=[],o=e;o<n;o+=3)i=(t[o]<<16&16711680)+(t[o+1]<<8&65280)+(255&t[o+2]),a.push(r[(s=i)>>18&63]+r[s>>12&63]+r[s>>6&63]+r[63&s]);return a.join("")}n["-".charCodeAt(0)]=62,n["_".charCodeAt(0)]=63},48764:(t,e,r)=>{"use strict";const n=r(79742),i=r(80645),s="function"==typeof Symbol&&"function"==typeof Symbol.for?Symbol.for("nodejs.util.inspect.custom"):null;e.Buffer=u,e.INSPECT_MAX_BYTES=50;const a=2147483647;function o(t){if(t>a)throw new RangeError('The value "'+t+'" is invalid for option "size"');const e=new Uint8Array(t);return Object.setPrototypeOf(e,u.prototype),e}function u(t,e,r){if("number"==typeof t){if("string"==typeof e)throw new TypeError('The "string" argument must be of type string. Received type number');return l(t)}return c(t,e,r)}function c(t,e,r){if("string"==typeof t)return function(t,e){if("string"==typeof e&&""!==e||(e="utf8"),!u.isEncoding(e))throw new TypeError("Unknown encoding: "+e);const r=0|d(t,e);let n=o(r);const i=n.write(t,e);return i!==r&&(n=n.slice(0,i)),n}(t,e);if(ArrayBuffer.isView(t))return function(t){if(J(t,Uint8Array)){const e=new Uint8Array(t);return p(e.buffer,e.byteOffset,e.byteLength)}return f(t)}(t);if(null==t)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof t);if(J(t,ArrayBuffer)||t&&J(t.buffer,ArrayBuffer))return p(t,e,r);if("undefined"!=typeof SharedArrayBuffer&&(J(t,SharedArrayBuffer)||t&&J(t.buffer,SharedArrayBuffer)))return p(t,e,r);if("number"==typeof t)throw new TypeError('The "value" argument must not be of type number. Received type number');const n=t.valueOf&&t.valueOf();if(null!=n&&n!==t)return u.from(n,e,r);const i=function(t){if(u.isBuffer(t)){const e=0|g(t.length),r=o(e);return 0===r.length||t.copy(r,0,0,e),r}return void 0!==t.length?"number"!=typeof t.length||Y(t.length)?o(0):f(t):"Buffer"===t.type&&Array.isArray(t.data)?f(t.data):void 0}(t);if(i)return i;if("undefined"!=typeof Symbol&&null!=Symbol.toPrimitive&&"function"==typeof t[Symbol.toPrimitive])return u.from(t[Symbol.toPrimitive]("string"),e,r);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof t)}function h(t){if("number"!=typeof t)throw new TypeError('"size" argument must be of type number');if(t<0)throw new RangeError('The value "'+t+'" is invalid for option "size"')}function l(t){return h(t),o(t<0?0:0|g(t))}function f(t){const e=t.length<0?0:0|g(t.length),r=o(e);for(let n=0;n<e;n+=1)r[n]=255&t[n];return r}function p(t,e,r){if(e<0||t.byteLength<e)throw new RangeError('"offset" is outside of buffer bounds');if(t.byteLength<e+(r||0))throw new RangeError('"length" is outside of buffer bounds');let n;return n=void 0===e&&void 0===r?new Uint8Array(t):void 0===r?new Uint8Array(t,e):new Uint8Array(t,e,r),Object.setPrototypeOf(n,u.prototype),n}function g(t){if(t>=a)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+a.toString(16)+" bytes");return 0|t}function d(t,e){if(u.isBuffer(t))return t.length;if(ArrayBuffer.isView(t)||J(t,ArrayBuffer))return t.byteLength;if("string"!=typeof t)throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof t);const r=t.length,n=arguments.length>2&&!0===arguments[2];if(!n&&0===r)return 0;let i=!1;for(;;)switch(e){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":return $(t).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return z(t).length;default:if(i)return n?-1:$(t).length;e=(""+e).toLowerCase(),i=!0}}function m(t,e,r){let n=!1;if((void 0===e||e<0)&&(e=0),e>this.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<Line truncated
-140
View File
@@ -1,140 +0,0 @@
/*!
* The buffer module from node.js, for the browser.
*
* @author Feross Aboukhadijeh <https://feross.org>
* @license MIT
*/
/*! (c) Stefan Thomas | https://github.com/bitcoinjs/bitcoinjs-lib
*/
/*! (c) Tom Wu | http://www-cs-students.stanford.edu/~tjw/jsbn/
*/
/*! (c) Tom Wu, Kenji Urushima | http://www-cs-students.stanford.edu/~tjw/jsbn/
*/
/*! Mike Samuel (c) 2009 | code.google.com/p/json-sans-eval
*/
/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */
/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */
/**
* @author d98762625 [d98762625@gmail.com]
* @copyright Crown Copyright 2019
* @license Apache-2.0
*/
/**
* @author n1474335 [n1474335@gmail.com]
* @author Matt C [matt@artemisbot.uk]
* @copyright Crown Copyright 2016
* @license Apache-2.0
*/
/**
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2016
* @license Apache-2.0
*/
/**
* Base64 functions.
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2016
* @license Apache-2.0
*/
/**
* Custom error type for handling Dish type errors.
* i.e. where the Dish cannot be successfully translated between types
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*/
/**
* Custom error type for handling operation input errors.
* i.e. where the operation can handle the error and print a message to the screen.
*
* @author d98762625 [d98762625@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*/
/**
* CyberChef - The Cyber Swiss Army Knife
*
* @copyright Crown Copyright 2016
* @license Apache-2.0
*
* Copyright 2016 Crown Copyright
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/**
* Decimal functions.
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*/
/**
* File signatures and extractor functions
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*
*/
/**
* File type functions
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*
*/
/**
* Hexadecimal functions.
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2016
* @license Apache-2.0
*/
/**
* Public key resources.
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2016
* @license Apache-2.0
*/
/**
* Stream class for parsing binary protocols.
*
* @author n1474335 [n1474335@gmail.com]
* @author tlwr [toby@toby.codes]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*
*/
-2
View File
@@ -1,2 +0,0 @@
/*! For license information please see Regex.js.LICENSE.txt */
(()=>{var u={66419:(u,e,t)=>{u.exports=t(27698)},41511:(u,e,t)=>{u.exports=t(83363)},82285:(u,e,t)=>{u.exports=t(8065)},7175:(u,e,t)=>{u.exports=t(48842)},78914:(u,e,t)=>{u.exports=t(46279)},81643:(u,e,t)=>{u.exports=t(19373)},2991:(u,e,t)=>{u.exports=t(8918)},32366:(u,e,t)=>{u.exports=t(34434)},3649:(u,e,t)=>{u.exports=t(82073)},47302:(u,e,t)=>{u.exports=t(62856)},54943:(u,e,t)=>{u.exports=t(14471)},63978:(u,e,t)=>{u.exports=t(41910)},94198:(u,e,t)=>{u.exports=t(74888)},65420:(u,e,t)=>{u.exports=t(92547)},53592:(u,e,t)=>{u.exports=t(27385)},78363:(u,e,t)=>{u.exports=t(81522)},19996:(u,e,t)=>{u.exports=t(32209)},67192:(u,e,t)=>{u.exports=t(81493)},51446:(u,e,t)=>{u.exports=t(86600)},34243:u=>{u.exports=function(u,e){(null==e||e>u.length)&&(e=u.length);for(var t=0,r=new Array(e);t<e;t++)r[t]=u[t];return r},u.exports.__esModule=!0,u.exports.default=u.exports},57726:(u,e,t)=>{var r=t(78363);u.exports=function(u){if(r(u))return u},u.exports.__esModule=!0,u.exports.default=u.exports},60530:u=>{u.exports=function(u){return u&&u.__esModule?u:{default:u}},u.exports.__esModule=!0,u.exports.default=u.exports},65056:(u,e,t)=>{var r=t(51446),d=t(19996);u.exports=function(u,e){var t=null==u?null:void 0!==r&&d(u)||u["@@iterator"];if(null!=t){var n,a,o=[],i=!0,c=!1;try{for(t=t.call(u);!(i=(n=t.next()).done)&&(o.push(n.value),!e||o.length!==e);i=!0);}catch(u){c=!0,a=u}finally{try{i||null==t.return||t.return()}finally{if(c)throw a}}return o}},u.exports.__esModule=!0,u.exports.default=u.exports},79736:u=>{u.exports=function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")},u.exports.__esModule=!0,u.exports.default=u.exports},18777:(u,e,t)=>{var r=t(57726),d=t(65056),n=t(79299),a=t(79736);u.exports=function(u,e){return r(u)||d(u,e)||n(u,e)||a()},u.exports.__esModule=!0,u.exports.default=u.exports},79299:(u,e,t)=>{var r=t(67192),d=t(53592),n=t(34243);u.exports=function(u,e){var t;if(u){if("string"==typeof u)return n(u,e);var a=r(t=Object.prototype.toString.call(u)).call(t,8,-1);return"Object"===a&&u.constructor&&(a=u.constructor.name),"Map"===a||"Set"===a?d(u):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?n(u,e):void 0}},u.exports.__esModule=!0,u.exports.default=u.exports},79742:(u,e)=>{"use strict";e.byteLength=function(u){var e=i(u),t=e[0],r=e[1];return 3*(t+r)/4-r},e.toByteArray=function(u){var e,t,n=i(u),a=n[0],o=n[1],c=new d(function(u,e,t){return 3*(e+t)/4-t}(0,a,o)),f=0,s=o>0?a-4:a;for(t=0;t<s;t+=4)e=r[u.charCodeAt(t)]<<18|r[u.charCodeAt(t+1)]<<12|r[u.charCodeAt(t+2)]<<6|r[u.charCodeAt(t+3)],c[f++]=e>>16&255,c[f++]=e>>8&255,c[f++]=255&e;return 2===o&&(e=r[u.charCodeAt(t)]<<2|r[u.charCodeAt(t+1)]>>4,c[f++]=255&e),1===o&&(e=r[u.charCodeAt(t)]<<10|r[u.charCodeAt(t+1)]<<4|r[u.charCodeAt(t+2)]>>2,c[f++]=e>>8&255,c[f++]=255&e),c},e.fromByteArray=function(u){for(var e,r=u.length,d=r%3,n=[],a=16383,o=0,i=r-d;o<i;o+=a)n.push(c(u,o,o+a>i?i:o+a));return 1===d?(e=u[r-1],n.push(t[e>>2]+t[e<<4&63]+"==")):2===d&&(e=(u[r-2]<<8)+u[r-1],n.push(t[e>>10]+t[e>>4&63]+t[e<<2&63]+"=")),n.join("")};for(var t=[],r=[],d="undefined"!=typeof Uint8Array?Uint8Array:Array,n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",a=0,o=n.length;a<o;++a)t[a]=n[a],r[n.charCodeAt(a)]=a;function i(u){var e=u.length;if(e%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var t=u.indexOf("=");return-1===t&&(t=e),[t,t===e?0:4-t%4]}function c(u,e,r){for(var d,n,a=[],o=e;o<r;o+=3)d=(u[o]<<16&16711680)+(u[o+1]<<8&65280)+(255&u[o+2]),a.push(t[(n=d)>>18&63]+t[n>>12&63]+t[n>>6&63]+t[63&n]);return a.join("")}r["-".charCodeAt(0)]=62,r["_".charCodeAt(0)]=63},48764:(u,e,t)=>{"use strict";const r=t(79742),d=t(80645),n="function"==typeof Symbol&&"function"==typeof Symbol.for?Symbol.for("nodejs.util.inspect.custom"):null;e.Buffer=i,e.INSPECT_MAX_BYTES=50;const a=2147483647;function o(u){if(u>a)throw new RangeError('The value "'+u+'" is invalid for option "size"');const e=new Uint8Array(u);return Object.setPrototypeOf(e,i.prototype),e}function i(u,e,t){if("number"==typeof u){if("string"==typeof e)throw new TypeError('The "string" argument must be of type string. Received type number');return s(u)}return c(u,e,t)}function c(u,e,t){if("string"==typeof u)return function(u,e){if("string"==typeof e&&""!==e||(e="utf8"),!i.isEncoding(e))throw new TypeError("Unknown encoding: "+e);const t=0|D(u,e);let r=o(t);const d=r.write(u,e);return d!==t&&(r=r.slice(0,d)),r}(u,e);if(ArrayBuffer.isView(u))return function(u){if(q(u,Uint8Array)){const e=new Uint8Array(u);return p(e.buffer,e.byteOffset,e.byteLength)}return l(u)}(u);if(null==u)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof u);if(q(u,ArrayBuffer)||u&&q(u.buffer,ArrayBuffer))return p(u,e,t);if("undefined"!=typeof SharedArrayBuffer&&(q(u,SharedArrayBuffer)||u&&q(u.buffer,SharedALine truncated
-177
View File
@@ -1,177 +0,0 @@
/*!
* The buffer module from node.js, for the browser.
*
* @author Feross Aboukhadijeh <https://feross.org>
* @license MIT
*/
/*!
* XRegExp 5.1.1
* <xregexp.com>
* Steven Levithan (c) 2007-present MIT License
*/
/*!
* XRegExp Unicode Base 5.1.1
* <xregexp.com>
* Steven Levithan (c) 2008-present MIT License
*/
/*!
* XRegExp Unicode Categories 5.1.1
* <xregexp.com>
* Steven Levithan (c) 2010-present MIT License
* Unicode data by Mathias Bynens <mathiasbynens.be>
*/
/*!
* XRegExp Unicode Properties 5.1.1
* <xregexp.com>
* Steven Levithan (c) 2012-present MIT License
* Unicode data by Mathias Bynens <mathiasbynens.be>
*/
/*!
* XRegExp Unicode Scripts 5.1.1
* <xregexp.com>
* Steven Levithan (c) 2010-present MIT License
* Unicode data by Mathias Bynens <mathiasbynens.be>
*/
/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */
/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */
/**
* @author d98762625 [d98762625@gmail.com]
* @copyright Crown Copyright 2019
* @license Apache-2.0
*/
/**
* @author n1474335 [n1474335@gmail.com]
* @author Matt C [matt@artemisbot.uk]
* @copyright Crown Copyright 2016
* @license Apache-2.0
*/
/**
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2016
* @license Apache-2.0
*/
/**
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*/
/**
* Base64 functions.
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2016
* @license Apache-2.0
*/
/**
* Custom error type for handling Dish type errors.
* i.e. where the Dish cannot be successfully translated between types
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*/
/**
* Custom error type for handling operation input errors.
* i.e. where the operation can handle the error and print a message to the screen.
*
* @author d98762625 [d98762625@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*/
/**
* CyberChef - The Cyber Swiss Army Knife
*
* @copyright Crown Copyright 2016
* @license Apache-2.0
*
* Copyright 2016 Crown Copyright
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/**
* Decimal functions.
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*/
/**
* File signatures and extractor functions
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*
*/
/**
* File type functions
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*
*/
/**
* Identifier extraction functions
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2016
* @license Apache-2.0
*
*/
/**
* Sorting functions
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2022
* @license Apache-2.0
*
*/
/**
* Stream class for parsing binary protocols.
*
* @author n1474335 [n1474335@gmail.com]
* @author tlwr [toby@toby.codes]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*
*/
/**
* Various delimiters
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*/
-2
View File
@@ -1,2 +0,0 @@
/*! For license information please see Serialise.js.LICENSE.txt */
(()=>{var e={48583:(e,t,r)=>{"use strict";function n(e,t){if(e===t)return 0;for(var r=e.length,n=t.length,i=0,o=Math.min(r,n);i<o;++i)if(e[i]!==t[i]){r=e[i],n=t[i];break}return r<n?-1:n<r?1:0}function i(e){return r.g.Buffer&&"function"==typeof r.g.Buffer.isBuffer?r.g.Buffer.isBuffer(e):!(null==e||!e._isBuffer)}var o=r(89539),s=Object.prototype.hasOwnProperty,a=Array.prototype.slice,u="foo"===function(){}.name;function c(e){return Object.prototype.toString.call(e)}function f(e){return!i(e)&&"function"==typeof r.g.ArrayBuffer&&("function"==typeof ArrayBuffer.isView?ArrayBuffer.isView(e):!!e&&(e instanceof DataView||!!(e.buffer&&e.buffer instanceof ArrayBuffer)))}var l=e.exports=m,h=/\s*function\s+([^\(\s]*)\s*/;function p(e){if(o.isFunction(e)){if(u)return e.name;var t=e.toString().match(h);return t&&t[1]}}function d(e,t){return"string"==typeof e?e.length<t?e:e.slice(0,t):e}function y(e){if(u||!o.isFunction(e))return o.inspect(e);var t=p(e);return"[Function"+(t?": "+t:"")+"]"}function g(e,t,r,n,i){throw new l.AssertionError({message:r,actual:e,expected:t,operator:n,stackStartFunction:i})}function m(e,t){e||g(e,!0,t,"==",l.ok)}function v(e,t,r,s){if(e===t)return!0;if(i(e)&&i(t))return 0===n(e,t);if(o.isDate(e)&&o.isDate(t))return e.getTime()===t.getTime();if(o.isRegExp(e)&&o.isRegExp(t))return e.source===t.source&&e.global===t.global&&e.multiline===t.multiline&&e.lastIndex===t.lastIndex&&e.ignoreCase===t.ignoreCase;if(null!==e&&"object"==typeof e||null!==t&&"object"==typeof t){if(f(e)&&f(t)&&c(e)===c(t)&&!(e instanceof Float32Array||e instanceof Float64Array))return 0===n(new Uint8Array(e.buffer),new Uint8Array(t.buffer));if(i(e)!==i(t))return!1;var u=(s=s||{actual:[],expected:[]}).actual.indexOf(e);return-1!==u&&u===s.expected.indexOf(t)||(s.actual.push(e),s.expected.push(t),function(e,t,r,n){if(null==e||null==t)return!1;if(o.isPrimitive(e)||o.isPrimitive(t))return e===t;if(r&&Object.getPrototypeOf(e)!==Object.getPrototypeOf(t))return!1;var i=b(e),s=b(t);if(i&&!s||!i&&s)return!1;if(i)return v(e=a.call(e),t=a.call(t),r);var u,c,f=E(e),l=E(t);if(f.length!==l.length)return!1;for(f.sort(),l.sort(),c=f.length-1;c>=0;c--)if(f[c]!==l[c])return!1;for(c=f.length-1;c>=0;c--)if(!v(e[u=f[c]],t[u],r,n))return!1;return!0}(e,t,r,s))}return r?e===t:e==t}function b(e){return"[object Arguments]"==Object.prototype.toString.call(e)}function _(e,t){if(!e||!t)return!1;if("[object RegExp]"==Object.prototype.toString.call(t))return t.test(e);try{if(e instanceof t)return!0}catch(e){}return!Error.isPrototypeOf(t)&&!0===t.call({},e)}function w(e,t,r,n){var i;if("function"!=typeof t)throw new TypeError('"block" argument must be a function');"string"==typeof r&&(n=r,r=null),i=function(e){var t;try{e()}catch(e){t=e}return t}(t),n=(r&&r.name?" ("+r.name+").":".")+(n?" "+n:"."),e&&!i&&g(i,r,"Missing expected exception"+n);var s="string"==typeof n,a=!e&&i&&!r;if((!e&&o.isError(i)&&s&&_(i,r)||a)&&g(i,r,"Got unwanted exception"+n),e&&i&&r&&!_(i,r)||!e&&i)throw i}l.AssertionError=function(e){this.name="AssertionError",this.actual=e.actual,this.expected=e.expected,this.operator=e.operator,e.message?(this.message=e.message,this.generatedMessage=!1):(this.message=function(e){return d(y(e.actual),128)+" "+e.operator+" "+d(y(e.expected),128)}(this),this.generatedMessage=!0);var t=e.stackStartFunction||g;if(Error.captureStackTrace)Error.captureStackTrace(this,t);else{var r=new Error;if(r.stack){var n=r.stack,i=p(t),o=n.indexOf("\n"+i);if(o>=0){var s=n.indexOf("\n",o+1);n=n.substring(s+1)}this.stack=n}}},o.inherits(l.AssertionError,Error),l.fail=g,l.ok=m,l.equal=function(e,t,r){e!=t&&g(e,t,r,"==",l.equal)},l.notEqual=function(e,t,r){e==t&&g(e,t,r,"!=",l.notEqual)},l.deepEqual=function(e,t,r){v(e,t,!1)||g(e,t,r,"deepEqual",l.deepEqual)},l.deepStrictEqual=function(e,t,r){v(e,t,!0)||g(e,t,r,"deepStrictEqual",l.deepStrictEqual)},l.notDeepEqual=function(e,t,r){v(e,t,!1)&&g(e,t,r,"notDeepEqual",l.notDeepEqual)},l.notDeepStrictEqual=function e(t,r,n){v(t,r,!0)&&g(t,r,n,"notDeepStrictEqual",e)},l.strictEqual=function(e,t,r){e!==t&&g(e,t,r,"===",l.strictEqual)},l.notStrictEqual=function(e,t,r){e===t&&g(e,t,r,"!==",l.notStrictEqual)},l.throws=function(e,t,r){w(!0,e,t,r)},l.doesNotThrow=function(e,t,r){w(!1,e,t,r)},l.ifError=function(e){if(e)throw e};var E=Object.keys||function(e){var t=[];for(var r in e)s.call(e,r)&&t.push(r);return t}},17457:(e,t,r)=>{"use strict";var n=r(98844),i=r(6724),o=r(5117),s=r(18189);e.exports={Service:i.Service,assembleProtocol:o.assembleProtocol,discoverProtocol:i.discoverProtocol,parse:function(e,t){var r=o.read(e);return r.protocol?i.Service.forProtocol(r,t):n.Type.forSchema(r,t)},readProtocol:o.readProtocol,readSchema:o.readSchema},s.copyOwnProperties(n,e.exports)},98844:(e,t,r)=>{"use strict";var n=r(87608);e.exports={Type:n.Type,parse:function(e,t){var r;if("string"==typeof e)try{r=JSON.parse(e)}catch(t){r=e}else r=e;return n.Type.forSchema(r,t)},types:n.builtins,combine:n.Type.forTypes,infer:n.Type.forValue}},97064:(e,t,r)=>{Line truncated
-160
View File
@@ -1,160 +0,0 @@
/*!
* The buffer module from node.js, for the browser.
*
* @author Feross Aboukhadijeh <feross@feross.org> <http://feross.org>
* @license MIT
*/
/*!
* The buffer module from node.js, for the browser.
*
* @author Feross Aboukhadijeh <https://feross.org>
* @license MIT
*/
/*! *****************************************************************************
Copyright (c) Microsoft Corporation.
Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.
***************************************************************************** */
/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */
/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */
/*! safe-buffer. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */
/**
* @author Danh4 [dan.h4@ncsc.gov.uk]
* @copyright Crown Copyright 2020
* @license Apache-2.0
*/
/**
* @author d98762625 [d98762625@gmail.com]
* @copyright Crown Copyright 2019
* @license Apache-2.0
*/
/**
* @author dmfj [dominic@dmfj.io]
* @copyright Crown Copyright 2020
* @license Apache-2.0
*/
/**
* @author jarrodconnolly [jarrod@nestedquotes.ca]
* @copyright Crown Copyright 2019
* @license Apache-2.0
*/
/**
* @author n1474335 [n1474335@gmail.com]
* @author Matt C [matt@artemisbot.uk]
* @copyright Crown Copyright 2016
* @license Apache-2.0
*/
/**
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2016
* @license Apache-2.0
*/
/**
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*/
/**
* Base64 functions.
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2016
* @license Apache-2.0
*/
/**
* Custom error type for handling Dish type errors.
* i.e. where the Dish cannot be successfully translated between types
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*/
/**
* Custom error type for handling operation input errors.
* i.e. where the operation can handle the error and print a message to the screen.
*
* @author d98762625 [d98762625@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*/
/**
* CyberChef - The Cyber Swiss Army Knife
*
* @copyright Crown Copyright 2016
* @license Apache-2.0
*
* Copyright 2016 Crown Copyright
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/**
* Decimal functions.
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*/
/**
* File signatures and extractor functions
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*
*/
/**
* File type functions
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*
*/
/**
* Stream class for parsing binary protocols.
*
* @author n1474335 [n1474335@gmail.com]
* @author tlwr [toby@toby.codes]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*
*/
-2
View File
@@ -1,2 +0,0 @@
/*! For license information please see Shellcode.js.LICENSE.txt */
(()=>{var e={79742:(e,t)=>{"use strict";t.byteLength=function(e){var t=s(e),r=t[0],n=t[1];return 3*(r+n)/4-n},t.toByteArray=function(e){var t,r,o=s(e),a=o[0],u=o[1],c=new i(function(e,t,r){return 3*(t+r)/4-r}(0,a,u)),A=0,l=u>0?a-4:a;for(r=0;r<l;r+=4)t=n[e.charCodeAt(r)]<<18|n[e.charCodeAt(r+1)]<<12|n[e.charCodeAt(r+2)]<<6|n[e.charCodeAt(r+3)],c[A++]=t>>16&255,c[A++]=t>>8&255,c[A++]=255&t;return 2===u&&(t=n[e.charCodeAt(r)]<<2|n[e.charCodeAt(r+1)]>>4,c[A++]=255&t),1===u&&(t=n[e.charCodeAt(r)]<<10|n[e.charCodeAt(r+1)]<<4|n[e.charCodeAt(r+2)]>>2,c[A++]=t>>8&255,c[A++]=255&t),c},t.fromByteArray=function(e){for(var t,n=e.length,i=n%3,o=[],a=16383,u=0,s=n-i;u<s;u+=a)o.push(c(e,u,u+a>s?s:u+a));return 1===i?(t=e[n-1],o.push(r[t>>2]+r[t<<4&63]+"==")):2===i&&(t=(e[n-2]<<8)+e[n-1],o.push(r[t>>10]+r[t>>4&63]+r[t<<2&63]+"=")),o.join("")};for(var r=[],n=[],i="undefined"!=typeof Uint8Array?Uint8Array:Array,o="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",a=0,u=o.length;a<u;++a)r[a]=o[a],n[o.charCodeAt(a)]=a;function s(e){var t=e.length;if(t%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var r=e.indexOf("=");return-1===r&&(r=t),[r,r===t?0:4-r%4]}function c(e,t,n){for(var i,o,a=[],u=t;u<n;u+=3)i=(e[u]<<16&16711680)+(e[u+1]<<8&65280)+(255&e[u+2]),a.push(r[(o=i)>>18&63]+r[o>>12&63]+r[o>>6&63]+r[63&o]);return a.join("")}n["-".charCodeAt(0)]=62,n["_".charCodeAt(0)]=63},48764:(e,t,r)=>{"use strict";const n=r(79742),i=r(80645),o="function"==typeof Symbol&&"function"==typeof Symbol.for?Symbol.for("nodejs.util.inspect.custom"):null;t.Buffer=s,t.INSPECT_MAX_BYTES=50;const a=2147483647;function u(e){if(e>a)throw new RangeError('The value "'+e+'" is invalid for option "size"');const t=new Uint8Array(e);return Object.setPrototypeOf(t,s.prototype),t}function s(e,t,r){if("number"==typeof e){if("string"==typeof t)throw new TypeError('The "string" argument must be of type string. Received type number');return l(e)}return c(e,t,r)}function c(e,t,r){if("string"==typeof e)return function(e,t){if("string"==typeof t&&""!==t||(t="utf8"),!s.isEncoding(t))throw new TypeError("Unknown encoding: "+t);const r=0|p(e,t);let n=u(r);const i=n.write(e,t);return i!==r&&(n=n.slice(0,i)),n}(e,t);if(ArrayBuffer.isView(e))return function(e){if(Y(e,Uint8Array)){const t=new Uint8Array(e);return B(t.buffer,t.byteOffset,t.byteLength)}return f(e)}(e);if(null==e)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e);if(Y(e,ArrayBuffer)||e&&Y(e.buffer,ArrayBuffer))return B(e,t,r);if("undefined"!=typeof SharedArrayBuffer&&(Y(e,SharedArrayBuffer)||e&&Y(e.buffer,SharedArrayBuffer)))return B(e,t,r);if("number"==typeof e)throw new TypeError('The "value" argument must not be of type number. Received type number');const n=e.valueOf&&e.valueOf();if(null!=n&&n!==e)return s.from(n,t,r);const i=function(e){if(s.isBuffer(e)){const t=0|S(e.length),r=u(t);return 0===r.length||e.copy(r,0,0,t),r}return void 0!==e.length?"number"!=typeof e.length||z(e.length)?u(0):f(e):"Buffer"===e.type&&Array.isArray(e.data)?f(e.data):void 0}(e);if(i)return i;if("undefined"!=typeof Symbol&&null!=Symbol.toPrimitive&&"function"==typeof e[Symbol.toPrimitive])return s.from(e[Symbol.toPrimitive]("string"),t,r);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e)}function A(e){if("number"!=typeof e)throw new TypeError('"size" argument must be of type number');if(e<0)throw new RangeError('The value "'+e+'" is invalid for option "size"')}function l(e){return A(e),u(e<0?0:0|S(e))}function f(e){const t=e.length<0?0:0|S(e.length),r=u(t);for(let n=0;n<t;n+=1)r[n]=255&e[n];return r}function B(e,t,r){if(t<0||e.byteLength<t)throw new RangeError('"offset" is outside of buffer bounds');if(e.byteLength<t+(r||0))throw new RangeError('"length" is outside of buffer bounds');let n;return n=void 0===t&&void 0===r?new Uint8Array(e):void 0===r?new Uint8Array(e,t):new Uint8Array(e,t,r),Object.setPrototypeOf(n,s.prototype),n}function S(e){if(e>=a)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+a.toString(16)+" bytes");return 0|e}function p(e,t){if(s.isBuffer(e))return e.length;if(ArrayBuffer.isView(e)||Y(e,ArrayBuffer))return e.byteLength;if("string"!=typeof e)throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof e);const r=e.length,n=arguments.length>2&&!0===arguments[2];if(!n&&0===r)return 0;let i=!1;for(;;)switch(t){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":return _(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return j(e).length;default:if(i)return n?-1:_(e).length;t=(""+t).toLowerCase(),i=!0}}function D(e,t,r){let n=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<Line truncated
-118
View File
@@ -1,118 +0,0 @@
/*!
* The buffer module from node.js, for the browser.
*
* @author Feross Aboukhadijeh <https://feross.org>
* @license MIT
*/
/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */
/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */
/**
* @author d98762625 [d98762625@gmail.com]
* @copyright Crown Copyright 2019
* @license Apache-2.0
*/
/**
* @author n1474335 [n1474335@gmail.com]
* @author Matt C [matt@artemisbot.uk]
* @copyright Crown Copyright 2016
* @license Apache-2.0
*/
/**
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2016
* @license Apache-2.0
*/
/**
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2017
* @license Apache-2.0
*/
/**
* Base64 functions.
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2016
* @license Apache-2.0
*/
/**
* Custom error type for handling Dish type errors.
* i.e. where the Dish cannot be successfully translated between types
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*/
/**
* Custom error type for handling operation input errors.
* i.e. where the operation can handle the error and print a message to the screen.
*
* @author d98762625 [d98762625@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*/
/**
* CyberChef - The Cyber Swiss Army Knife
*
* @copyright Crown Copyright 2016
* @license Apache-2.0
*
* Copyright 2016 Crown Copyright
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/**
* Decimal functions.
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*/
/**
* File signatures and extractor functions
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*
*/
/**
* File type functions
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*
*/
/**
* Stream class for parsing binary protocols.
*
* @author n1474335 [n1474335@gmail.com]
* @author tlwr [toby@toby.codes]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*
*/
-2
View File
@@ -1,2 +0,0 @@
/*! For license information please see URL.js.LICENSE.txt */
(()=>{var e={79742:(e,t)=>{"use strict";t.byteLength=function(e){var t=s(e),r=t[0],n=t[1];return 3*(r+n)/4-n},t.toByteArray=function(e){var t,r,o=s(e),a=o[0],u=o[1],c=new i(function(e,t,r){return 3*(t+r)/4-r}(0,a,u)),l=0,f=u>0?a-4:a;for(r=0;r<f;r+=4)t=n[e.charCodeAt(r)]<<18|n[e.charCodeAt(r+1)]<<12|n[e.charCodeAt(r+2)]<<6|n[e.charCodeAt(r+3)],c[l++]=t>>16&255,c[l++]=t>>8&255,c[l++]=255&t;return 2===u&&(t=n[e.charCodeAt(r)]<<2|n[e.charCodeAt(r+1)]>>4,c[l++]=255&t),1===u&&(t=n[e.charCodeAt(r)]<<10|n[e.charCodeAt(r+1)]<<4|n[e.charCodeAt(r+2)]>>2,c[l++]=t>>8&255,c[l++]=255&t),c},t.fromByteArray=function(e){for(var t,n=e.length,i=n%3,o=[],a=16383,u=0,s=n-i;u<s;u+=a)o.push(c(e,u,u+a>s?s:u+a));return 1===i?(t=e[n-1],o.push(r[t>>2]+r[t<<4&63]+"==")):2===i&&(t=(e[n-2]<<8)+e[n-1],o.push(r[t>>10]+r[t>>4&63]+r[t<<2&63]+"=")),o.join("")};for(var r=[],n=[],i="undefined"!=typeof Uint8Array?Uint8Array:Array,o="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",a=0,u=o.length;a<u;++a)r[a]=o[a],n[o.charCodeAt(a)]=a;function s(e){var t=e.length;if(t%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var r=e.indexOf("=");return-1===r&&(r=t),[r,r===t?0:4-r%4]}function c(e,t,n){for(var i,o,a=[],u=t;u<n;u+=3)i=(e[u]<<16&16711680)+(e[u+1]<<8&65280)+(255&e[u+2]),a.push(r[(o=i)>>18&63]+r[o>>12&63]+r[o>>6&63]+r[63&o]);return a.join("")}n["-".charCodeAt(0)]=62,n["_".charCodeAt(0)]=63},48764:(e,t,r)=>{"use strict";const n=r(79742),i=r(80645),o="function"==typeof Symbol&&"function"==typeof Symbol.for?Symbol.for("nodejs.util.inspect.custom"):null;t.Buffer=s,t.INSPECT_MAX_BYTES=50;const a=2147483647;function u(e){if(e>a)throw new RangeError('The value "'+e+'" is invalid for option "size"');const t=new Uint8Array(e);return Object.setPrototypeOf(t,s.prototype),t}function s(e,t,r){if("number"==typeof e){if("string"==typeof t)throw new TypeError('The "string" argument must be of type string. Received type number');return f(e)}return c(e,t,r)}function c(e,t,r){if("string"==typeof e)return function(e,t){if("string"==typeof t&&""!==t||(t="utf8"),!s.isEncoding(t))throw new TypeError("Unknown encoding: "+t);const r=0|m(e,t);let n=u(r);const i=n.write(e,t);return i!==r&&(n=n.slice(0,i)),n}(e,t);if(ArrayBuffer.isView(e))return function(e){if(J(e,Uint8Array)){const t=new Uint8Array(e);return p(t.buffer,t.byteOffset,t.byteLength)}return h(e)}(e);if(null==e)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e);if(J(e,ArrayBuffer)||e&&J(e.buffer,ArrayBuffer))return p(e,t,r);if("undefined"!=typeof SharedArrayBuffer&&(J(e,SharedArrayBuffer)||e&&J(e.buffer,SharedArrayBuffer)))return p(e,t,r);if("number"==typeof e)throw new TypeError('The "value" argument must not be of type number. Received type number');const n=e.valueOf&&e.valueOf();if(null!=n&&n!==e)return s.from(n,t,r);const i=function(e){if(s.isBuffer(e)){const t=0|d(e.length),r=u(t);return 0===r.length||e.copy(r,0,0,t),r}return void 0!==e.length?"number"!=typeof e.length||Z(e.length)?u(0):h(e):"Buffer"===e.type&&Array.isArray(e.data)?h(e.data):void 0}(e);if(i)return i;if("undefined"!=typeof Symbol&&null!=Symbol.toPrimitive&&"function"==typeof e[Symbol.toPrimitive])return s.from(e[Symbol.toPrimitive]("string"),t,r);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e)}function l(e){if("number"!=typeof e)throw new TypeError('"size" argument must be of type number');if(e<0)throw new RangeError('The value "'+e+'" is invalid for option "size"')}function f(e){return l(e),u(e<0?0:0|d(e))}function h(e){const t=e.length<0?0:0|d(e.length),r=u(t);for(let n=0;n<t;n+=1)r[n]=255&e[n];return r}function p(e,t,r){if(t<0||e.byteLength<t)throw new RangeError('"offset" is outside of buffer bounds');if(e.byteLength<t+(r||0))throw new RangeError('"length" is outside of buffer bounds');let n;return n=void 0===t&&void 0===r?new Uint8Array(e):void 0===r?new Uint8Array(e,t):new Uint8Array(e,t,r),Object.setPrototypeOf(n,s.prototype),n}function d(e){if(e>=a)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+a.toString(16)+" bytes");return 0|e}function m(e,t){if(s.isBuffer(e))return e.length;if(ArrayBuffer.isView(e)||J(e,ArrayBuffer))return e.byteLength;if("string"!=typeof e)throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof e);const r=e.length,n=arguments.length>2&&!0===arguments[2];if(!n&&0===r)return 0;let i=!1;for(;;)switch(t){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":return V(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return Y(e).length;default:if(i)return n?-1:V(e).length;t=(""+t).toLowerCase(),i=!0}}function y(e,t,r){let n=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<Line truncated
-114
View File
@@ -1,114 +0,0 @@
/*!
* The buffer module from node.js, for the browser.
*
* @author Feross Aboukhadijeh <https://feross.org>
* @license MIT
*/
/*! https://mths.be/punycode v1.3.2 by @mathias */
/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */
/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */
/**
* @author d98762625 [d98762625@gmail.com]
* @copyright Crown Copyright 2019
* @license Apache-2.0
*/
/**
* @author n1474335 [n1474335@gmail.com]
* @author Matt C [matt@artemisbot.uk]
* @copyright Crown Copyright 2016
* @license Apache-2.0
*/
/**
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2016
* @license Apache-2.0
*/
/**
* Base64 functions.
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2016
* @license Apache-2.0
*/
/**
* Custom error type for handling Dish type errors.
* i.e. where the Dish cannot be successfully translated between types
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*/
/**
* Custom error type for handling operation input errors.
* i.e. where the operation can handle the error and print a message to the screen.
*
* @author d98762625 [d98762625@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*/
/**
* CyberChef - The Cyber Swiss Army Knife
*
* @copyright Crown Copyright 2016
* @license Apache-2.0
*
* Copyright 2016 Crown Copyright
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/**
* Decimal functions.
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*/
/**
* File signatures and extractor functions
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*
*/
/**
* File type functions
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*
*/
/**
* Stream class for parsing binary protocols.
*
* @author n1474335 [n1474335@gmail.com]
* @author tlwr [toby@toby.codes]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*
*/
-2
View File
@@ -1,2 +0,0 @@
/*! For license information please see UserAgent.js.LICENSE.txt */
(()=>{var e={79742:(e,t)=>{"use strict";t.byteLength=function(e){var t=s(e),r=t[0],n=t[1];return 3*(r+n)/4-n},t.toByteArray=function(e){var t,r,o=s(e),a=o[0],u=o[1],c=new i(function(e,t,r){return 3*(t+r)/4-r}(0,a,u)),l=0,f=u>0?a-4:a;for(r=0;r<f;r+=4)t=n[e.charCodeAt(r)]<<18|n[e.charCodeAt(r+1)]<<12|n[e.charCodeAt(r+2)]<<6|n[e.charCodeAt(r+3)],c[l++]=t>>16&255,c[l++]=t>>8&255,c[l++]=255&t;return 2===u&&(t=n[e.charCodeAt(r)]<<2|n[e.charCodeAt(r+1)]>>4,c[l++]=255&t),1===u&&(t=n[e.charCodeAt(r)]<<10|n[e.charCodeAt(r+1)]<<4|n[e.charCodeAt(r+2)]>>2,c[l++]=t>>8&255,c[l++]=255&t),c},t.fromByteArray=function(e){for(var t,n=e.length,i=n%3,o=[],a=16383,u=0,s=n-i;u<s;u+=a)o.push(c(e,u,u+a>s?s:u+a));return 1===i?(t=e[n-1],o.push(r[t>>2]+r[t<<4&63]+"==")):2===i&&(t=(e[n-2]<<8)+e[n-1],o.push(r[t>>10]+r[t>>4&63]+r[t<<2&63]+"=")),o.join("")};for(var r=[],n=[],i="undefined"!=typeof Uint8Array?Uint8Array:Array,o="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",a=0,u=o.length;a<u;++a)r[a]=o[a],n[o.charCodeAt(a)]=a;function s(e){var t=e.length;if(t%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var r=e.indexOf("=");return-1===r&&(r=t),[r,r===t?0:4-r%4]}function c(e,t,n){for(var i,o,a=[],u=t;u<n;u+=3)i=(e[u]<<16&16711680)+(e[u+1]<<8&65280)+(255&e[u+2]),a.push(r[(o=i)>>18&63]+r[o>>12&63]+r[o>>6&63]+r[63&o]);return a.join("")}n["-".charCodeAt(0)]=62,n["_".charCodeAt(0)]=63},48764:(e,t,r)=>{"use strict";const n=r(79742),i=r(80645),o="function"==typeof Symbol&&"function"==typeof Symbol.for?Symbol.for("nodejs.util.inspect.custom"):null;t.Buffer=s,t.INSPECT_MAX_BYTES=50;const a=2147483647;function u(e){if(e>a)throw new RangeError('The value "'+e+'" is invalid for option "size"');const t=new Uint8Array(e);return Object.setPrototypeOf(t,s.prototype),t}function s(e,t,r){if("number"==typeof e){if("string"==typeof t)throw new TypeError('The "string" argument must be of type string. Received type number');return f(e)}return c(e,t,r)}function c(e,t,r){if("string"==typeof e)return function(e,t){if("string"==typeof t&&""!==t||(t="utf8"),!s.isEncoding(t))throw new TypeError("Unknown encoding: "+t);const r=0|m(e,t);let n=u(r);const i=n.write(e,t);return i!==r&&(n=n.slice(0,i)),n}(e,t);if(ArrayBuffer.isView(e))return function(e){if(J(e,Uint8Array)){const t=new Uint8Array(e);return h(t.buffer,t.byteOffset,t.byteLength)}return p(e)}(e);if(null==e)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e);if(J(e,ArrayBuffer)||e&&J(e.buffer,ArrayBuffer))return h(e,t,r);if("undefined"!=typeof SharedArrayBuffer&&(J(e,SharedArrayBuffer)||e&&J(e.buffer,SharedArrayBuffer)))return h(e,t,r);if("number"==typeof e)throw new TypeError('The "value" argument must not be of type number. Received type number');const n=e.valueOf&&e.valueOf();if(null!=n&&n!==e)return s.from(n,t,r);const i=function(e){if(s.isBuffer(e)){const t=0|d(e.length),r=u(t);return 0===r.length||e.copy(r,0,0,t),r}return void 0!==e.length?"number"!=typeof e.length||Z(e.length)?u(0):p(e):"Buffer"===e.type&&Array.isArray(e.data)?p(e.data):void 0}(e);if(i)return i;if("undefined"!=typeof Symbol&&null!=Symbol.toPrimitive&&"function"==typeof e[Symbol.toPrimitive])return s.from(e[Symbol.toPrimitive]("string"),t,r);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e)}function l(e){if("number"!=typeof e)throw new TypeError('"size" argument must be of type number');if(e<0)throw new RangeError('The value "'+e+'" is invalid for option "size"')}function f(e){return l(e),u(e<0?0:0|d(e))}function p(e){const t=e.length<0?0:0|d(e.length),r=u(t);for(let n=0;n<t;n+=1)r[n]=255&e[n];return r}function h(e,t,r){if(t<0||e.byteLength<t)throw new RangeError('"offset" is outside of buffer bounds');if(e.byteLength<t+(r||0))throw new RangeError('"length" is outside of buffer bounds');let n;return n=void 0===t&&void 0===r?new Uint8Array(e):void 0===r?new Uint8Array(e,t):new Uint8Array(e,t,r),Object.setPrototypeOf(n,s.prototype),n}function d(e){if(e>=a)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+a.toString(16)+" bytes");return 0|e}function m(e,t){if(s.isBuffer(e))return e.length;if(ArrayBuffer.isView(e)||J(e,ArrayBuffer))return e.byteLength;if("string"!=typeof e)throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof e);const r=e.length,n=arguments.length>2&&!0===arguments[2];if(!n&&0===r)return 0;let i=!1;for(;;)switch(t){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":return H(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return Y(e).length;default:if(i)return n?-1:H(e).length;t=(""+t).toLowerCase(),i=!0}}function g(e,t,r){let n=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<Line truncated
-112
View File
@@ -1,112 +0,0 @@
/*!
* The buffer module from node.js, for the browser.
*
* @author Feross Aboukhadijeh <https://feross.org>
* @license MIT
*/
/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */
/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */
/**
* @author d98762625 [d98762625@gmail.com]
* @copyright Crown Copyright 2019
* @license Apache-2.0
*/
/**
* @author n1474335 [n1474335@gmail.com]
* @author Matt C [matt@artemisbot.uk]
* @copyright Crown Copyright 2016
* @license Apache-2.0
*/
/**
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2016
* @license Apache-2.0
*/
/**
* Base64 functions.
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2016
* @license Apache-2.0
*/
/**
* Custom error type for handling Dish type errors.
* i.e. where the Dish cannot be successfully translated between types
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*/
/**
* Custom error type for handling operation input errors.
* i.e. where the operation can handle the error and print a message to the screen.
*
* @author d98762625 [d98762625@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*/
/**
* CyberChef - The Cyber Swiss Army Knife
*
* @copyright Crown Copyright 2016
* @license Apache-2.0
*
* Copyright 2016 Crown Copyright
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/**
* Decimal functions.
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*/
/**
* File signatures and extractor functions
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*
*/
/**
* File type functions
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*
*/
/**
* Stream class for parsing binary protocols.
*
* @author n1474335 [n1474335@gmail.com]
* @author tlwr [toby@toby.codes]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*
*/
-2
View File
@@ -1,2 +0,0 @@
/*! For license information please see Yara.js.LICENSE.txt */
(()=>{var A={79742:(A,Q)=>{"use strict";Q.byteLength=function(A){var Q=i(A),I=Q[0],g=Q[1];return 3*(I+g)/4-g},Q.toByteArray=function(A){var Q,I,C=i(A),E=C[0],D=C[1],o=new B(function(A,Q,I){return 3*(Q+I)/4-I}(0,E,D)),w=0,F=D>0?E-4:E;for(I=0;I<F;I+=4)Q=g[A.charCodeAt(I)]<<18|g[A.charCodeAt(I+1)]<<12|g[A.charCodeAt(I+2)]<<6|g[A.charCodeAt(I+3)],o[w++]=Q>>16&255,o[w++]=Q>>8&255,o[w++]=255&Q;return 2===D&&(Q=g[A.charCodeAt(I)]<<2|g[A.charCodeAt(I+1)]>>4,o[w++]=255&Q),1===D&&(Q=g[A.charCodeAt(I)]<<10|g[A.charCodeAt(I+1)]<<4|g[A.charCodeAt(I+2)]>>2,o[w++]=Q>>8&255,o[w++]=255&Q),o},Q.fromByteArray=function(A){for(var Q,g=A.length,B=g%3,C=[],E=16383,D=0,i=g-B;D<i;D+=E)C.push(o(A,D,D+E>i?i:D+E));return 1===B?(Q=A[g-1],C.push(I[Q>>2]+I[Q<<4&63]+"==")):2===B&&(Q=(A[g-2]<<8)+A[g-1],C.push(I[Q>>10]+I[Q>>4&63]+I[Q<<2&63]+"=")),C.join("")};for(var I=[],g=[],B="undefined"!=typeof Uint8Array?Uint8Array:Array,C="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",E=0,D=C.length;E<D;++E)I[E]=C[E],g[C.charCodeAt(E)]=E;function i(A){var Q=A.length;if(Q%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var I=A.indexOf("=");return-1===I&&(I=Q),[I,I===Q?0:4-I%4]}function o(A,Q,g){for(var B,C,E=[],D=Q;D<g;D+=3)B=(A[D]<<16&16711680)+(A[D+1]<<8&65280)+(255&A[D+2]),E.push(I[(C=B)>>18&63]+I[C>>12&63]+I[C>>6&63]+I[63&C]);return E.join("")}g["-".charCodeAt(0)]=62,g["_".charCodeAt(0)]=63},48764:(A,Q,I)=>{"use strict";const g=I(79742),B=I(80645),C="function"==typeof Symbol&&"function"==typeof Symbol.for?Symbol.for("nodejs.util.inspect.custom"):null;Q.Buffer=i,Q.INSPECT_MAX_BYTES=50;const E=2147483647;function D(A){if(A>E)throw new RangeError('The value "'+A+'" is invalid for option "size"');const Q=new Uint8Array(A);return Object.setPrototypeOf(Q,i.prototype),Q}function i(A,Q,I){if("number"==typeof A){if("string"==typeof Q)throw new TypeError('The "string" argument must be of type string. Received type number');return F(A)}return o(A,Q,I)}function o(A,Q,I){if("string"==typeof A)return function(A,Q){if("string"==typeof Q&&""!==Q||(Q="utf8"),!i.isEncoding(Q))throw new TypeError("Unknown encoding: "+Q);const I=0|a(A,Q);let g=D(I);const B=g.write(A,Q);return B!==I&&(g=g.slice(0,B)),g}(A,Q);if(ArrayBuffer.isView(A))return function(A){if(v(A,Uint8Array)){const Q=new Uint8Array(A);return G(Q.buffer,Q.byteOffset,Q.byteLength)}return y(A)}(A);if(null==A)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof A);if(v(A,ArrayBuffer)||A&&v(A.buffer,ArrayBuffer))return G(A,Q,I);if("undefined"!=typeof SharedArrayBuffer&&(v(A,SharedArrayBuffer)||A&&v(A.buffer,SharedArrayBuffer)))return G(A,Q,I);if("number"==typeof A)throw new TypeError('The "value" argument must not be of type number. Received type number');const g=A.valueOf&&A.valueOf();if(null!=g&&g!==A)return i.from(g,Q,I);const B=function(A){if(i.isBuffer(A)){const Q=0|c(A.length),I=D(Q);return 0===I.length||A.copy(I,0,0,Q),I}return void 0!==A.length?"number"!=typeof A.length||P(A.length)?D(0):y(A):"Buffer"===A.type&&Array.isArray(A.data)?y(A.data):void 0}(A);if(B)return B;if("undefined"!=typeof Symbol&&null!=Symbol.toPrimitive&&"function"==typeof A[Symbol.toPrimitive])return i.from(A[Symbol.toPrimitive]("string"),Q,I);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof A)}function w(A){if("number"!=typeof A)throw new TypeError('"size" argument must be of type number');if(A<0)throw new RangeError('The value "'+A+'" is invalid for option "size"')}function F(A){return w(A),D(A<0?0:0|c(A))}function y(A){const Q=A.length<0?0:0|c(A.length),I=D(Q);for(let g=0;g<Q;g+=1)I[g]=255&A[g];return I}function G(A,Q,I){if(Q<0||A.byteLength<Q)throw new RangeError('"offset" is outside of buffer bounds');if(A.byteLength<Q+(I||0))throw new RangeError('"length" is outside of buffer bounds');let g;return g=void 0===Q&&void 0===I?new Uint8Array(A):void 0===I?new Uint8Array(A,Q):new Uint8Array(A,Q,I),Object.setPrototypeOf(g,i.prototype),g}function c(A){if(A>=E)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+E.toString(16)+" bytes");return 0|A}function a(A,Q){if(i.isBuffer(A))return A.length;if(ArrayBuffer.isView(A)||v(A,ArrayBuffer))return A.byteLength;if("string"!=typeof A)throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof A);const I=A.length,g=arguments.length>2&&!0===arguments[2];if(!g&&0===I)return 0;let B=!1;for(;;)switch(Q){case"ascii":case"latin1":case"binary":return I;case"utf8":case"utf-8":return X(A).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*I;case"hex":return I>>>1;case"base64":return O(A).length;default:if(B)return g?-1:X(A).length;Q=(""+Q).toLowerCase(),B=!0}}function N(A,Q,I){let g=!1;if((void 0===Q||Q<0)&&(Q=0),Q>this.length)return"";if((void 0===I||I>this.length)&&(I=this.length),I<Line truncated
-118
View File
@@ -1,118 +0,0 @@
/*!
* The buffer module from node.js, for the browser.
*
* @author Feross Aboukhadijeh <https://feross.org>
* @license MIT
*/
/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */
/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */
/**
* @author Matt C [matt@artemisbot.uk]
* @copyright Crown Copyright 2019
* @license Apache-2.0
*/
/**
* @author d98762625 [d98762625@gmail.com]
* @copyright Crown Copyright 2019
* @license Apache-2.0
*/
/**
* @author n1474335 [n1474335@gmail.com]
* @author Matt C [matt@artemisbot.uk]
* @copyright Crown Copyright 2016
* @license Apache-2.0
*/
/**
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2016
* @license Apache-2.0
*/
/**
* Base64 functions.
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2016
* @license Apache-2.0
*/
/**
* Custom error type for handling Dish type errors.
* i.e. where the Dish cannot be successfully translated between types
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*/
/**
* Custom error type for handling operation input errors.
* i.e. where the operation can handle the error and print a message to the screen.
*
* @author d98762625 [d98762625@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*/
/**
* CyberChef - The Cyber Swiss Army Knife
*
* @copyright Crown Copyright 2016
* @license Apache-2.0
*
* Copyright 2016 Crown Copyright
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/**
* Decimal functions.
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*/
/**
* File signatures and extractor functions
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*
*/
/**
* File type functions
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*
*/
/**
* Stream class for parsing binary protocols.
*
* @author n1474335 [n1474335@gmail.com]
* @author tlwr [toby@toby.codes]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*
*/
+11582
View File
File diff suppressed because it is too large. Load diff
+136
View File
@@ -0,0 +1,136 @@
{
"name": "cyberchef",
"version": "8.2.0",
"description": "The Cyber Swiss Army Knife for encryption, encoding, compression and data analysis.",
"author": "n1474335 <n1474335@gmail.com>",
"homepage": "https://gchq.github.io/CyberChef",
"copyright": "Crown copyright 2016",
"license": "Apache-2.0",
"keywords": [
"cipher",
"cypher",
"encode",
"decode",
"encrypt",
"decrypt",
"base64",
"xor",
"charset",
"hex",
"encoding",
"format",
"cybersecurity",
"data manipulation",
"data analysis"
],
"repository": {
"type": "git",
"url": "https://github.com/gchq/CyberChef/"
},
"main": "build/node/CyberChef.js",
"bugs": "https://github.com/gchq/CyberChef/issues",
"devDependencies": {
"autoprefixer": "^9.1.0",
"babel-core": "^6.26.3",
"babel-loader": "^7.1.5",
"babel-preset-env": "^1.7.0",
"bootstrap": "^4.1.3",
"colors": "^1.3.1",
"css-loader": "^1.0.0",
"eslint": "^5.3.0",
"exports-loader": "^0.7.0",
"extract-text-webpack-plugin": "^4.0.0-alpha0",
"file-loader": "^1.1.11",
"grunt": "^1.0.3",
"grunt-accessibility": "~6.0.0",
"grunt-chmod": "~1.1.1",
"grunt-concurrent": "^2.3.1",
"grunt-contrib-clean": "~1.1.0",
"grunt-contrib-copy": "~1.0.0",
"grunt-contrib-watch": "^1.1.0",
"grunt-eslint": "^21.0.0",
"grunt-exec": "~3.0.0",
"grunt-jsdoc": "^2.2.1",
"grunt-webpack": "^3.1.2",
"html-webpack-plugin": "^3.2.0",
"imports-loader": "^0.8.0",
"ink-docstrap": "^1.3.2",
"js-to-mjs": "^0.2.0",
"jsdoc-babel": "^0.4.0",
"node-sass": "^4.9.2",
"postcss-css-variables": "^0.9.0",
"postcss-import": "^12.0.0",
"postcss-loader": "^2.1.6",
"prompt": "^1.0.0",
"sass-loader": "^7.1.0",
"sitemap": "^1.13.0",
"style-loader": "^0.21.0",
"url-loader": "^1.0.1",
"web-resource-inliner": "^4.2.1",
"webpack": "^4.16.4",
"webpack-dev-server": "^3.1.5",
"webpack-node-externals": "^1.7.2",
"worker-loader": "^2.0.0"
},
"dependencies": {
"arrive": "^2.4.1",
"babel-plugin-transform-builtin-extend": "1.1.2",
"babel-polyfill": "^6.26.0",
"bcryptjs": "^2.4.3",
"bignumber.js": "^7.2.1",
"bootstrap-colorpicker": "^2.5.3",
"bootstrap-material-design": "^4.1.1",
"bson": "^3.0.2",
"chi-squared": "^1.1.0",
"crypto-api": "^0.8.0",
"crypto-js": "^3.1.9-1",
"ctph.js": "0.0.5",
"diff": "^3.5.0",
"es6-promisify": "^6.0.0",
"escodegen": "^1.11.0",
"esmangle": "^1.0.1",
"esprima": "^4.0.1",
"exif-parser": "^0.1.12",
"file-saver": "^1.3.8",
"highlight.js": "^9.12.0",
"jquery": "^3.3.1",
"js-crc": "^0.2.0",
"js-sha3": "^0.7.0",
"jsbn": "^1.1.0",
"jsesc": "^2.5.1",
"jsonpath": "^1.0.0",
"jsrsasign": "8.0.12",
"kbpgp": "^2.0.77",
"lodash": "^4.17.10",
"loglevel": "^1.6.1",
"loglevel-message-prefix": "^3.0.0",
"moment": "^2.22.2",
"moment-timezone": "^0.5.21",
"node-forge": "^0.7.5",
"node-md6": "^0.1.0",
"nwmatcher": "^1.4.4",
"otp": "^0.1.3",
"popper.js": "^1.14.4",
"scryptsy": "^2.0.0",
"snackbarjs": "^1.1.0",
"sortablejs": "^1.7.0",
"split.js": "^1.3.5",
"ssdeep.js": "0.0.2",
"ua-parser-js": "^0.7.18",
"utf8": "^3.0.0",
"vkbeautify": "^0.99.3",
"xmldom": "^0.1.27",
"xpath": "0.0.27",
"xregexp": "^4.2.0",
"zlibjs": "^0.3.1"
},
"scripts": {
"start": "grunt dev",
"build": "grunt prod",
"test": "grunt test",
"docs": "grunt docs",
"lint": "grunt lint",
"newop": "node --experimental-modules src/core/config/scripts/newOperation.mjs",
"postinstall": "[ -f node_modules/crypto-api/src/crypto-api.mjs ] || npx j2m node_modules/crypto-api/src/crypto-api.js"
}
}
+15
View File
@@ -0,0 +1,15 @@
module.exports = {
plugins: [
require("postcss-import"),
require("autoprefixer")({
browsers: [
"Chrome >= 40",
"Firefox >= 35",
"Edge >= 14"
]
}),
require("postcss-css-variables")({
preserve: true
}),
]
};
-1
View File
@@ -1 +0,0 @@
fd356341f24c1adb452f04c5b60bf6efb1d9b0c60f29f9666149dfd2d2622569
-1
View File
@@ -1 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:news="http://www.google.com/schemas/sitemap-news/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1" xmlns:video="http://www.google.com/schemas/sitemap-video/1.1"><url><loc>https://gchq.github.io/</loc><changefreq>weekly</changefreq><priority>1.0</priority></url><url><loc>https://gchq.github.io/?op=A1Z26%20Cipher%20Decode</loc><priority>0.5</priority></url><url><loc>https://gchq.github.io/?op=A1Z26%20Cipher%20Encode</loc><priority>0.5</priority></url><url><loc>https://gchq.github.io/?op=ADD</loc><priority>0.5</priority></url><url><loc>https://gchq.github.io/?op=AES%20Decrypt</loc><priority>0.5</priority></url><url><loc>https://gchq.github.io/?op=AES%20Encrypt</loc><priority>0.5</priority></url><url><loc>https://gchq.github.io/?op=AES%20Key%20Unwrap</loc><priority>0.5</priority></url><url><loc>https://gchq.github.io/?op=AES%20Key%20Wrap</loc><priority>0.5</priority></url><url><loc>https://gchq.github.io/?op=AMF%20Decode</loc><priority>0.5</priority></url><url><loc>https://gchq.github.io/?op=AMF%20Encode</loc><priority>0.5</priority></url><url><loc>https://gchq.github.io/?op=AND</loc><priority>0.5</priority></url><url><loc>https://gchq.github.io/?op=Add%20line%20numbers</loc><priority>0.5</priority></url><url><loc>https://gchq.github.io/?op=Add%20Text%20To%20Image</loc><priority>0.5</priority></url><url><loc>https://gchq.github.io/?op=Adler-32%20Checksum</loc><priority>0.5</priority></url><url><loc>https://gchq.github.io/?op=Affine%20Cipher%20Decode</loc><priority>0.5</priority></url><url><loc>https://gchq.github.io/?op=Affine%20Cipher%20Encode</loc><priority>0.5</priority></url><url><loc>https://gchq.github.io/?op=Analyse%20hash</loc><priority>0.5</priority></url><url><loc>https://gchq.github.io/?op=Argon2</loc><priority>0.5</priority></url><url><loc>https://gchq.github.io/?op=Argon2%20compare</loc><priority>0.5</priority></url><url><loc>https://gchq.github.io/?op=Atbash%20Cipher</loc><priority>0.5</priority></url><url><loc>https://gchq.github.io/?op=Avro%20to%20JSON</loc><priority>0.5</priority></url><url><loc>https://gchq.github.io/?op=BLAKE2b</loc><priority>0.5</priority></url><url><loc>https://gchq.github.io/?op=BLAKE2s</loc><priority>0.5</priority></url><url><loc>https://gchq.github.io/?op=BSON%20deserialise</loc><priority>0.5</priority></url><url><loc>https://gchq.github.io/?op=BSON%20serialise</loc><priority>0.5</priority></url><url><loc>https://gchq.github.io/?op=Bacon%20Cipher%20Decode</loc><priority>0.5</priority></url><url><loc>https://gchq.github.io/?op=Bacon%20Cipher%20Encode</loc><priority>0.5</priority></url><url><loc>https://gchq.github.io/?op=Bcrypt</loc><priority>0.5</priority></url><url><loc>https://gchq.github.io/?op=Bcrypt%20compare</loc><priority>0.5</priority></url><url><loc>https://gchq.github.io/?op=Bcrypt%20parse</loc><priority>0.5</priority></url><url><loc>https://gchq.github.io/?op=Bifid%20Cipher%20Decode</loc><priority>0.5</priority></url><url><loc>https://gchq.github.io/?op=Bifid%20Cipher%20Encode</loc><priority>0.5</priority></url><url><loc>https://gchq.github.io/?op=Bit%20shift%20left</loc><priority>0.5</priority></url><url><loc>https://gchq.github.io/?op=Bit%20shift%20right</loc><priority>0.5</priority></url><url><loc>https://gchq.github.io/?op=Blowfish%20Decrypt</loc><priority>0.5</priority></url><url><loc>https://gchq.github.io/?op=Blowfish%20Encrypt</loc><priority>0.5</priority></url><url><loc>https://gchq.github.io/?op=Blur%20Image</loc><priority>0.5</priority></url><url><loc>https://gchq.github.io/?op=Bombe</loc><priority>0.5</priority></url><url><loc>https://gchq.github.io/?op=Bzip2%20Compress</loc><priority>0.5</priority></url><url><loc>https://gchq.github.io/?op=Bzip2%20Decompress</loc><priority>0.5</priority></url><url><loc>https://gchq.github.io/?op=CBOR%20Decode</loc><priority>0.5</priority></url><url><loc>https://gchq.github.io/?op=CBOR%20Encode</loc><priority>0.5</priority></url><url><loc>https://gchq.github.io/?op=CMAC</loc><priority>0.5</priority></url><url><loc>https://gchq.github.io/?op=CRC-16%20Checksum</loc><priority>0.5</priority></url><url><loc>https://gchq.github.io/?op=CRC-32%20Checksum</loc><priority>0.5</priority></url><url><loc>https://gchq.github.io/?op=CRC-8%20Checksum</loc><priority>0.5</priority></url><url><loc>https://gchq.github.io/?op=CSS%20Beautify</loc><priority>0.5</priority></url><url><loc>https://gchq.github.io/?op=CSS%20Minify</loc><priority>0.5</priority></url><url><loc>https://gchq.github.io/?op=CSS%20selector</loc><priority>0.5</priority></url><url><loc>https://gchq.github.io/?op=CSV%20to%20JSON</loc><priority>0.5</priority></url><url><loc>https://gchq.github.io/?op=CTPH</loc><priority>0.5</priority></url><url><loc>https://gchq.github.io/?op=Caesar%20Box%20Cipher</loc><priority>0.5</priority></url><url><loc>https://gchq.github.io/?op=Cartesian%20Product</loc><priority>0.5</pLine truncated
+198
View File
@@ -0,0 +1,198 @@
/**
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2016
* @license Apache-2.0
*/
import Dish from "./Dish";
import Recipe from "./Recipe";
import log from "loglevel";
/**
* The main controller for CyberChef.
*/
class Chef {
/**
* Chef constructor
*/
constructor() {
this.dish = new Dish();
}
/**
* Runs the recipe over the input.
*
* @param {string|ArrayBuffer} input - The input data as a string or ArrayBuffer
* @param {Object[]} recipeConfig - The recipe configuration object
* @param {Object} options - The options object storing various user choices
* @param {boolean} options.attempHighlight - Whether or not to attempt highlighting
* @param {number} progress - The position in the recipe to start from
* @param {number} [step] - Whether to only execute one operation in the recipe
*
* @returns {Object} response
* @returns {string} response.result - The output of the recipe
* @returns {string} response.type - The data type of the result
* @returns {number} response.progress - The position that we have got to in the recipe
* @returns {number} response.duration - The number of ms it took to execute the recipe
* @returns {number} response.error - The error object thrown by a failed operation (false if no error)
*/
async bake(input, recipeConfig, options, progress, step) {
log.debug("Chef baking");
const startTime = new Date().getTime(),
recipe = new Recipe(recipeConfig),
containsFc = recipe.containsFlowControl(),
notUTF8 = options && options.hasOwnProperty("treatAsUtf8") && !options.treatAsUtf8;
let error = false;
if (containsFc && ENVIRONMENT_IS_WORKER()) self.setOption("attemptHighlight", false);
// Clean up progress
if (progress >= recipeConfig.length) {
progress = 0;
}
if (step) {
// Unset breakpoint on this step
recipe.setBreakpoint(progress, false);
// Set breakpoint on next step
recipe.setBreakpoint(progress + 1, true);
}
// If the previously run operation presented a different value to its
// normal output, we need to recalculate it.
if (recipe.lastOpPresented(progress)) {
progress = 0;
}
// If stepping with flow control, we have to start from the beginning
// but still want to skip all previous breakpoints
if (progress > 0 && containsFc) {
recipe.removeBreaksUpTo(progress);
progress = 0;
}
// If starting from scratch, load data
if (progress === 0) {
const type = input instanceof ArrayBuffer ? Dish.ARRAY_BUFFER : Dish.STRING;
this.dish.set(input, type);
}
try {
progress = await recipe.execute(this.dish, progress);
} catch (err) {
log.error(err);
error = {
displayStr: err.displayStr,
};
progress = err.progress;
}
// Depending on the size of the output, we may send it back as a string or an ArrayBuffer.
// This can prevent unnecessary casting as an ArrayBuffer can be easily downloaded as a file.
// The threshold is specified in KiB.
const threshold = (options.ioDisplayThreshold || 1024) * 1024;
const returnType = this.dish.size > threshold ? Dish.ARRAY_BUFFER : Dish.STRING;
// Create a raw version of the dish, unpresented
const rawDish = this.dish.clone();
// Present the raw result
await recipe.present(this.dish);
return {
dish: rawDish,
result: this.dish.type === Dish.HTML ?
await this.dish.get(Dish.HTML, notUTF8) :
await this.dish.get(returnType, notUTF8),
type: Dish.enumLookup(this.dish.type),
progress: progress,
duration: new Date().getTime() - startTime,
error: error
};
}
/**
* When a browser tab is unfocused and the browser has to run lots of dynamic content in other tabs,
* it swaps out the memory for that tab. If the CyberChef tab has been unfocused for more than a
* minute, we run a silent bake which will force the browser to load and cache all the relevant
* JavaScript code needed to do a real bake.
*
* This will stop baking taking a long time when the CyberChef browser tab has been unfocused for a
* long time and the browser has swapped out all its memory.
*
* The output will not be modified (hence "silent" bake).
*
* This will only actually execute the recipe if auto-bake is enabled, otherwise it will just load
* the recipe, ingredients and dish.
*
* @param {Object[]} recipeConfig - The recipe configuration object
* @returns {number} The time it took to run the silent bake in milliseconds.
*/
silentBake(recipeConfig) {
log.debug("Running silent bake");
const startTime = new Date().getTime(),
recipe = new Recipe(recipeConfig),
dish = new Dish();
try {
recipe.execute(dish);
} catch (err) {
// Suppress all errors
}
return new Date().getTime() - startTime;
}
/**
* Calculates highlight offsets if possible.
*
* @param {Object[]} recipeConfig
* @param {string} direction
* @param {Object} pos - The position object for the highlight.
* @param {number} pos.start - The start offset.
* @param {number} pos.end - The end offset.
* @returns {Object}
*/
calculateHighlights(recipeConfig, direction, pos) {
const recipe = new Recipe(recipeConfig);
const highlights = recipe.generateHighlightList();
if (!highlights) return false;
for (let i = 0; i < highlights.length; i++) {
// Remove multiple highlights before processing again
pos = [pos[0]];
const func = direction === "forward" ? highlights[i].f : highlights[i].b;
if (typeof func == "function") {
pos = func(pos, highlights[i].args);
}
}
return {
pos: pos,
direction: direction
};
}
/**
* Translates the dish to a specified type and returns it.
*
* @param {Dish} dish
* @param {string} type
* @returns {Dish}
*/
async getDishAs(dish, type) {
const newDish = new Dish(dish);
return await newDish.get(type);
}
}
export default Chef;
+235
View File
@@ -0,0 +1,235 @@
/**
* Web Worker to handle communications between the front-end and the core.
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2017
* @license Apache-2.0
*/
import "babel-polyfill";
import Chef from "./Chef";
import OperationConfig from "./config/OperationConfig.json";
import OpModules from "./config/modules/OpModules";
// Add ">" to the start of all log messages in the Chef Worker
import loglevelMessagePrefix from "loglevel-message-prefix";
loglevelMessagePrefix(log, {
prefixes: [],
staticPrefixes: [">"],
prefixFormat: "%p"
});
// Set up Chef instance
self.chef = new Chef();
self.OpModules = OpModules;
self.OperationConfig = OperationConfig;
// Tell the app that the worker has loaded and is ready to operate
self.postMessage({
action: "workerLoaded",
data: {}
});
/**
* Respond to message from parent thread.
*
* Messages should have the following format:
* {
* action: "bake" | "silentBake",
* data: {
* input: {string},
* recipeConfig: {[Object]},
* options: {Object},
* progress: {number},
* step: {boolean}
* } | undefined
* }
*/
self.addEventListener("message", function(e) {
// Handle message
const r = e.data;
log.debug("ChefWorker receiving command '" + r.action + "'");
switch (r.action) {
case "bake":
bake(r.data);
break;
case "silentBake":
silentBake(r.data);
break;
case "getDishAs":
getDishAs(r.data);
break;
case "docURL":
// Used to set the URL of the current document so that scripts can be
// imported into an inline worker.
self.docURL = r.data;
break;
case "highlight":
calculateHighlights(
r.data.recipeConfig,
r.data.direction,
r.data.pos
);
break;
case "setLogLevel":
log.setLevel(r.data, false);
break;
default:
break;
}
});
/**
* Baking handler
*
* @param {Object} data
*/
async function bake(data) {
// Ensure the relevant modules are loaded
self.loadRequiredModules(data.recipeConfig);
try {
const response = await self.chef.bake(
data.input, // The user's input
data.recipeConfig, // The configuration of the recipe
data.options, // Options set by the user
data.progress, // The current position in the recipe
data.step // Whether or not to take one step or execute the whole recipe
);
self.postMessage({
action: "bakeComplete",
data: Object.assign(response, {
id: data.id
})
});
} catch (err) {
self.postMessage({
action: "bakeError",
data: Object.assign(err, {
id: data.id
})
});
}
}
/**
* Silent baking handler
*/
function silentBake(data) {
const duration = self.chef.silentBake(data.recipeConfig);
self.postMessage({
action: "silentBakeComplete",
data: duration
});
}
/**
* Translates the dish to a given type.
*/
async function getDishAs(data) {
const value = await self.chef.getDishAs(data.dish, data.type);
self.postMessage({
action: "dishReturned",
data: {
value: value,
id: data.id
}
});
}
/**
* Calculates highlight offsets if possible.
*
* @param {Object[]} recipeConfig
* @param {string} direction
* @param {Object} pos - The position object for the highlight.
* @param {number} pos.start - The start offset.
* @param {number} pos.end - The end offset.
*/
function calculateHighlights(recipeConfig, direction, pos) {
pos = self.chef.calculateHighlights(recipeConfig, direction, pos);
self.postMessage({
action: "highlightsCalculated",
data: pos
});
}
/**
* Checks that all required modules are loaded and loads them if not.
*
* @param {Object} recipeConfig
*/
self.loadRequiredModules = function(recipeConfig) {
recipeConfig.forEach(op => {
const module = self.OperationConfig[op.op].module;
if (!OpModules.hasOwnProperty(module)) {
log.info(`Loading ${module} module`);
self.sendStatusMessage(`Loading ${module} module`);
self.importScripts(`${self.docURL}/${module}.js`);
self.sendStatusMessage("");
}
});
};
/**
* Send status update to the app.
*
* @param {string} msg
*/
self.sendStatusMessage = function(msg) {
self.postMessage({
action: "statusMessage",
data: msg
});
};
/**
* Send an option value update to the app.
*
* @param {string} option
* @param {*} value
*/
self.setOption = function(option, value) {
self.postMessage({
action: "optionUpdate",
data: {
option: option,
value: value
}
});
};
/**
* Send register values back to the app.
*
* @param {number} opIndex
* @param {number} numPrevRegisters
* @param {string[]} registers
*/
self.setRegisters = function(opIndex, numPrevRegisters, registers) {
self.postMessage({
action: "setRegisters",
data: {
opIndex: opIndex,
numPrevRegisters: numPrevRegisters,
registers: registers
}
});
};
+425
View File
@@ -0,0 +1,425 @@
/**
* @author n1474335 [n1474335@gmail.com]
* @author Matt C [matt@artemisbot.uk]
* @copyright Crown Copyright 2016
* @license Apache-2.0
*/
import Utils from "./Utils";
import BigNumber from "bignumber.js";
import log from "loglevel";
/**
* The data being operated on by each operation.
*/
class Dish {
/**
* Dish constructor
*
* @param {Dish} [dish=null] - A dish to clone
*/
constructor(dish=null) {
this.value = [];
this.type = Dish.BYTE_ARRAY;
if (dish &&
dish.hasOwnProperty("value") &&
dish.hasOwnProperty("type")) {
this.set(dish.value, dish.type);
}
}
/**
* Returns the data type enum for the given type string.
*
* @param {string} typeStr - The name of the data type.
* @returns {number} The data type enum value.
*/
static typeEnum(typeStr) {
switch (typeStr.toLowerCase()) {
case "bytearray":
case "byte array":
return Dish.BYTE_ARRAY;
case "string":
return Dish.STRING;
case "number":
return Dish.NUMBER;
case "html":
return Dish.HTML;
case "arraybuffer":
case "array buffer":
return Dish.ARRAY_BUFFER;
case "bignumber":
case "big number":
return Dish.BIG_NUMBER;
case "json":
return Dish.JSON;
case "file":
return Dish.FILE;
case "list<file>":
return Dish.LIST_FILE;
default:
throw "Invalid data type string. No matching enum.";
}
}
/**
* Returns the data type string for the given type enum.
*
* @param {number} typeEnum - The enum value of the data type.
* @returns {string} The data type as a string.
*/
static enumLookup(typeEnum) {
switch (typeEnum) {
case Dish.BYTE_ARRAY:
return "byteArray";
case Dish.STRING:
return "string";
case Dish.NUMBER:
return "number";
case Dish.HTML:
return "html";
case Dish.ARRAY_BUFFER:
return "ArrayBuffer";
case Dish.BIG_NUMBER:
return "BigNumber";
case Dish.JSON:
return "JSON";
case Dish.FILE:
return "File";
case Dish.LIST_FILE:
return "List<File>";
default:
throw "Invalid data type enum. No matching type.";
}
}
/**
* Sets the data value and type and then validates them.
*
* @param {*} value
* - The value of the input data.
* @param {number} type
* - The data type of value, see Dish enums.
*/
set(value, type) {
if (typeof type === "string") {
type = Dish.typeEnum(type);
}
log.debug("Dish type: " + Dish.enumLookup(type));
this.value = value;
this.type = type;
if (!this.valid()) {
const sample = Utils.truncate(JSON.stringify(this.value), 13);
throw "Data is not a valid " + Dish.enumLookup(type) + ": " + sample;
}
}
/**
* Returns the value of the data in the type format specified.
*
* @param {number} type - The data type of value, see Dish enums.
* @param {boolean} [notUTF8=false] - Do not treat strings as UTF8.
* @returns {*} - The value of the output data.
*/
async get(type, notUTF8=false) {
if (typeof type === "string") {
type = Dish.typeEnum(type);
}
if (this.type !== type) {
await this._translate(type, notUTF8);
}
return this.value;
}
/**
* Translates the data to the given type format.
*
* @param {number} toType - The data type of value, see Dish enums.
* @param {boolean} [notUTF8=false] - Do not treat strings as UTF8.
*/
async _translate(toType, notUTF8=false) {
log.debug(`Translating Dish from ${Dish.enumLookup(this.type)} to ${Dish.enumLookup(toType)}`);
const byteArrayToStr = notUTF8 ? Utils.byteArrayToChars : Utils.byteArrayToUtf8;
// Convert data to intermediate byteArray type
switch (this.type) {
case Dish.STRING:
this.value = this.value ? Utils.strToByteArray(this.value) : [];
break;
case Dish.NUMBER:
this.value = typeof this.value === "number" ? Utils.strToByteArray(this.value.toString()) : [];
break;
case Dish.HTML:
this.value = this.value ? Utils.strToByteArray(Utils.unescapeHtml(Utils.stripHtmlTags(this.value, true))) : [];
break;
case Dish.ARRAY_BUFFER:
// Array.from() would be nicer here, but it's slightly slower
this.value = Array.prototype.slice.call(new Uint8Array(this.value));
break;
case Dish.BIG_NUMBER:
this.value = this.value instanceof BigNumber ? Utils.strToByteArray(this.value.toFixed()) : [];
break;
case Dish.JSON:
this.value = this.value ? Utils.strToByteArray(JSON.stringify(this.value)) : [];
break;
case Dish.FILE:
this.value = await Utils.readFile(this.value);
this.value = Array.prototype.slice.call(this.value);
break;
case Dish.LIST_FILE:
this.value = await Promise.all(this.value.map(async f => Utils.readFile(f)));
this.value = this.value.map(b => Array.prototype.slice.call(b));
this.value = [].concat.apply([], this.value);
break;
default:
break;
}
this.type = Dish.BYTE_ARRAY;
// Convert from byteArray to toType
switch (toType) {
case Dish.STRING:
case Dish.HTML:
this.value = this.value ? byteArrayToStr(this.value) : "";
this.type = Dish.STRING;
break;
case Dish.NUMBER:
this.value = this.value ? parseFloat(byteArrayToStr(this.value)) : 0;
this.type = Dish.NUMBER;
break;
case Dish.ARRAY_BUFFER:
this.value = new Uint8Array(this.value).buffer;
this.type = Dish.ARRAY_BUFFER;
break;
case Dish.BIG_NUMBER:
try {
this.value = new BigNumber(byteArrayToStr(this.value));
} catch (err) {
this.value = new BigNumber(NaN);
}
this.type = Dish.BIG_NUMBER;
break;
case Dish.JSON:
this.value = JSON.parse(byteArrayToStr(this.value));
this.type = Dish.JSON;
break;
case Dish.FILE:
this.value = new File(this.value, "unknown");
break;
case Dish.LIST_FILE:
this.value = [new File(this.value, "unknown")];
this.type = Dish.LIST_FILE;
break;
default:
break;
}
}
/**
* Validates that the value is the type that has been specified.
* May have to disable parts of BYTE_ARRAY validation if it effects performance.
*
* @returns {boolean} Whether the data is valid or not.
*/
valid() {
switch (this.type) {
case Dish.BYTE_ARRAY:
if (!(this.value instanceof Array)) {
return false;
}
// Check that every value is a number between 0 - 255
for (let i = 0; i < this.value.length; i++) {
if (typeof this.value[i] !== "number" ||
this.value[i] < 0 ||
this.value[i] > 255) {
return false;
}
}
return true;
case Dish.STRING:
case Dish.HTML:
return typeof this.value === "string";
case Dish.NUMBER:
return typeof this.value === "number";
case Dish.ARRAY_BUFFER:
return this.value instanceof ArrayBuffer;
case Dish.BIG_NUMBER:
return this.value instanceof BigNumber;
case Dish.JSON:
// All values can be serialised in some manner, so we return true in all cases
return true;
case Dish.FILE:
return this.value instanceof File;
case Dish.LIST_FILE:
return this.value instanceof Array &&
this.value.reduce((acc, curr) => acc && curr instanceof File, true);
default:
return false;
}
}
/**
* Determines how much space the Dish takes up.
* Numbers in JavaScript are 64-bit floating point, however for the purposes of the Dish,
* we measure how many bytes are taken up when the number is written as a string.
*
* @returns {number}
*/
get size() {
switch (this.type) {
case Dish.BYTE_ARRAY:
case Dish.STRING:
case Dish.HTML:
return this.value.length;
case Dish.NUMBER:
case Dish.BIG_NUMBER:
return this.value.toString().length;
case Dish.ARRAY_BUFFER:
return this.value.byteLength;
case Dish.JSON:
return JSON.stringify(this.value).length;
case Dish.FILE:
return this.value.size;
case Dish.LIST_FILE:
return this.value.reduce((acc, curr) => acc + curr.size, 0);
default:
return -1;
}
}
/**
* Returns a deep clone of the current Dish.
*
* @returns {Dish}
*/
clone() {
const newDish = new Dish();
switch (this.type) {
case Dish.STRING:
case Dish.HTML:
case Dish.NUMBER:
case Dish.BIG_NUMBER:
// These data types are immutable so it is acceptable to copy them by reference
newDish.set(
this.value,
this.type
);
break;
case Dish.BYTE_ARRAY:
case Dish.JSON:
// These data types are mutable so they need to be copied by value
newDish.set(
JSON.parse(JSON.stringify(this.value)),
this.type
);
break;
case Dish.ARRAY_BUFFER:
// Slicing an ArrayBuffer returns a new ArrayBuffer with a copy its contents
newDish.set(
this.value.slice(0),
this.type
);
break;
case Dish.FILE:
// A new file can be created by copying over all the values from the original
newDish.set(
new File([this.value], this.value.name, {
"type": this.value.type,
"lastModified": this.value.lastModified
}),
this.type
);
break;
case Dish.LIST_FILE:
newDish.set(
this.value.map(f =>
new File([f], f.name, {
"type": f.type,
"lastModified": f.lastModified
})
),
this.type
);
break;
default:
throw new Error("Cannot clone Dish, unknown type");
}
return newDish;
}
}
/**
* Dish data type enum for byte arrays.
* @readonly
* @enum
*/
Dish.BYTE_ARRAY = 0;
/**
* Dish data type enum for strings.
* @readonly
* @enum
*/
Dish.STRING = 1;
/**
* Dish data type enum for numbers.
* @readonly
* @enum
*/
Dish.NUMBER = 2;
/**
* Dish data type enum for HTML.
* @readonly
* @enum
*/
Dish.HTML = 3;
/**
* Dish data type enum for ArrayBuffers.
* @readonly
* @enum
*/
Dish.ARRAY_BUFFER = 4;
/**
* Dish data type enum for BigNumbers.
* @readonly
* @enum
*/
Dish.BIG_NUMBER = 5;
/**
* Dish data type enum for JSON.
* @readonly
* @enum
*/
Dish.JSON = 6;
/**
* Dish data type enum for lists of files.
* @readonly
* @enum
*/
Dish.FILE = 7;
/**
* Dish data type enum for lists of files.
* @readonly
* @enum
*/
Dish.LIST_FILE = 8;
export default Dish;
+118
View File
@@ -0,0 +1,118 @@
/**
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2016
* @license Apache-2.0
*/
import Utils from "./Utils";
import {fromHex} from "./lib/Hex";
/**
* The arguments to operations.
*/
class Ingredient {
/**
* Ingredient constructor
*
* @param {Object} ingredientConfig
*/
constructor(ingredientConfig) {
this.name = "";
this.type = "";
this._value = null;
this.disabled = false;
this.hint = "";
this.toggleValues = [];
this.target = null;
if (ingredientConfig) {
this._parseConfig(ingredientConfig);
}
}
/**
* Reads and parses the given config.
*
* @private
* @param {Object} ingredientConfig
*/
_parseConfig(ingredientConfig) {
this.name = ingredientConfig.name;
this.type = ingredientConfig.type;
this.defaultValue = ingredientConfig.value;
this.disabled = !!ingredientConfig.disabled;
this.hint = ingredientConfig.hint || false;
this.toggleValues = ingredientConfig.toggleValues;
this.target = typeof ingredientConfig.target !== "undefined" ? ingredientConfig.target : null;
}
/**
* Returns the value of the Ingredient as it should be displayed in a recipe config.
*
* @returns {*}
*/
get config() {
return this._value;
}
/**
* Sets the value of the Ingredient.
*
* @param {*} value
*/
set value(value) {
this._value = Ingredient.prepare(value, this.type);
}
/**
* Gets the value of the Ingredient.
*
* @returns {*}
*/
get value() {
return this._value;
}
/**
* Most values will be strings when they are entered. This function converts them to the correct
* type.
*
* @param {*} data
* @param {string} type - The name of the data type.
*/
static prepare(data, type) {
let number;
switch (type) {
case "binaryString":
case "binaryShortString":
case "editableOption":
return Utils.parseEscapedChars(data);
case "byteArray":
if (typeof data == "string") {
data = data.replace(/\s+/g, "");
return fromHex(data);
} else {
return data;
}
case "number":
number = parseFloat(data);
if (isNaN(number)) {
const sample = Utils.truncate(data.toString(), 10);
throw "Invalid ingredient value. Not a number: " + sample;
}
return number;
default:
return data;
}
}
}
export default Ingredient;
+294
View File
@@ -0,0 +1,294 @@
/**
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2016
* @license Apache-2.0
*/
import Dish from "./Dish";
import Ingredient from "./Ingredient";
/**
* The Operation specified by the user to be run.
*/
class Operation {
/**
* Operation constructor
*/
constructor() {
// Private fields
this._inputType = -1;
this._outputType = -1;
this._presentType = -1;
this._breakpoint = false;
this._disabled = false;
this._flowControl = false;
this._ingList = [];
// Public fields
this.name = "";
this.module = "";
this.description = "";
this.infoURL = null;
}
/**
* Interface for operation runner
*
* @param {*} input
* @param {Object[]} args
* @returns {*}
*/
run(input, args) {
return input;
}
/**
* Interface for forward highlighter
*
* @param {Object[]} pos
* @param {number} pos[].start
* @param {number} pos[].end
* @param {Object[]} args
* @returns {Object[]} pos
*/
highlight(pos, args) {
return false;
}
/**
* Interface for reverse highlighter
*
* @param {Object[]} pos
* @param {number} pos[].start
* @param {number} pos[].end
* @param {Object[]} args
* @returns {Object[]} pos
*/
highlightReverse(pos, args) {
return false;
}
/**
* Method to be called when displaying the result of an operation in a human-readable
* format. This allows operations to return usable data from their run() method and
* only format them when this method is called.
*
* The default action is to return the data unchanged, but child classes can override
* this behaviour.
*
* @param {*} data - The result of the run() function
* @param {Object[]} args - The operation's arguments
* @returns {*} - A human-readable version of the data
*/
present(data, args) {
return data;
}
/**
* Sets the input type as a Dish enum.
*
* @param {string} typeStr
*/
set inputType(typeStr) {
this._inputType = Dish.typeEnum(typeStr);
}
/**
* Gets the input type as a readable string.
*
* @returns {string}
*/
get inputType() {
return Dish.enumLookup(this._inputType);
}
/**
* Sets the output type as a Dish enum.
*
* @param {string} typeStr
*/
set outputType(typeStr) {
this._outputType = Dish.typeEnum(typeStr);
if (this._presentType < 0) this._presentType = this._outputType;
}
/**
* Gets the output type as a readable string.
*
* @returns {string}
*/
get outputType() {
return Dish.enumLookup(this._outputType);
}
/**
* Sets the presentation type as a Dish enum.
*
* @param {string} typeStr
*/
set presentType(typeStr) {
this._presentType = Dish.typeEnum(typeStr);
}
/**
* Gets the presentation type as a readable string.
*
* @returns {string}
*/
get presentType() {
return Dish.enumLookup(this._presentType);
}
/**
* Sets the args for the current operation.
*
* @param {Object[]} conf
*/
set args(conf) {
conf.forEach(arg => {
const ingredient = new Ingredient(arg);
this.addIngredient(ingredient);
});
}
/**
* Gets the args for the current operation.
*
* @param {Object[]} conf
*/
get args() {
return this._ingList.map(ing => {
const conf = {
name: ing.name,
type: ing.type,
value: ing.defaultValue
};
if (ing.toggleValues) conf.toggleValues = ing.toggleValues;
if (ing.hint) conf.hint = ing.hint;
if (ing.disabled) conf.disabled = ing.disabled;
if (ing.target) conf.target = ing.target;
return conf;
});
}
/**
* Returns the value of the Operation as it should be displayed in a recipe config.
*
* @returns {Object}
*/
get config() {
return {
"op": this.name,
"args": this._ingList.map(ing => ing.config)
};
}
/**
* Adds a new Ingredient to this Operation.
*
* @param {Ingredient} ingredient
*/
addIngredient(ingredient) {
this._ingList.push(ingredient);
}
/**
* Set the Ingredient values for this Operation.
*
* @param {Object[]} ingValues
*/
set ingValues(ingValues) {
ingValues.forEach((val, i) => {
this._ingList[i].value = val;
});
}
/**
* Get the Ingredient values for this Operation.
*
* @returns {Object[]}
*/
get ingValues() {
return this._ingList.map(ing => ing.value);
}
/**
* Set whether this Operation has a breakpoint.
*
* @param {boolean} value
*/
set breakpoint(value) {
this._breakpoint = !!value;
}
/**
* Returns true if this Operation has a breakpoint set.
*
* @returns {boolean}
*/
get breakpoint() {
return this._breakpoint;
}
/**
* Set whether this Operation is disabled.
*
* @param {boolean} value
*/
set disabled(value) {
this._disabled = !!value;
}
/**
* Returns true if this Operation is disabled.
*
* @returns {boolean}
*/
get disabled() {
return this._disabled;
}
/**
* Returns true if this Operation is a flow control.
*
* @returns {boolean}
*/
get flowControl() {
return this._flowControl;
}
/**
* Set whether this Operation is a flowcontrol op.
*
* @param {boolean} value
*/
set flowControl(value) {
this._flowControl = !!value;
}
}
export default Operation;
+290
View File
@@ -0,0 +1,290 @@
/**
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2016
* @license Apache-2.0
*/
// import Operation from "./Operation.js";
import OpModules from "./config/modules/OpModules";
import OperationConfig from "./config/OperationConfig.json";
import OperationError from "./errors/OperationError";
import log from "loglevel";
/**
* The Recipe controls a list of Operations and the Dish they operate on.
*/
class Recipe {
/**
* Recipe constructor
*
* @param {Object} recipeConfig
*/
constructor(recipeConfig) {
this.opList = [];
if (recipeConfig) {
this._parseConfig(recipeConfig);
}
}
/**
* Reads and parses the given config.
*
* @private
* @param {Object} recipeConfig
*/
_parseConfig(recipeConfig) {
for (let c = 0; c < recipeConfig.length; c++) {
const operationName = recipeConfig[c].op;
const opConf = OperationConfig[operationName];
const opObj = OpModules[opConf.module][operationName];
const operation = new opObj();
operation.ingValues = recipeConfig[c].args;
operation.breakpoint = recipeConfig[c].breakpoint;
operation.disabled = recipeConfig[c].disabled;
this.addOperation(operation);
}
}
/**
* Returns the value of the Recipe as it should be displayed in a recipe config.
*
* @returns {Object[]}
*/
get config() {
return this.opList.map(op => op.config);
}
/**
* Adds a new Operation to this Recipe.
*
* @param {Operation} operation
*/
addOperation(operation) {
this.opList.push(operation);
}
/**
* Adds a list of Operations to this Recipe.
*
* @param {Operation[]} operations
*/
addOperations(operations) {
this.opList = this.opList.concat(operations);
}
/**
* Set a breakpoint on a specified Operation.
*
* @param {number} position - The index of the Operation
* @param {boolean} value
*/
setBreakpoint(position, value) {
try {
this.opList[position].breakpoint = value;
} catch (err) {
// Ignore index error
}
}
/**
* Remove breakpoints on all Operations in the Recipe up to the specified position. Used by Flow
* Control Fork operation.
*
* @param {number} pos
*/
removeBreaksUpTo(pos) {
for (let i = 0; i < pos; i++) {
this.opList[i].breakpoint = false;
}
}
/**
* Returns true if there is an Flow Control Operation in this Recipe.
*
* @returns {boolean}
*/
containsFlowControl() {
return this.opList.reduce((acc, curr) => {
return acc || curr.flowControl;
}, false);
}
/**
* Executes each operation in the recipe over the given Dish.
*
* @param {Dish} dish
* @param {number} [startFrom=0]
* - The index of the Operation to start executing from
* @param {number} [forkState={}]
* - If this is a forked recipe, the state of the recipe up to this point
* @returns {number}
* - The final progress through the recipe
*/
async execute(dish, startFrom=0, forkState={}) {
let op, input, output,
numJumps = 0,
numRegisters = forkState.numRegisters || 0;
if (startFrom === 0) this.lastRunOp = null;
log.debug(`[*] Executing recipe of ${this.opList.length} operations, starting at ${startFrom}`);
for (let i = startFrom; i < this.opList.length; i++) {
op = this.opList[i];
log.debug(`[${i}] ${op.name} ${JSON.stringify(op.ingValues)}`);
if (op.disabled) {
log.debug("Operation is disabled, skipping");
continue;
}
if (op.breakpoint) {
log.debug("Pausing at breakpoint");
return i;
}
try {
input = await dish.get(op.inputType);
log.debug("Executing operation");
if (op.flowControl) {
// Package up the current state
let state = {
"progress": i,
"dish": dish,
"opList": this.opList,
"numJumps": numJumps,
"numRegisters": numRegisters,
"forkOffset": forkState.forkOffset || 0
};
state = await op.run(state);
i = state.progress;
numJumps = state.numJumps;
numRegisters = state.numRegisters;
} else {
output = await op.run(input, op.ingValues);
dish.set(output, op.outputType);
}
this.lastRunOp = op;
} catch (err) {
// Return expected errors as output
if (err instanceof OperationError ||
(err.type && err.type === "OperationError")) {
// Cannot rely on `err instanceof OperationError` here as extending
// native types is not fully supported yet.
dish.set(err.message, "string");
return i;
} else {
const e = typeof err == "string" ? { message: err } : err;
e.progress = i;
if (e.fileName) {
e.displayStr = `${op.name} - ${e.name} in ${e.fileName} on line ` +
`${e.lineNumber}.<br><br>Message: ${e.displayStr || e.message}`;
} else {
e.displayStr = `${op.name} - ${e.displayStr || e.message}`;
}
throw e;
}
}
}
log.debug("Recipe complete");
return this.opList.length;
}
/**
* Present the results of the final operation.
*
* @param {Dish} dish
*/
async present(dish) {
if (!this.lastRunOp) return;
const output = await this.lastRunOp.present(
await dish.get(this.lastRunOp.outputType),
this.lastRunOp.ingValues
);
dish.set(output, this.lastRunOp.presentType);
}
/**
* Returns the recipe configuration in string format.
*
* @returns {string}
*/
toString() {
return JSON.stringify(this.config);
}
/**
* Creates a Recipe from a given configuration string.
*
* @param {string} recipeStr
*/
fromString(recipeStr) {
const recipeConfig = JSON.parse(recipeStr);
this._parseConfig(recipeConfig);
}
/**
* Generates a list of all the highlight functions assigned to operations in the recipe, if the
* entire recipe supports highlighting.
*
* @returns {Object[]} highlights
* @returns {function} highlights[].f
* @returns {function} highlights[].b
* @returns {Object[]} highlights[].args
*/
generateHighlightList() {
const highlights = [];
for (let i = 0; i < this.opList.length; i++) {
const op = this.opList[i];
if (op.disabled) continue;
// If any breakpoints are set, do not attempt to highlight
if (op.breakpoint) return false;
// If any of the operations do not support highlighting, fail immediately.
if (op.highlight === false || op.highlight === undefined) return false;
highlights.push({
f: op.highlight,
b: op.highlightReverse,
args: op.ingValues
});
}
return highlights;
}
/**
* Determines whether the previous operation has a different presentation type to its normal output.
*
* @param {number} progress
* @returns {boolean}
*/
lastOpPresented(progress) {
if (progress < 1) return false;
return this.opList[progress-1].presentType !== this.opList[progress-1].outputType;
}
}
export default Recipe;
+1220
View File
File diff suppressed because it is too large. Load diff
+354
View File
@@ -0,0 +1,354 @@
[
{
"name": "Favourites",
"ops": []
},
{
"name": "Data format",
"ops": [
"To Hexdump",
"From Hexdump",
"To Hex",
"From Hex",
"To Charcode",
"From Charcode",
"To Decimal",
"From Decimal",
"To Binary",
"From Binary",
"To Octal",
"From Octal",
"To Base64",
"From Base64",
"Show Base64 offsets",
"To Base32",
"From Base32",
"To Base58",
"From Base58",
"To Base",
"From Base",
"To BCD",
"From BCD",
"To HTML Entity",
"From HTML Entity",
"URL Encode",
"URL Decode",
"Escape Unicode Characters",
"Unescape Unicode Characters",
"To Quoted Printable",
"From Quoted Printable",
"To Punycode",
"From Punycode",
"To Hex Content",
"From Hex Content",
"PEM to Hex",
"Hex to PEM",
"Parse ASN.1 hex string",
"Change IP format",
"Encode text",
"Decode text",
"Swap endianness"
]
},
{
"name": "Encryption / Encoding",
"ops": [
"AES Encrypt",
"AES Decrypt",
"Blowfish Encrypt",
"Blowfish Decrypt",
"DES Encrypt",
"DES Decrypt",
"Triple DES Encrypt",
"Triple DES Decrypt",
"RC2 Encrypt",
"RC2 Decrypt",
"RC4",
"RC4 Drop",
"ROT13",
"ROT47",
"XOR",
"XOR Brute Force",
"Vigenère Encode",
"Vigenère Decode",
"To Morse Code",
"From Morse Code",
"Bifid Cipher Encode",
"Bifid Cipher Decode",
"Affine Cipher Encode",
"Affine Cipher Decode",
"Atbash Cipher",
"Substitute",
"Derive PBKDF2 key",
"Derive EVP key",
"Bcrypt",
"Scrypt",
"Pseudo-Random Number Generator"
]
},
{
"name": "Public Key",
"ops": [
"Parse X.509 certificate",
"Parse ASN.1 hex string",
"PEM to Hex",
"Hex to PEM",
"Hex to Object Identifier",
"Object Identifier to Hex",
"Generate PGP Key Pair",
"PGP Encrypt",
"PGP Decrypt",
"PGP Encrypt and Sign",
"PGP Decrypt and Verify"
]
},
{
"name": "Arithmetic / Logic",
"ops": [
"Set Union",
"Set Intersection",
"Set Difference",
"Symmetric Difference",
"Cartesian Product",
"Power Set",
"XOR",
"XOR Brute Force",
"OR",
"NOT",
"AND",
"ADD",
"SUB",
"Sum",
"Subtract",
"Multiply",
"Divide",
"Mean",
"Median",
"Standard Deviation",
"Bit shift left",
"Bit shift right",
"Rotate left",
"Rotate right",
"ROT13"
]
},
{
"name": "Networking",
"ops": [
"HTTP request",
"Strip HTTP headers",
"Dechunk HTTP response",
"Parse User Agent",
"Parse IP range",
"Parse IPv6 address",
"Parse IPv4 header",
"Parse URI",
"URL Encode",
"URL Decode",
"Format MAC addresses",
"Change IP format",
"Group IP addresses",
"Encode NetBIOS Name",
"Decode NetBIOS Name"
]
},
{
"name": "Language",
"ops": [
"Encode text",
"Decode text",
"Unescape Unicode Characters"
]
},
{
"name": "Utils",
"ops": [
"Diff",
"Remove whitespace",
"Remove null bytes",
"To Upper case",
"To Lower case",
"Add line numbers",
"Remove line numbers",
"To Table",
"Reverse",
"Sort",
"Unique",
"Split",
"Filter",
"Head",
"Tail",
"Count occurrences",
"Expand alphabet range",
"Drop bytes",
"Take bytes",
"Pad lines",
"Find / Replace",
"Regular expression",
"Offset checker",
"Hamming Distance",
"Convert distance",
"Convert area",
"Convert mass",
"Convert speed",
"Convert data units",
"Parse UNIX file permissions",
"Swap endianness",
"Parse colour code",
"Escape string",
"Unescape string",
"Pseudo-Random Number Generator",
"Sleep"
]
},
{
"name": "Date / Time",
"ops": [
"Parse DateTime",
"Translate DateTime Format",
"From UNIX Timestamp",
"To UNIX Timestamp",
"Windows Filetime to UNIX Timestamp",
"UNIX Timestamp to Windows Filetime",
"Extract dates",
"Sleep"
]
},
{
"name": "Extractors",
"ops": [
"Strings",
"Extract IP addresses",
"Extract email addresses",
"Extract MAC addresses",
"Extract URLs",
"Extract domains",
"Extract file paths",
"Extract dates",
"Regular expression",
"XPath expression",
"JPath expression",
"CSS selector",
"Extract EXIF"
]
},
{
"name": "Compression",
"ops": [
"Raw Deflate",
"Raw Inflate",
"Zlib Deflate",
"Zlib Inflate",
"Gzip",
"Gunzip",
"Zip",
"Unzip",
"Bzip2 Decompress",
"Tar",
"Untar"
]
},
{
"name": "Hashing",
"ops": [
"Analyse hash",
"Generate all hashes",
"MD2",
"MD4",
"MD5",
"MD6",
"SHA0",
"SHA1",
"SHA2",
"SHA3",
"Keccak",
"Shake",
"RIPEMD",
"HAS-160",
"Whirlpool",
"Snefru",
"SSDEEP",
"CTPH",
"Compare SSDEEP hashes",
"Compare CTPH hashes",
"HMAC",
"Bcrypt",
"Bcrypt compare",
"Bcrypt parse",
"Scrypt",
"Fletcher-8 Checksum",
"Fletcher-16 Checksum",
"Fletcher-32 Checksum",
"Fletcher-64 Checksum",
"Adler-32 Checksum",
"CRC-16 Checksum",
"CRC-32 Checksum",
"TCP/IP Checksum"
]
},
{
"name": "Code tidy",
"ops": [
"Syntax highlighter",
"Generic Code Beautify",
"JavaScript Parser",
"JavaScript Beautify",
"JavaScript Minify",
"JSON Beautify",
"JSON Minify",
"XML Beautify",
"XML Minify",
"SQL Beautify",
"SQL Minify",
"CSS Beautify",
"CSS Minify",
"XPath expression",
"JPath expression",
"CSS selector",
"PHP Deserialize",
"Microsoft Script Decoder",
"Strip HTML tags",
"Diff",
"To Snake case",
"To Camel case",
"To Kebab case",
"BSON serialise",
"BSON deserialise"
]
},
{
"name": "Other",
"ops": [
"Entropy",
"Frequency distribution",
"Chi Square",
"Detect File Type",
"Scan for Embedded Files",
"Disassemble x86",
"Pseudo-Random Number Generator",
"Generate UUID",
"Generate TOTP",
"Generate HOTP",
"Haversine distance",
"Render Image",
"Remove EXIF",
"Extract EXIF",
"Numberwang",
"XKCD Random Number"
]
},
{
"name": "Flow control",
"ops": [
"Magic",
"Fork",
"Merge",
"Register",
"Label",
"Jump",
"Conditional Jump",
"Return",
"Comment"
]
}
]
+149
View File
@@ -0,0 +1,149 @@
/**
* This script automatically generates OperationConfig.json, containing metadata
* for each operation in the src/core/operations directory.
* It also generates modules in the src/core/config/modules directory to separate
* out operations into logical collections.
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*/
/*eslint no-console: ["off"] */
import path from "path";
import fs from "fs";
import process from "process";
import * as Ops from "../../operations/index";
const dir = path.join(process.cwd() + "/src/core/config/");
if (!fs.existsSync(dir)) {
console.log("\nCWD: " + process.cwd());
console.log("Error: generateConfig.mjs should be run from the project root");
console.log("Example> node --experimental-modules src/core/config/scripts/generateConfig.mjs");
process.exit(1);
}
const operationConfig = {},
modules = {};
/**
* Generate operation config and module lists.
*/
for (const opObj in Ops) {
const op = new Ops[opObj]();
operationConfig[op.name] = {
module: op.module,
description: op.description,
infoURL: op.infoURL,
inputType: op.inputType,
outputType: op.presentType,
flowControl: op.flowControl,
args: op.args
};
if (op.hasOwnProperty("patterns")) {
operationConfig[op.name].patterns = op.patterns;
}
if (!modules.hasOwnProperty(op.module))
modules[op.module] = {};
modules[op.module][op.name] = opObj;
}
/**
* Write OperationConfig.
*/
fs.writeFileSync(
path.join(dir, "OperationConfig.json"),
JSON.stringify(operationConfig, null, 4)
);
console.log("Written OperationConfig.json");
/**
* Write modules.
*/
if (!fs.existsSync(path.join(dir, "modules/"))) {
fs.mkdirSync(path.join(dir, "modules/"));
}
for (const module in modules) {
let code = `/**
* THIS FILE IS AUTOMATICALLY GENERATED BY src/core/config/scripts/generateConfig.mjs
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright ${new Date().getUTCFullYear()}
* @license Apache-2.0
*/
`;
for (const opName in modules[module]) {
const objName = modules[module][opName];
code += `import ${objName} from "../../operations/${objName}";\n`;
}
code += `
const OpModules = typeof self === "undefined" ? {} : self.OpModules || {};
OpModules.${module} = {
`;
for (const opName in modules[module]) {
const objName = modules[module][opName];
code += ` "${opName}": ${objName},\n`;
}
code += `};
export default OpModules;
`;
fs.writeFileSync(
path.join(dir, `modules/${module}.mjs`),
code
);
console.log(`Written ${module} module`);
}
/**
* Write OpModules wrapper.
*/
let opModulesCode = `/**
* THIS FILE IS AUTOMATICALLY GENERATED BY src/core/config/scripts/generateConfig.mjs
*
* Imports all modules for builds which do not load modules separately.
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright ${new Date().getUTCFullYear()}
* @license Apache-2.0
*/
`;
for (const module in modules) {
opModulesCode += `import ${module}Module from "./${module}";\n`;
}
opModulesCode += `
const OpModules = {};
Object.assign(
OpModules,
`;
for (const module in modules) {
opModulesCode += ` ${module}Module,\n`;
}
opModulesCode += `);
export default OpModules;
`;
fs.writeFileSync(
path.join(dir, "modules/OpModules.mjs"),
opModulesCode
);
console.log("Written OpModules.mjs");
@@ -0,0 +1,60 @@
/**
* This script automatically generates src/core/operations/index.mjs, containing
* imports for all operations in src/core/operations.
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*/
/*eslint no-console: ["off"] */
import path from "path";
import fs from "fs";
import process from "process";
const dir = path.join(process.cwd() + "/src/core/config/");
if (!fs.existsSync(dir)) {
console.log("\nCWD: " + process.cwd());
console.log("Error: generateOpsIndex.mjs should be run from the project root");
console.log("Example> node --experimental-modules src/core/config/scripts/generateOpsIndex.mjs");
process.exit(1);
}
// Find all operation files
const opObjs = [];
fs.readdirSync(path.join(dir, "../operations")).forEach(file => {
if (!file.endsWith(".mjs") || file === "index.mjs") return;
opObjs.push(file.split(".mjs")[0]);
});
// Construct index file
let code = `/**
* THIS FILE IS AUTOMATICALLY GENERATED BY src/core/config/scripts/generateOpsIndex.mjs
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright ${new Date().getUTCFullYear()}
* @license Apache-2.0
*/
`;
opObjs.forEach(obj => {
code += `import ${obj} from "./${obj}";\n`;
});
code += `
export {
`;
opObjs.forEach(obj => {
code += ` ${obj},\n`;
});
code += "};\n";
// Write file
fs.writeFileSync(
path.join(dir, "../operations/index.mjs"),
code
);
console.log("Written operation index.");
+230
View File
@@ -0,0 +1,230 @@
/**
* Interactive script for generating a new operation template.
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*/
/*eslint no-console: ["off"] */
import prompt from "prompt";
import colors from "colors";
import process from "process";
import fs from "fs";
import path from "path";
import EscapeString from "../../operations/EscapeString";
const dir = path.join(process.cwd() + "/src/core/operations/");
if (!fs.existsSync(dir)) {
console.log("\nCWD: " + process.cwd());
console.log("Error: newOperation.mjs should be run from the project root");
console.log("Example> node --experimental-modules src/core/config/scripts/newOperation.mjs");
process.exit(1);
}
const ioTypes = ["string", "byteArray", "number", "html", "ArrayBuffer", "BigNumber", "JSON", "File", "List<File>"];
const schema = {
properties: {
opName: {
description: "The operation name should be short but descriptive.",
example: "URL Decode",
prompt: "Operation name",
type: "string",
pattern: /^[\w\s-/().]+$/,
required: true,
message: "Operation names should consist of letters, numbers or the following symbols: _-/()."
},
module: {
description: `Modules are used to group operations that rely on large libraries. Any operation that is not in the Default module will be loaded in dynamically when it is first called. All operations in the same module will also be loaded at this time. This system prevents the CyberChef web app from getting too bloated and taking a long time to load initially.
If your operation does not rely on a library, just leave this blank and it will be added to the Default module. If it relies on the same library as other operations, enter the name of the module those operations are in. If it relies on a new large library, enter a new module name (capitalise the first letter).`,
example: "Crypto",
prompt: "Module",
type: "string",
pattern: /^[A-Z][A-Za-z\d]+$/,
message: "Module names should start with a capital letter and not contain any spaces or symbols.",
default: "Default"
},
description: {
description: "The description should explain what the operation is and how it works. It can describe how the arguments should be entered and give examples of expected input and output. HTML markup is supported. Use <code> tags for examples. The description is scanned during searches, so include terms that are likely to be searched for when someone is looking for your operation.",
example: "Converts URI/URL percent-encoded characters back to their raw values.<br><br>e.g. <code>%3d</code> becomes <code>=</code>",
prompt: "Description",
type: "string"
},
infoURL: {
description: "An optional URL for an external site can be added to give more information about the operation. Wikipedia links are often suitable. If linking to Wikipedia, use an international link (e.g. https://wikipedia.org/...) rather than a localised link (e.g. https://en.wikipedia.org/...).",
example: "https://wikipedia.org/wiki/Percent-encoding",
prompt: "Information URL",
type: "string",
},
inputType: {
description: `The input type defines how the input data will be presented to your operation. Check the project wiki for a full description of each type. The options are: ${ioTypes.join(", ")}.`,
example: "string",
prompt: "Input type",
type: "string",
pattern: new RegExp(`^(${ioTypes.join("|")})$`),
required: true,
message: `The input type should be one of: ${ioTypes.join(", ")}.`
},
outputType: {
description: `The output type tells CyberChef what sort of data you are returning from your operation. Check the project wiki for a full description of each type. The options are: ${ioTypes.join(", ")}.`,
example: "string",
prompt: "Output type",
type: "string",
pattern: new RegExp(`^(${ioTypes.join("|")})$`),
required: true,
message: `The output type should be one of: ${ioTypes.join(", ")}.`
},
highlight: {
description: "If your operation does not change the length of the input in any way, we can enable highlighting. If it does change the length in a predictable way, we may still be able to enable highlighting and calculate the correct offsets. If this is not possible, we will disable highlighting for this operation.",
example: "true/false",
prompt: "Enable highlighting",
type: "boolean",
default: "false",
message: "Enter true or false to specify if highlighting should be enabled."
},
authorName: {
description: "Your name or username will be added to the @author tag for this operation.",
example: "n1474335",
prompt: "Username",
type: "string"
},
authorEmail: {
description: "Your email address will also be added to the @author tag for this operation.",
example: "n1474335@gmail.com",
prompt: "Email",
type: "string"
}
}
};
// Build schema
for (const prop in schema.properties) {
const p = schema.properties[prop];
p.description = "\n" + colors.white(p.description) + colors.cyan("\nExample: " + p.example) + "\n" + colors.green(p.prompt);
}
console.log("\n\nThis script will generate a new operation template based on the information you provide. These values can be changed manually later.".yellow);
prompt.message = "";
prompt.delimiter = ":".green;
prompt.start();
prompt.get(schema, (err, result) => {
if (err) {
console.log("\nExiting build script.");
process.exit(0);
}
const moduleName = result.opName.replace(/\w\S*/g, txt => {
return txt.charAt(0).toUpperCase() + txt.substr(1);
}).replace(/[\s-()/./]/g, "");
const template = `/**
* @author ${result.authorName} [${result.authorEmail}]
* @copyright Crown Copyright ${(new Date()).getFullYear()}
* @license Apache-2.0
*/
import Operation from "../Operation";
import OperationError from "../errors/OperationError";
/**
* ${result.opName} operation
*/
class ${moduleName} extends Operation {
/**
* ${moduleName} constructor
*/
constructor() {
super();
this.name = "${result.opName}";
this.module = "${result.module}";
this.description = "${(new EscapeString).run(result.description, ["Special chars", "Double"])}";
this.infoURL = "${result.infoURL}";
this.inputType = "${result.inputType}";
this.outputType = "${result.outputType}";
this.args = [
/* Example arguments. See the project wiki for full details.
{
name: "First arg",
type: "string",
value: "Don't Panic"
},
{
name: "Second arg",
type: "number",
value: 42
}
*/
];
}
/**
* @param {${result.inputType}} input
* @param {Object[]} args
* @returns {${result.outputType}}
*/
run(input, args) {
// const [firstArg, secondArg] = args;
throw new OperationError("Test");
}
${result.highlight ? `
/**
* Highlight ${result.opName}
*
* @param {Object[]} pos
* @param {number} pos[].start
* @param {number} pos[].end
* @param {Object[]} args
* @returns {Object[]} pos
*/
highlight(pos, args) {
return pos;
}
/**
* Highlight ${result.opName} in reverse
*
* @param {Object[]} pos
* @param {number} pos[].start
* @param {number} pos[].end
* @param {Object[]} args
* @returns {Object[]} pos
*/
highlightReverse(pos, args) {
return pos;
}
` : ""}
}
export default ${moduleName};
`;
//console.log(template);
const filename = path.join(dir, `./${moduleName}.mjs`);
if (fs.existsSync(filename)) {
console.log(`${filename} already exists. It has NOT been overwritten.`.red);
console.log("Choose a different operation name to avoid conflicts.");
process.exit(0);
}
fs.writeFileSync(filename, template);
console.log(`\nOperation template written to ${colors.green(filename)}`);
console.log(`\nNext steps:
1. Add your operation to ${colors.green("src/core/config/Categories.json")}
2. Write your operation code.
3. Write tests in ${colors.green("test/tests/operations/")}
4. Run ${colors.cyan("npm run lint")} and ${colors.cyan("npm run test")}
5. Submit a Pull Request to get your operation added to the official CyberChef repository.`);
});
+26
View File
@@ -0,0 +1,26 @@
/**
* Custom error type for handling operation input errors.
* i.e. where the operation can handle the error and print a message to the screen.
*
* @author d98762625 [d98762625@gmail.com]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*/
class OperationError extends Error {
/**
* Standard error constructor. Adds no new behaviour.
*
* @param args - Standard error args
*/
constructor(...args) {
super(...args);
this.type = "OperationError";
if (Error.captureStackTrace) {
Error.captureStackTrace(this, OperationError);
}
}
}
export default OperationError;
+139
View File
@@ -0,0 +1,139 @@
/**
* @author bwhitn [brian.m.whitney@outlook.com]
* @author d98762625 [d98762625@gmailcom]
* @copyright Crown Copyright 2018
* @license Apache-2.0
*/
import Utils from "../Utils";
import BigNumber from "bignumber.js";
/**
* Converts a string array to a number array.
*
* @param {string[]} input
* @param {string} delim
* @returns {BigNumber[]}
*/
export function createNumArray(input, delim) {
delim = Utils.charRep(delim || "Space");
const splitNumbers = input.split(delim);
const numbers = [];
let num;
splitNumbers.map((number) => {
try {
num = BigNumber(number.trim());
if (!num.isNaN()) {
numbers.push(num);
}
} catch (err) {
// This line is not a valid number
}
});
return numbers;
}
/**
* Adds an array of numbers and returns the value.
*
* @param {BigNumber[]} data
* @returns {BigNumber}
*/
export function sum(data) {
if (data.length > 0) {
return data.reduce((acc, curr) => acc.plus(curr));
}
}
/**
* Subtracts an array of numbers and returns the value.
*
* @param {BigNumber[]} data
* @returns {BigNumber}
*/
export function sub(data) {
if (data.length > 0) {
return data.reduce((acc, curr) => acc.minus(curr));
}
}
/**
* Multiplies an array of numbers and returns the value.
*
* @param {BigNumber[]} data
* @returns {BigNumber}
*/
export function multi(data) {
if (data.length > 0) {
return data.reduce((acc, curr) => acc.times(curr));
}
}
/**
* Divides an array of numbers and returns the value.
*
* @param {BigNumber[]} data
* @returns {BigNumber}
*/
export function div(data) {
if (data.length > 0) {
return data.reduce((acc, curr) => acc.div(curr));
}
}
/**
* Computes mean of a number array and returns the value.
*
* @param {BigNumber[]} data
* @returns {BigNumber}
*/
export function mean(data) {
if (data.length > 0) {
return sum(data).div(data.length);
}
}
/**
* Computes median of a number array and returns the value.
*
* @param {BigNumber[]} data
* @returns {BigNumber}
*/
export function median(data) {
if ((data.length % 2) === 0 && data.length > 0) {
data.sort(function(a, b){
return a.minus(b);
});
const first = data[Math.floor(data.length / 2)];
const second = data[Math.floor(data.length / 2) - 1];
return mean([first, second]);
} else {
return data[Math.floor(data.length / 2)];
}
}
/**
* Computes standard deviation of a number array and returns the value.
*
* @param {BigNumber[]} data
* @returns {BigNumber}
*/
export function stdDev(data) {
if (data.length > 0) {
const avg = mean(data);
let devSum = new BigNumber(0);
data.map((datum) => {
devSum = devSum.plus(datum.minus(avg).pow(2));
});
return devSum.div(data.length).sqrt();
}
}
+48
View File
@@ -0,0 +1,48 @@
/**
* Binary Code Decimal resources.
*
* @author n1474335 [n1474335@gmail.com]
* @copyright Crown Copyright 2017
* @license Apache-2.0
*/
/**
* BCD encoding schemes.
*/
export const ENCODING_SCHEME = [
"8 4 2 1",
"7 4 2 1",
"4 2 2 1",
"2 4 2 1",
"8 4 -2 -1",
"Excess-3",
"IBM 8 4 2 1",
];
/**
* Lookup table for the binary value of each digit representation.
*
* I wrote a very nice algorithm to generate 8 4 2 1 encoding programatically,
* but unfortunately it's much easier (if less elegant) to use lookup tables
* when supporting multiple encoding schemes.
*
* "Practicality beats purity" - PEP 20
*
* In some schemes it is possible to represent the same value in multiple ways.
* For instance, in 4 2 2 1 encoding, 0100 and 0010 both represent 2. Support
* has not yet been added for this.
*/
export const ENCODING_LOOKUP = {
"8 4 2 1": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9],
"7 4 2 1": [0, 1, 2, 3, 4, 5, 6, 8, 9, 10],
"4 2 2 1": [0, 1, 4, 5, 8, 9, 12, 13, 14, 15],
"2 4 2 1": [0, 1, 2, 3, 4, 11, 12, 13, 14, 15],
"8 4 -2 -1": [0, 7, 6, 5, 4, 11, 10, 9, 8, 15],
"Excess-3": [3, 4, 5, 6, 7, 8, 9, 10, 11, 12],
"IBM 8 4 2 1": [10, 1, 2, 3, 4, 5, 6, 7, 8, 9],
};
/**
* BCD formats.
*/
export const FORMAT = ["Nibbles", "Bytes", "Raw"];
Loaded 100 of 480 files, more files were not shown because too many files have changed in this diff. Show more