{
    "A1Z26 Cipher Decode": {
        "module": "Ciphers",
        "description": "Converts alphabet order numbers into their corresponding  alphabet character.<br><br>e.g. <code>1</code> becomes <code>a</code> and <code>2</code> becomes <code>b</code>.",
        "infoURL": "",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Delimiter",
                "type": "option",
                "value": [
                    "Space",
                    "Comma",
                    "Semi-colon",
                    "Colon",
                    "Line feed",
                    "CRLF"
                ]
            }
        ],
        "checks": [
            {
                "pattern": "^\\s*([12]?[0-9] )+[12]?[0-9]\\s*$",
                "flags": "",
                "args": [
                    "Space"
                ]
            },
            {
                "pattern": "^\\s*([12]?[0-9],)+[12]?[0-9]\\s*$",
                "flags": "",
                "args": [
                    "Comma"
                ]
            },
            {
                "pattern": "^\\s*([12]?[0-9];)+[12]?[0-9]\\s*$",
                "flags": "",
                "args": [
                    "Semi-colon"
                ]
            },
            {
                "pattern": "^\\s*([12]?[0-9]:)+[12]?[0-9]\\s*$",
                "flags": "",
                "args": [
                    "Colon"
                ]
            },
            {
                "pattern": "^\\s*([12]?[0-9]\\n)+[12]?[0-9]\\s*$",
                "flags": "",
                "args": [
                    "Line feed"
                ]
            },
            {
                "pattern": "^\\s*([12]?[0-9]\\r\\n)+[12]?[0-9]\\s*$",
                "flags": "",
                "args": [
                    "CRLF"
                ]
            }
        ]
    },
    "A1Z26 Cipher Encode": {
        "module": "Ciphers",
        "description": "Converts alphabet characters into their corresponding alphabet order number.<br><br>e.g. <code>a</code> becomes <code>1</code> and <code>b</code> becomes <code>2</code>.<br><br>Non-alphabet characters are dropped.",
        "infoURL": "",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Delimiter",
                "type": "option",
                "value": [
                    "Space",
                    "Comma",
                    "Semi-colon",
                    "Colon",
                    "Line feed",
                    "CRLF"
                ]
            }
        ]
    },
    "ADD": {
        "module": "Default",
        "description": "ADD the input with the given key (e.g. <code>fe023da5</code>), MOD 255",
        "infoURL": "https://wikipedia.org/wiki/Bitwise_operation#Bitwise_operators",
        "inputType": "byteArray",
        "outputType": "byteArray",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Key",
                "type": "toggleString",
                "value": "",
                "toggleValues": [
                    "Hex",
                    "Decimal",
                    "Binary",
                    "Base64",
                    "UTF8",
                    "Latin1"
                ]
            }
        ]
    },
    "AES Decrypt": {
        "module": "Ciphers",
        "description": "Advanced Encryption Standard (AES) is a U.S. Federal Information Processing Standard (FIPS). It was selected after a 5-year process where 15 competing designs were evaluated.<br><br><b>Key:</b> The following algorithms will be used based on the size of the key:<ul><li>16 bytes = AES-128</li><li>24 bytes = AES-192</li><li>32 bytes = AES-256</li></ul><br><br><b>IV:</b> The Initialization Vector should be 16 bytes long. If not entered, it will default to 16 null bytes.<br><br><b>Padding:</b> In CBC and ECB mode, PKCS#7 padding will be used as a default.<br><br><b>GCM Tag:</b> This field is ignored unless 'GCM' mode is used.",
        "infoURL": "https://wikipedia.org/wiki/Advanced_Encryption_Standard",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Key",
                "type": "toggleString",
                "value": "",
                "toggleValues": [
                    "Hex",
                    "UTF8",
                    "Latin1",
                    "Base64"
                ]
            },
            {
                "name": "IV",
                "type": "toggleString",
                "value": "",
                "toggleValues": [
                    "Hex",
                    "UTF8",
                    "Latin1",
                    "Base64"
                ]
            },
            {
                "name": "Mode",
                "type": "argSelector",
                "value": [
                    {
                        "name": "CBC",
                        "off": [
                            5,
                            6
                        ]
                    },
                    {
                        "name": "CFB",
                        "off": [
                            5,
                            6
                        ]
                    },
                    {
                        "name": "OFB",
                        "off": [
                            5,
                            6
                        ]
                    },
                    {
                        "name": "CTR",
                        "off": [
                            5,
                            6
                        ]
                    },
                    {
                        "name": "GCM",
                        "on": [
                            5,
                            6
                        ]
                    },
                    {
                        "name": "ECB",
                        "off": [
                            5,
                            6
                        ]
                    },
                    {
                        "name": "CBC/NoPadding",
                        "off": [
                            5,
                            6
                        ]
                    },
                    {
                        "name": "ECB/NoPadding",
                        "off": [
                            5,
                            6
                        ]
                    }
                ]
            },
            {
                "name": "Input",
                "type": "option",
                "value": [
                    "Hex",
                    "Raw"
                ]
            },
            {
                "name": "Output",
                "type": "option",
                "value": [
                    "Raw",
                    "Hex"
                ]
            },
            {
                "name": "GCM Tag",
                "type": "toggleString",
                "value": "",
                "toggleValues": [
                    "Hex",
                    "UTF8",
                    "Latin1",
                    "Base64"
                ]
            },
            {
                "name": "Additional Authenticated Data",
                "type": "toggleString",
                "value": "",
                "toggleValues": [
                    "Hex",
                    "UTF8",
                    "Latin1",
                    "Base64"
                ]
            }
        ]
    },
    "AES Encrypt": {
        "module": "Ciphers",
        "description": "Advanced Encryption Standard (AES) is a U.S. Federal Information Processing Standard (FIPS). It was selected after a 5-year process where 15 competing designs were evaluated.<br><br><b>Key:</b> The following algorithms will be used based on the size of the key:<ul><li>16 bytes = AES-128</li><li>24 bytes = AES-192</li><li>32 bytes = AES-256</li></ul>You can generate a password-based key using one of the KDF operations.<br><br><b>IV:</b> The Initialization Vector should be 16 bytes long. If not entered, it will default to 16 null bytes.<br><br><b>Padding:</b> In CBC and ECB mode, PKCS#7 padding will be used.",
        "infoURL": "https://wikipedia.org/wiki/Advanced_Encryption_Standard",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Key",
                "type": "toggleString",
                "value": "",
                "toggleValues": [
                    "Hex",
                    "UTF8",
                    "Latin1",
                    "Base64"
                ]
            },
            {
                "name": "IV",
                "type": "toggleString",
                "value": "",
                "toggleValues": [
                    "Hex",
                    "UTF8",
                    "Latin1",
                    "Base64"
                ]
            },
            {
                "name": "Mode",
                "type": "argSelector",
                "value": [
                    {
                        "name": "CBC",
                        "off": [
                            5
                        ]
                    },
                    {
                        "name": "CFB",
                        "off": [
                            5
                        ]
                    },
                    {
                        "name": "OFB",
                        "off": [
                            5
                        ]
                    },
                    {
                        "name": "CTR",
                        "off": [
                            5
                        ]
                    },
                    {
                        "name": "GCM",
                        "on": [
                            5
                        ]
                    },
                    {
                        "name": "ECB",
                        "off": [
                            5
                        ]
                    }
                ]
            },
            {
                "name": "Input",
                "type": "option",
                "value": [
                    "Raw",
                    "Hex"
                ]
            },
            {
                "name": "Output",
                "type": "option",
                "value": [
                    "Hex",
                    "Raw"
                ]
            },
            {
                "name": "Additional Authenticated Data",
                "type": "toggleString",
                "value": "",
                "toggleValues": [
                    "Hex",
                    "UTF8",
                    "Latin1",
                    "Base64"
                ]
            }
        ]
    },
    "AES Key Unwrap": {
        "module": "Ciphers",
        "description": "Decryptor for a key wrapping algorithm defined in RFC3394, which is used to protect keys in untrusted storage or communications, using AES.<br><br>This algorithm uses an AES key (KEK: key-encryption key) and a 64-bit IV to decrypt 64-bit blocks.",
        "infoURL": "https://wikipedia.org/wiki/Key_wrap",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Key (KEK)",
                "type": "toggleString",
                "value": "",
                "toggleValues": [
                    "Hex",
                    "UTF8",
                    "Latin1",
                    "Base64"
                ]
            },
            {
                "name": "IV",
                "type": "toggleString",
                "value": "a6a6a6a6a6a6a6a6",
                "toggleValues": [
                    "Hex",
                    "UTF8",
                    "Latin1",
                    "Base64"
                ]
            },
            {
                "name": "Input",
                "type": "option",
                "value": [
                    "Hex",
                    "Raw"
                ]
            },
            {
                "name": "Output",
                "type": "option",
                "value": [
                    "Hex",
                    "Raw"
                ]
            }
        ]
    },
    "AES Key Wrap": {
        "module": "Ciphers",
        "description": "A key wrapping algorithm defined in RFC3394, which is used to protect keys in untrusted storage or communications, using AES.<br><br>This algorithm uses an AES key (KEK: key-encryption key) and a 64-bit IV to encrypt 64-bit blocks.",
        "infoURL": "https://wikipedia.org/wiki/Key_wrap",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Key (KEK)",
                "type": "toggleString",
                "value": "",
                "toggleValues": [
                    "Hex",
                    "UTF8",
                    "Latin1",
                    "Base64"
                ]
            },
            {
                "name": "IV",
                "type": "toggleString",
                "value": "a6a6a6a6a6a6a6a6",
                "toggleValues": [
                    "Hex",
                    "UTF8",
                    "Latin1",
                    "Base64"
                ]
            },
            {
                "name": "Input",
                "type": "option",
                "value": [
                    "Hex",
                    "Raw"
                ]
            },
            {
                "name": "Output",
                "type": "option",
                "value": [
                    "Hex",
                    "Raw"
                ]
            }
        ]
    },
    "AMF Decode": {
        "module": "Encodings",
        "description": "Action Message Format (AMF) is a binary format used to serialize object graphs such as ActionScript objects and XML, or send messages between an Adobe Flash client and a remote service, usually a Flash Media Server or third party alternatives.",
        "infoURL": "https://wikipedia.org/wiki/Action_Message_Format",
        "inputType": "ArrayBuffer",
        "outputType": "JSON",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Format",
                "type": "option",
                "value": [
                    "AMF0",
                    "AMF3"
                ],
                "defaultIndex": 1
            }
        ]
    },
    "AMF Encode": {
        "module": "Encodings",
        "description": "Action Message Format (AMF) is a binary format used to serialize object graphs such as ActionScript objects and XML, or send messages between an Adobe Flash client and a remote service, usually a Flash Media Server or third party alternatives.",
        "infoURL": "https://wikipedia.org/wiki/Action_Message_Format",
        "inputType": "JSON",
        "outputType": "ArrayBuffer",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Format",
                "type": "option",
                "value": [
                    "AMF0",
                    "AMF3"
                ],
                "defaultIndex": 1
            }
        ]
    },
    "AND": {
        "module": "Default",
        "description": "AND the input with the given key.<br>e.g. <code>fe023da5</code>",
        "infoURL": "https://wikipedia.org/wiki/Bitwise_operation#AND",
        "inputType": "byteArray",
        "outputType": "byteArray",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Key",
                "type": "toggleString",
                "value": "",
                "toggleValues": [
                    "Hex",
                    "Decimal",
                    "Binary",
                    "Base64",
                    "UTF8",
                    "Latin1"
                ]
            }
        ]
    },
    "Add line numbers": {
        "module": "Default",
        "description": "Adds line numbers to the output.",
        "infoURL": null,
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": []
    },
    "Add Text To Image": {
        "module": "Image",
        "description": "Adds text onto an image.<br><br>Text can be horizontally or vertically aligned, or the position can be manually specified.<br>Variants of the Roboto font face are available in any size or colour.",
        "infoURL": "",
        "inputType": "ArrayBuffer",
        "outputType": "html",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Text",
                "type": "string",
                "value": ""
            },
            {
                "name": "Horizontal align",
                "type": "option",
                "value": [
                    "None",
                    "Left",
                    "Center",
                    "Right"
                ]
            },
            {
                "name": "Vertical align",
                "type": "option",
                "value": [
                    "None",
                    "Top",
                    "Middle",
                    "Bottom"
                ]
            },
            {
                "name": "X position",
                "type": "number",
                "value": 0
            },
            {
                "name": "Y position",
                "type": "number",
                "value": 0
            },
            {
                "name": "Size",
                "type": "number",
                "value": 32,
                "min": 8
            },
            {
                "name": "Font face",
                "type": "option",
                "value": [
                    "Roboto",
                    "Roboto Black",
                    "Roboto Mono",
                    "Roboto Slab"
                ]
            },
            {
                "name": "Red",
                "type": "number",
                "value": 255,
                "min": 0,
                "max": 255
            },
            {
                "name": "Green",
                "type": "number",
                "value": 255,
                "min": 0,
                "max": 255
            },
            {
                "name": "Blue",
                "type": "number",
                "value": 255,
                "min": 0,
                "max": 255
            },
            {
                "name": "Alpha",
                "type": "number",
                "value": 255,
                "min": 0,
                "max": 255
            }
        ]
    },
    "Adler-32 Checksum": {
        "module": "Crypto",
        "description": "Adler-32 is a checksum algorithm which was invented by Mark Adler in 1995, and is a modification of the Fletcher checksum. Compared to a cyclic redundancy check of the same length, it trades reliability for speed (preferring the latter).<br><br>Adler-32 is more reliable than Fletcher-16, and slightly less reliable than Fletcher-32.",
        "infoURL": "https://wikipedia.org/wiki/Adler-32",
        "inputType": "ArrayBuffer",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": []
    },
    "Affine Cipher Decode": {
        "module": "Ciphers",
        "description": "The Affine cipher is a type of monoalphabetic substitution cipher. To decrypt, each letter in an alphabet is mapped to its numeric equivalent, decrypted by a mathematical function, and converted back to a letter.",
        "infoURL": "https://wikipedia.org/wiki/Affine_cipher",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "a",
                "type": "number",
                "value": 1
            },
            {
                "name": "b",
                "type": "number",
                "value": 0
            }
        ]
    },
    "Affine Cipher Encode": {
        "module": "Ciphers",
        "description": "The Affine cipher is a type of monoalphabetic substitution cipher, wherein each letter in an alphabet is mapped to its numeric equivalent, encrypted using simple mathematical function, <code>(ax + b) % 26</code>, and converted back to a letter.",
        "infoURL": "https://wikipedia.org/wiki/Affine_cipher",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "a",
                "type": "number",
                "value": 1
            },
            {
                "name": "b",
                "type": "number",
                "value": 0
            }
        ]
    },
    "Analyse hash": {
        "module": "Crypto",
        "description": "Tries to determine information about a given hash and suggests which algorithm may have been used to generate it based on its length.",
        "infoURL": "https://wikipedia.org/wiki/Comparison_of_cryptographic_hash_functions",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": []
    },
    "Atbash Cipher": {
        "module": "Ciphers",
        "description": "Atbash is a mono-alphabetic substitution cipher originally used to encode the Hebrew alphabet. It has been modified here for use with the Latin alphabet.",
        "infoURL": "https://wikipedia.org/wiki/Atbash",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": []
    },
    "Avro to JSON": {
        "module": "Serialise",
        "description": "Converts Avro encoded data into JSON.",
        "infoURL": "https://wikipedia.org/wiki/Apache_Avro",
        "inputType": "ArrayBuffer",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Force Valid JSON",
                "type": "boolean",
                "value": true
            }
        ]
    },
    "BLAKE2b": {
        "module": "Hashing",
        "description": "Performs BLAKE2b hashing on the input.  \n        <br><br> BLAKE2b is a flavour of the BLAKE cryptographic hash function that is optimized for 64-bit platforms and produces digests of any size between 1 and 64 bytes.\n        <br><br> Supports the use of an optional key.",
        "infoURL": "https://wikipedia.org/wiki/BLAKE_(hash_function)#BLAKE2b_algorithm",
        "inputType": "ArrayBuffer",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Size",
                "type": "option",
                "value": [
                    "512",
                    "384",
                    "256",
                    "160",
                    "128"
                ]
            },
            {
                "name": "Output Encoding",
                "type": "option",
                "value": [
                    "Hex",
                    "Base64",
                    "Raw"
                ]
            },
            {
                "name": "Key",
                "type": "toggleString",
                "value": "",
                "toggleValues": [
                    "UTF8",
                    "Decimal",
                    "Base64",
                    "Hex",
                    "Latin1"
                ]
            }
        ]
    },
    "BLAKE2s": {
        "module": "Hashing",
        "description": "Performs BLAKE2s hashing on the input.  \n        <br><br>BLAKE2s is a flavour of the BLAKE cryptographic hash function that is optimized for 8- to 32-bit platforms and produces digests of any size between 1 and 32 bytes.\n        <br><br>Supports the use of an optional key.",
        "infoURL": "https://wikipedia.org/wiki/BLAKE_(hash_function)#BLAKE2",
        "inputType": "ArrayBuffer",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Size",
                "type": "option",
                "value": [
                    "256",
                    "160",
                    "128"
                ]
            },
            {
                "name": "Output Encoding",
                "type": "option",
                "value": [
                    "Hex",
                    "Base64",
                    "Raw"
                ]
            },
            {
                "name": "Key",
                "type": "toggleString",
                "value": "",
                "toggleValues": [
                    "UTF8",
                    "Decimal",
                    "Base64",
                    "Hex",
                    "Latin1"
                ]
            }
        ]
    },
    "BSON deserialise": {
        "module": "Serialise",
        "description": "BSON is a computer data interchange format used mainly as a data storage and network transfer format in the MongoDB database. It is a binary form for representing simple data structures, associative arrays (called objects or documents in MongoDB), and various data types of specific interest to MongoDB. The name 'BSON' is based on the term JSON and stands for 'Binary JSON'.<br><br>Input data should be in a raw bytes format.",
        "infoURL": "https://wikipedia.org/wiki/BSON",
        "inputType": "ArrayBuffer",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": []
    },
    "BSON serialise": {
        "module": "Serialise",
        "description": "BSON is a computer data interchange format used mainly as a data storage and network transfer format in the MongoDB database. It is a binary form for representing simple data structures, associative arrays (called objects or documents in MongoDB), and various data types of specific interest to MongoDB. The name 'BSON' is based on the term JSON and stands for 'Binary JSON'.<br><br>Input data should be valid JSON.",
        "infoURL": "https://wikipedia.org/wiki/BSON",
        "inputType": "string",
        "outputType": "ArrayBuffer",
        "flowControl": false,
        "manualBake": false,
        "args": []
    },
    "Bacon Cipher Decode": {
        "module": "Default",
        "description": "Bacon's cipher or the Baconian cipher is a method of steganography devised by Francis Bacon in 1605. A message is concealed in the presentation of text, rather than its content.",
        "infoURL": "https://wikipedia.org/wiki/Bacon%27s_cipher",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Alphabet",
                "type": "option",
                "value": [
                    "Standard (I=J and U=V)",
                    "Complete"
                ]
            },
            {
                "name": "Translation",
                "type": "option",
                "value": [
                    "0/1",
                    "A/B",
                    "Case",
                    "A-M/N-Z first letter"
                ]
            },
            {
                "name": "Invert Translation",
                "type": "boolean",
                "value": false
            }
        ],
        "checks": [
            {
                "pattern": "^\\s*([01]{5}\\s?)+$",
                "flags": "",
                "args": [
                    "Standard (I=J and U=V)",
                    "0/1",
                    false
                ]
            },
            {
                "pattern": "^\\s*([01]{5}\\s?)+$",
                "flags": "",
                "args": [
                    "Standard (I=J and U=V)",
                    "0/1",
                    true
                ]
            },
            {
                "pattern": "^\\s*([AB]{5}\\s?)+$",
                "flags": "",
                "args": [
                    "Standard (I=J and U=V)",
                    "A/B",
                    false
                ]
            },
            {
                "pattern": "^\\s*([AB]{5}\\s?)+$",
                "flags": "",
                "args": [
                    "Standard (I=J and U=V)",
                    "A/B",
                    true
                ]
            },
            {
                "pattern": "^\\s*([01]{5}\\s?)+$",
                "flags": "",
                "args": [
                    "Complete",
                    "0/1",
                    false
                ]
            },
            {
                "pattern": "^\\s*([01]{5}\\s?)+$",
                "flags": "",
                "args": [
                    "Complete",
                    "0/1",
                    true
                ]
            },
            {
                "pattern": "^\\s*([AB]{5}\\s?)+$",
                "flags": "",
                "args": [
                    "Complete",
                    "A/B",
                    false
                ]
            },
            {
                "pattern": "^\\s*([AB]{5}\\s?)+$",
                "flags": "",
                "args": [
                    "Complete",
                    "A/B",
                    true
                ]
            }
        ]
    },
    "Bacon Cipher Encode": {
        "module": "Default",
        "description": "Bacon's cipher or the Baconian cipher is a method of steganography devised by Francis Bacon in 1605. A message is concealed in the presentation of text, rather than its content.",
        "infoURL": "https://wikipedia.org/wiki/Bacon%27s_cipher",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Alphabet",
                "type": "option",
                "value": [
                    "Standard (I=J and U=V)",
                    "Complete"
                ]
            },
            {
                "name": "Translation",
                "type": "option",
                "value": [
                    "0/1",
                    "A/B"
                ]
            },
            {
                "name": "Keep extra characters",
                "type": "boolean",
                "value": false
            },
            {
                "name": "Invert Translation",
                "type": "boolean",
                "value": false
            }
        ]
    },
    "Bcrypt": {
        "module": "Crypto",
        "description": "bcrypt is a password hashing function designed by Niels Provos and David Mazières, based on the Blowfish cipher, and presented at USENIX in 1999. Besides incorporating a salt to protect against rainbow table attacks, bcrypt is an adaptive function: over time, the iteration count (rounds) can be increased to make it slower, so it remains resistant to brute-force search attacks even with increasing computation power.<br><br>Enter the password in the input to generate its hash.",
        "infoURL": "https://wikipedia.org/wiki/Bcrypt",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Rounds",
                "type": "number",
                "value": 10
            }
        ]
    },
    "Bcrypt compare": {
        "module": "Crypto",
        "description": "Tests whether the input matches the given bcrypt hash. To test multiple possible passwords, use the 'Fork' operation.",
        "infoURL": "https://wikipedia.org/wiki/Bcrypt",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Hash",
                "type": "string",
                "value": ""
            }
        ]
    },
    "Bcrypt parse": {
        "module": "Crypto",
        "description": "Parses a bcrypt hash to determine the number of rounds used, the salt, and the password hash.",
        "infoURL": "https://wikipedia.org/wiki/Bcrypt",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": []
    },
    "Bifid Cipher Decode": {
        "module": "Ciphers",
        "description": "The Bifid cipher is a cipher which uses a Polybius square in conjunction with transposition, which can be fairly difficult to decipher without knowing the alphabet keyword.",
        "infoURL": "https://wikipedia.org/wiki/Bifid_cipher",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Keyword",
                "type": "string",
                "value": ""
            }
        ]
    },
    "Bifid Cipher Encode": {
        "module": "Ciphers",
        "description": "The Bifid cipher is a cipher which uses a Polybius square in conjunction with transposition, which can be fairly difficult to decipher without knowing the alphabet keyword.",
        "infoURL": "https://wikipedia.org/wiki/Bifid_cipher",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Keyword",
                "type": "string",
                "value": ""
            }
        ]
    },
    "Bit shift left": {
        "module": "Default",
        "description": "Shifts the bits in each byte towards the left by the specified amount.",
        "infoURL": "https://wikipedia.org/wiki/Bitwise_operation#Bit_shifts",
        "inputType": "ArrayBuffer",
        "outputType": "ArrayBuffer",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Amount",
                "type": "number",
                "value": 1
            }
        ]
    },
    "Bit shift right": {
        "module": "Default",
        "description": "Shifts the bits in each byte towards the right by the specified amount.<br><br><i>Logical shifts</i> replace the leftmost bits with zeros.<br><i>Arithmetic shifts</i> preserve the most significant bit (MSB) of the original byte keeping the sign the same (positive or negative).",
        "infoURL": "https://wikipedia.org/wiki/Bitwise_operation#Bit_shifts",
        "inputType": "ArrayBuffer",
        "outputType": "ArrayBuffer",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Amount",
                "type": "number",
                "value": 1
            },
            {
                "name": "Type",
                "type": "option",
                "value": [
                    "Logical shift",
                    "Arithmetic shift"
                ]
            }
        ]
    },
    "Blowfish Decrypt": {
        "module": "Ciphers",
        "description": "Blowfish is a symmetric-key block cipher designed in 1993 by Bruce Schneier and included in a large number of cipher suites and encryption products. AES now receives more attention.<br><br><b>IV:</b> The Initialization Vector should be 8 bytes long. If not entered, it will default to 8 null bytes.",
        "infoURL": "https://wikipedia.org/wiki/Blowfish_(cipher)",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Key",
                "type": "toggleString",
                "value": "",
                "toggleValues": [
                    "Hex",
                    "UTF8",
                    "Latin1",
                    "Base64"
                ]
            },
            {
                "name": "IV",
                "type": "toggleString",
                "value": "",
                "toggleValues": [
                    "Hex",
                    "UTF8",
                    "Latin1",
                    "Base64"
                ]
            },
            {
                "name": "Mode",
                "type": "option",
                "value": [
                    "CBC",
                    "CFB",
                    "OFB",
                    "CTR",
                    "ECB"
                ]
            },
            {
                "name": "Input",
                "type": "option",
                "value": [
                    "Hex",
                    "Raw"
                ]
            },
            {
                "name": "Output",
                "type": "option",
                "value": [
                    "Raw",
                    "Hex"
                ]
            }
        ]
    },
    "Blowfish Encrypt": {
        "module": "Ciphers",
        "description": "Blowfish is a symmetric-key block cipher designed in 1993 by Bruce Schneier and included in a large number of cipher suites and encryption products. AES now receives more attention.<br><br><b>IV:</b> The Initialization Vector should be 8 bytes long. If not entered, it will default to 8 null bytes.",
        "infoURL": "https://wikipedia.org/wiki/Blowfish_(cipher)",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Key",
                "type": "toggleString",
                "value": "",
                "toggleValues": [
                    "Hex",
                    "UTF8",
                    "Latin1",
                    "Base64"
                ]
            },
            {
                "name": "IV",
                "type": "toggleString",
                "value": "",
                "toggleValues": [
                    "Hex",
                    "UTF8",
                    "Latin1",
                    "Base64"
                ]
            },
            {
                "name": "Mode",
                "type": "option",
                "value": [
                    "CBC",
                    "CFB",
                    "OFB",
                    "CTR",
                    "ECB"
                ]
            },
            {
                "name": "Input",
                "type": "option",
                "value": [
                    "Raw",
                    "Hex"
                ]
            },
            {
                "name": "Output",
                "type": "option",
                "value": [
                    "Hex",
                    "Raw"
                ]
            }
        ]
    },
    "Blur Image": {
        "module": "Image",
        "description": "Applies a blur effect to the image.<br><br>Gaussian blur is much slower than fast blur, but produces better results.",
        "infoURL": "https://wikipedia.org/wiki/Gaussian_blur",
        "inputType": "ArrayBuffer",
        "outputType": "html",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Amount",
                "type": "number",
                "value": 5,
                "min": 1
            },
            {
                "name": "Type",
                "type": "option",
                "value": [
                    "Fast",
                    "Gaussian"
                ]
            }
        ]
    },
    "Bombe": {
        "module": "Bletchley",
        "description": "Emulation of the Bombe machine used at Bletchley Park to attack Enigma, based on work by Polish and British cryptanalysts.<br><br>To run this you need to have a 'crib', which is some known plaintext for a chunk of the target ciphertext, and know the rotors used. (See the 'Bombe (multiple runs)' operation if you don't know the rotors.) The machine will suggest possible configurations of the Enigma. Each suggestion has the rotor start positions (left to right) and known plugboard pairs.<br><br>Choosing a crib: First, note that Enigma cannot encrypt a letter to itself, which allows you to rule out some positions for possible cribs. Secondly, the Bombe does not simulate the Enigma's middle rotor stepping. The longer your crib, the more likely a step happened within it, which will prevent the attack working. However, other than that, longer cribs are generally better. The attack produces a 'menu' which maps ciphertext letters to plaintext, and the goal is to produce 'loops': for example, with ciphertext ABC and crib CAB, we have the mappings A&lt;-&gt;C, B&lt;-&gt;A, and C&lt;-&gt;B, which produces a loop A-B-C-A. The more loops, the better the crib. The operation will output this: if your menu has too few loops or is too short, a large number of incorrect outputs will usually be produced. Try a different crib. If the menu seems good but the right answer isn't produced, your crib may be wrong, or you may have overlapped the middle rotor stepping - try a different crib.<br><br>Output is not sufficient to fully decrypt the data. You will have to recover the rest of the plugboard settings by inspection. And the ring position is not taken into account: this affects when the middle rotor steps. If your output is correct for a bit, and then goes wrong, adjust the ring and start position on the right-hand rotor together until the output improves. If necessary, repeat for the middle rotor.<br><br>By default this operation runs the checking machine, a manual process to verify the quality of Bombe stops, on each stop, discarding stops which fail. If you want to see how many times the hardware actually stops for a given input, disable the checking machine.<br><br>More detailed descriptions of the Enigma, Typex and Bombe operations <a href='https://github.com/gchq/CyberChef/wiki/Enigma,-the-Bombe,-and-Typex'>can be found here</a>.",
        "infoURL": "https://wikipedia.org/wiki/Bombe",
        "inputType": "string",
        "outputType": "html",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Model",
                "type": "argSelector",
                "value": [
                    {
                        "name": "3-rotor",
                        "off": [
                            1
                        ]
                    },
                    {
                        "name": "4-rotor",
                        "on": [
                            1
                        ]
                    }
                ]
            },
            {
                "name": "Left-most (4th) rotor",
                "type": "editableOption",
                "value": [
                    {
                        "name": "Beta",
                        "value": "LEYJVCNIXWPBQMDRTAKZGFUHOS"
                    },
                    {
                        "name": "Gamma",
                        "value": "FSOKANUERHMBTIYCWLQPZXVGJD"
                    }
                ]
            },
            {
                "name": "Left-hand rotor",
                "type": "editableOption",
                "value": [
                    {
                        "name": "I",
                        "value": "EKMFLGDQVZNTOWYHXUSPAIBRCJ<R"
                    },
                    {
                        "name": "II",
                        "value": "AJDKSIRUXBLHWTMCQGZNPYFVOE<F"
                    },
                    {
                        "name": "III",
                        "value": "BDFHJLCPRTXVZNYEIWGAKMUSQO<W"
                    },
                    {
                        "name": "IV",
                        "value": "ESOVPZJAYQUIRHXLNFTGKDCMWB<K"
                    },
                    {
                        "name": "V",
                        "value": "VZBRGITYUPSDNHLXAWMJQOFECK<A"
                    },
                    {
                        "name": "VI",
                        "value": "JPGVOUMFYQBENHZRDKASXLICTW<AN"
                    },
                    {
                        "name": "VII",
                        "value": "NZJHGRCXMYSWBOUFAIVLPEKQDT<AN"
                    },
                    {
                        "name": "VIII",
                        "value": "FKQHTLXOCBJSPDZRAMEWNIUYGV<AN"
                    }
                ]
            },
            {
                "name": "Middle rotor",
                "type": "editableOption",
                "value": [
                    {
                        "name": "I",
                        "value": "EKMFLGDQVZNTOWYHXUSPAIBRCJ<R"
                    },
                    {
                        "name": "II",
                        "value": "AJDKSIRUXBLHWTMCQGZNPYFVOE<F"
                    },
                    {
                        "name": "III",
                        "value": "BDFHJLCPRTXVZNYEIWGAKMUSQO<W"
                    },
                    {
                        "name": "IV",
                        "value": "ESOVPZJAYQUIRHXLNFTGKDCMWB<K"
                    },
                    {
                        "name": "V",
                        "value": "VZBRGITYUPSDNHLXAWMJQOFECK<A"
                    },
                    {
                        "name": "VI",
                        "value": "JPGVOUMFYQBENHZRDKASXLICTW<AN"
                    },
                    {
                        "name": "VII",
                        "value": "NZJHGRCXMYSWBOUFAIVLPEKQDT<AN"
                    },
                    {
                        "name": "VIII",
                        "value": "FKQHTLXOCBJSPDZRAMEWNIUYGV<AN"
                    }
                ],
                "defaultIndex": 1
            },
            {
                "name": "Right-hand rotor",
                "type": "editableOption",
                "value": [
                    {
                        "name": "I",
                        "value": "EKMFLGDQVZNTOWYHXUSPAIBRCJ<R"
                    },
                    {
                        "name": "II",
                        "value": "AJDKSIRUXBLHWTMCQGZNPYFVOE<F"
                    },
                    {
                        "name": "III",
                        "value": "BDFHJLCPRTXVZNYEIWGAKMUSQO<W"
                    },
                    {
                        "name": "IV",
                        "value": "ESOVPZJAYQUIRHXLNFTGKDCMWB<K"
                    },
                    {
                        "name": "V",
                        "value": "VZBRGITYUPSDNHLXAWMJQOFECK<A"
                    },
                    {
                        "name": "VI",
                        "value": "JPGVOUMFYQBENHZRDKASXLICTW<AN"
                    },
                    {
                        "name": "VII",
                        "value": "NZJHGRCXMYSWBOUFAIVLPEKQDT<AN"
                    },
                    {
                        "name": "VIII",
                        "value": "FKQHTLXOCBJSPDZRAMEWNIUYGV<AN"
                    }
                ],
                "defaultIndex": 2
            },
            {
                "name": "Reflector",
                "type": "editableOption",
                "value": [
                    {
                        "name": "B",
                        "value": "AY BR CU DH EQ FS GL IP JX KN MO TZ VW"
                    },
                    {
                        "name": "C",
                        "value": "AF BV CP DJ EI GO HY KR LZ MX NW TQ SU"
                    },
                    {
                        "name": "B Thin",
                        "value": "AE BN CK DQ FU GY HW IJ LO MP RX SZ TV"
                    },
                    {
                        "name": "C Thin",
                        "value": "AR BD CO EJ FN GT HK IV LM PW QZ SX UY"
                    }
                ]
            },
            {
                "name": "Crib",
                "type": "string",
                "value": ""
            },
            {
                "name": "Crib offset",
                "type": "number",
                "value": 0
            },
            {
                "name": "Use checking machine",
                "type": "boolean",
                "value": true
            }
        ]
    },
    "Bzip2 Compress": {
        "module": "Compression",
        "description": "Bzip2 is a compression library developed by Julian Seward (of GHC fame) that uses the Burrows-Wheeler algorithm. It only supports compressing single files and its compression is slow, however is more effective than Deflate (.gz & .zip).",
        "infoURL": "https://wikipedia.org/wiki/Bzip2",
        "inputType": "ArrayBuffer",
        "outputType": "ArrayBuffer",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Block size (100s of kb)",
                "type": "number",
                "value": 9,
                "min": 1,
                "max": 9
            },
            {
                "name": "Work factor",
                "type": "number",
                "value": 30
            }
        ]
    },
    "Bzip2 Decompress": {
        "module": "Compression",
        "description": "Decompresses data using the Bzip2 algorithm.",
        "infoURL": "https://wikipedia.org/wiki/Bzip2",
        "inputType": "ArrayBuffer",
        "outputType": "ArrayBuffer",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Use low-memory, slower decompression algorithm",
                "type": "boolean",
                "value": false
            }
        ],
        "checks": [
            {
                "pattern": "^\\x42\\x5a\\x68",
                "flags": "",
                "args": []
            }
        ]
    },
    "CBOR Decode": {
        "module": "Serialise",
        "description": "Concise Binary Object Representation (CBOR) is a binary data serialization format loosely based on JSON. Like JSON it allows the transmission of data objects that contain name–value pairs, but in a more concise manner. This increases processing and transfer speeds at the cost of human readability. It is defined in IETF RFC 8949.",
        "infoURL": "https://wikipedia.org/wiki/CBOR",
        "inputType": "ArrayBuffer",
        "outputType": "JSON",
        "flowControl": false,
        "manualBake": false,
        "args": []
    },
    "CBOR Encode": {
        "module": "Serialise",
        "description": "Concise Binary Object Representation (CBOR) is a binary data serialization format loosely based on JSON. Like JSON it allows the transmission of data objects that contain name–value pairs, but in a more concise manner. This increases processing and transfer speeds at the cost of human readability. It is defined in IETF RFC 8949.",
        "infoURL": "https://wikipedia.org/wiki/CBOR",
        "inputType": "JSON",
        "outputType": "ArrayBuffer",
        "flowControl": false,
        "manualBake": false,
        "args": []
    },
    "CMAC": {
        "module": "Crypto",
        "description": "CMAC is a block-cipher based message authentication code algorithm.<br><br>RFC4493 defines AES-CMAC that uses AES encryption with a 128-bit key.<br>NIST SP 800-38B suggests usages of AES with other key lengths and Triple DES.",
        "infoURL": "https://wikipedia.org/wiki/CMAC",
        "inputType": "ArrayBuffer",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Key",
                "type": "toggleString",
                "value": "",
                "toggleValues": [
                    "Hex",
                    "UTF8",
                    "Latin1",
                    "Base64"
                ]
            },
            {
                "name": "Encryption algorithm",
                "type": "option",
                "value": [
                    "AES",
                    "Triple DES"
                ]
            }
        ]
    },
    "CRC-16 Checksum": {
        "module": "Crypto",
        "description": "A cyclic redundancy check (CRC) is an error-detecting code commonly used in digital networks and storage devices to detect accidental changes to raw data.<br><br>The CRC was invented by W. Wesley Peterson in 1961.",
        "infoURL": "https://wikipedia.org/wiki/Cyclic_redundancy_check",
        "inputType": "ArrayBuffer",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": []
    },
    "CRC-32 Checksum": {
        "module": "Crypto",
        "description": "A cyclic redundancy check (CRC) is an error-detecting code commonly used in digital networks and storage devices to detect accidental changes to raw data.<br><br>The CRC was invented by W. Wesley Peterson in 1961; the 32-bit CRC function of Ethernet and many other standards is the work of several researchers and was published in 1975.",
        "infoURL": "https://wikipedia.org/wiki/Cyclic_redundancy_check",
        "inputType": "ArrayBuffer",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": []
    },
    "CRC-8 Checksum": {
        "module": "Crypto",
        "description": "A cyclic redundancy check (CRC) is an error-detecting code commonly used in digital networks and storage devices to detect accidental changes to raw data.<br><br>The CRC was invented by W. Wesley Peterson in 1961.",
        "infoURL": "https://wikipedia.org/wiki/Cyclic_redundancy_check",
        "inputType": "ArrayBuffer",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Algorithm",
                "type": "option",
                "value": [
                    "CRC-8",
                    "CRC-8/CDMA2000",
                    "CRC-8/DARC",
                    "CRC-8/DVB-S2",
                    "CRC-8/EBU",
                    "CRC-8/I-CODE",
                    "CRC-8/ITU",
                    "CRC-8/MAXIM",
                    "CRC-8/ROHC",
                    "CRC-8/WCDMA"
                ]
            }
        ]
    },
    "CSS Beautify": {
        "module": "Code",
        "description": "Indents and prettifies Cascading Style Sheets (CSS) code.",
        "infoURL": null,
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Indent string",
                "type": "binaryShortString",
                "value": "\\t"
            }
        ]
    },
    "CSS Minify": {
        "module": "Code",
        "description": "Compresses Cascading Style Sheets (CSS) code.",
        "infoURL": null,
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Preserve comments",
                "type": "boolean",
                "value": false
            }
        ]
    },
    "CSS selector": {
        "module": "Code",
        "description": "Extract information from an HTML document with a CSS selector",
        "infoURL": "https://wikipedia.org/wiki/Cascading_Style_Sheets#Selector",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "CSS selector",
                "type": "string",
                "value": ""
            },
            {
                "name": "Delimiter",
                "type": "binaryShortString",
                "value": "\\n"
            }
        ]
    },
    "CSV to JSON": {
        "module": "Default",
        "description": "Converts a CSV file to JSON format.",
        "infoURL": "https://wikipedia.org/wiki/Comma-separated_values",
        "inputType": "string",
        "outputType": "JSON",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Cell delimiters",
                "type": "binaryShortString",
                "value": ","
            },
            {
                "name": "Row delimiters",
                "type": "binaryShortString",
                "value": "\\r\\n"
            },
            {
                "name": "Format",
                "type": "option",
                "value": [
                    "Array of dictionaries",
                    "Array of arrays"
                ]
            }
        ]
    },
    "CTPH": {
        "module": "Crypto",
        "description": "Context Triggered Piecewise Hashing, also called Fuzzy Hashing, can match inputs that have homologies. Such inputs have sequences of identical bytes in the same order, although bytes in between these sequences may be different in both content and length.<br><br>CTPH was originally based on the work of Dr. Andrew Tridgell and a spam email detector called SpamSum. This method was adapted by Jesse Kornblum and published at the DFRWS conference in 2006 in a paper 'Identifying Almost Identical Files Using Context Triggered Piecewise Hashing'.",
        "infoURL": "https://forensicswiki.xyz/wiki/index.php?title=Context_Triggered_Piecewise_Hashing",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": []
    },
    "Caesar Box Cipher": {
        "module": "Ciphers",
        "description": "Caesar Box is a transposition cipher used in the Roman Empire, in which letters of the message are written in rows in a square (or a rectangle) and then, read by column.",
        "infoURL": "https://www.dcode.fr/caesar-box-cipher",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Box Height",
                "type": "number",
                "value": 1
            }
        ]
    },
    "Cartesian Product": {
        "module": "Default",
        "description": "Calculates the cartesian product of multiple sets of data, returning all possible combinations.",
        "infoURL": "https://wikipedia.org/wiki/Cartesian_product",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Sample delimiter",
                "type": "binaryString",
                "value": "\\n\\n"
            },
            {
                "name": "Item delimiter",
                "type": "binaryString",
                "value": ","
            }
        ]
    },
    "Cetacean Cipher Decode": {
        "module": "Ciphers",
        "description": "Decode Cetacean Cipher input. <br/><br/>e.g. <code>EEEEEEEEEeeEeEEEEEEEEEEEEeeEeEEe</code> becomes <code>hi</code>",
        "infoURL": "https://hitchhikers.fandom.com/wiki/Dolphins",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [],
        "checks": [
            {
                "pattern": "^(?:[eE]{16,})(?: [eE]{16,})*$",
                "flags": "",
                "args": []
            }
        ]
    },
    "Cetacean Cipher Encode": {
        "module": "Ciphers",
        "description": "Converts any input into Cetacean Cipher. <br/><br/>e.g. <code>hi</code> becomes <code>EEEEEEEEEeeEeEEEEEEEEEEEEeeEeEEe</code>",
        "infoURL": "https://hitchhikers.fandom.com/wiki/Dolphins",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": []
    },
    "ChaCha": {
        "module": "Default",
        "description": "ChaCha is a stream cipher designed by Daniel J. Bernstein. It is a variant of the Salsa stream cipher. Several parameterizations exist; 'ChaCha' may refer to the original construction, or to the variant as described in RFC-8439. ChaCha is often used with Poly1305, in the ChaCha20-Poly1305 AEAD construction.<br><br><b>Key:</b> ChaCha uses a key of 16 or 32 bytes (128 or 256 bits).<br><br><b>Nonce:</b> ChaCha uses a nonce of 8 or 12 bytes (64 or 96 bits).<br><br><b>Counter:</b> ChaCha uses a counter of 4 or 8 bytes (32 or 64 bits); together, the nonce and counter must add up to 16 bytes. The counter starts at zero at the start of the keystream, and is incremented at every 64 bytes.",
        "infoURL": "https://wikipedia.org/wiki/Salsa20#ChaCha_variant",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Key",
                "type": "toggleString",
                "value": "",
                "toggleValues": [
                    "Hex",
                    "UTF8",
                    "Latin1",
                    "Base64"
                ]
            },
            {
                "name": "Nonce",
                "type": "toggleString",
                "value": "",
                "toggleValues": [
                    "Hex",
                    "UTF8",
                    "Latin1",
                    "Base64",
                    "Integer"
                ]
            },
            {
                "name": "Counter",
                "type": "number",
                "value": 0,
                "min": 0
            },
            {
                "name": "Rounds",
                "type": "option",
                "value": [
                    "20",
                    "12",
                    "8"
                ]
            },
            {
                "name": "Input",
                "type": "option",
                "value": [
                    "Hex",
                    "Raw"
                ]
            },
            {
                "name": "Output",
                "type": "option",
                "value": [
                    "Raw",
                    "Hex"
                ]
            }
        ]
    },
    "Change IP format": {
        "module": "Default",
        "description": "Convert an IP address from one format to another, e.g. <code>172.20.23.54</code> to <code>ac141736</code>",
        "infoURL": null,
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Input format",
                "type": "option",
                "value": [
                    "Dotted Decimal",
                    "Decimal",
                    "Octal",
                    "Hex"
                ]
            },
            {
                "name": "Output format",
                "type": "option",
                "value": [
                    "Dotted Decimal",
                    "Decimal",
                    "Octal",
                    "Hex"
                ]
            }
        ]
    },
    "Chi Square": {
        "module": "Default",
        "description": "Calculates the Chi Square distribution of values.",
        "infoURL": "https://wikipedia.org/wiki/Chi-squared_distribution",
        "inputType": "ArrayBuffer",
        "outputType": "number",
        "flowControl": false,
        "manualBake": false,
        "args": []
    },
    "CipherSaber2 Decrypt": {
        "module": "Crypto",
        "description": "CipherSaber is a simple symmetric encryption protocol based on the RC4 stream cipher. It gives reasonably strong protection of message confidentiality, yet it's designed to be simple enough that even novice programmers can memorize the algorithm and implement it from scratch.",
        "infoURL": "https://wikipedia.org/wiki/CipherSaber",
        "inputType": "ArrayBuffer",
        "outputType": "ArrayBuffer",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Key",
                "type": "toggleString",
                "value": "",
                "toggleValues": [
                    "Hex",
                    "UTF8",
                    "Latin1",
                    "Base64"
                ]
            },
            {
                "name": "Rounds",
                "type": "number",
                "value": 20
            }
        ]
    },
    "CipherSaber2 Encrypt": {
        "module": "Crypto",
        "description": "CipherSaber is a simple symmetric encryption protocol based on the RC4 stream cipher. It gives reasonably strong protection of message confidentiality, yet it's designed to be simple enough that even novice programmers can memorize the algorithm and implement it from scratch.",
        "infoURL": "https://wikipedia.org/wiki/CipherSaber",
        "inputType": "ArrayBuffer",
        "outputType": "ArrayBuffer",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Key",
                "type": "toggleString",
                "value": "",
                "toggleValues": [
                    "Hex",
                    "UTF8",
                    "Latin1",
                    "Base64"
                ]
            },
            {
                "name": "Rounds",
                "type": "number",
                "value": 20
            }
        ]
    },
    "Citrix CTX1 Decode": {
        "module": "Encodings",
        "description": "Decodes strings in a Citrix CTX1 password format to plaintext.",
        "infoURL": "https://www.reddit.com/r/AskNetsec/comments/1s3r6y/citrix_ctx1_hash_decoding/",
        "inputType": "ArrayBuffer",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": []
    },
    "Citrix CTX1 Encode": {
        "module": "Encodings",
        "description": "Encodes strings to Citrix CTX1 password format.",
        "infoURL": "https://www.reddit.com/r/AskNetsec/comments/1s3r6y/citrix_ctx1_hash_decoding/",
        "inputType": "string",
        "outputType": "byteArray",
        "flowControl": false,
        "manualBake": false,
        "args": []
    },
    "Colossus": {
        "module": "Bletchley",
        "description": "Colossus is the name of the world's first electronic computer. Ten Colossi were designed by Tommy Flowers and built at the Post Office Research Labs at Dollis Hill in 1943 during World War 2. They assisted with the breaking of the German Lorenz cipher attachment, a machine created to encipher communications between Hitler and his generals on the front lines.<br><br>To learn more, Virtual Colossus, an online, browser based simulation of a Colossus computer is available at <a href='https://virtualcolossus.co.uk' target='_blank'>virtualcolossus.co.uk</a>.<br><br>A more detailed description of this operation can be found <a href='https://github.com/gchq/CyberChef/wiki/Colossus' target='_blank'>here</a>.",
        "infoURL": "https://wikipedia.org/wiki/Colossus_computer",
        "inputType": "string",
        "outputType": "html",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Input",
                "type": "label"
            },
            {
                "name": "Pattern",
                "type": "option",
                "value": [
                    "KH Pattern",
                    "ZMUG Pattern",
                    "BREAM Pattern"
                ]
            },
            {
                "name": "QBusZ",
                "type": "option",
                "value": [
                    "",
                    "Z",
                    "ΔZ"
                ]
            },
            {
                "name": "QBusΧ",
                "type": "option",
                "value": [
                    "",
                    "Χ",
                    "ΔΧ"
                ]
            },
            {
                "name": "QBusΨ",
                "type": "option",
                "value": [
                    "",
                    "Ψ",
                    "ΔΨ"
                ]
            },
            {
                "name": "Limitation",
                "type": "option",
                "value": [
                    "None",
                    "Χ2",
                    "Χ2 + P5",
                    "X2 + Ψ1",
                    "X2 + Ψ1 + P5"
                ]
            },
            {
                "name": "K Rack Option",
                "type": "argSelector",
                "value": [
                    {
                        "name": "Select Program",
                        "on": [
                            7
                        ],
                        "off": [
                            8,
                            9,
                            10,
                            11,
                            12,
                            13,
                            14,
                            15,
                            16,
                            17,
                            18,
                            19,
                            20,
                            21,
                            22,
                            23,
                            24,
                            25,
                            26,
                            27,
                            28,
                            29,
                            30,
                            31,
                            32,
                            33,
                            34,
                            35,
                            36,
                            37,
                            38,
                            39,
                            40
                        ]
                    },
                    {
                        "name": "Top Section - Conditional",
                        "on": [
                            8,
                            9,
                            10,
                            11,
                            12,
                            13,
                            14,
                            15,
                            16,
                            17,
                            18,
                            19,
                            20,
                            21,
                            22,
                            23,
                            24,
                            25,
                            26,
                            27,
                            28,
                            29,
                            30
                        ],
                        "off": [
                            7,
                            31,
                            32,
                            33,
                            34,
                            35,
                            36,
                            37,
                            38,
                            39,
                            40
                        ]
                    },
                    {
                        "name": "Bottom Section - Addition",
                        "on": [
                            31,
                            32,
                            33,
                            34,
                            35,
                            36,
                            37,
                            38,
                            39,
                            40
                        ],
                        "off": [
                            7,
                            8,
                            9,
                            10,
                            11,
                            12,
                            13,
                            14,
                            15,
                            16,
                            17,
                            18,
                            19,
                            20,
                            21,
                            22,
                            23,
                            24,
                            25,
                            26,
                            27,
                            28,
                            29,
                            30
                        ]
                    },
                    {
                        "name": "Advanced",
                        "on": [
                            8,
                            9,
                            10,
                            11,
                            12,
                            13,
                            14,
                            15,
                            16,
                            17,
                            18,
                            19,
                            20,
                            21,
                            22,
                            23,
                            24,
                            25,
                            26,
                            27,
                            28,
                            29,
                            30,
                            31,
                            32,
                            33,
                            34,
                            35,
                            36,
                            37,
                            38,
                            39,
                            40
                        ],
                        "off": [
                            7
                        ]
                    }
                ]
            },
            {
                "name": "Program to run",
                "type": "option",
                "value": [
                    "",
                    "Letter Count",
                    "1+2=. (1+2 Break In, Find X1,X2)",
                    "4=5=/1=2 (Given X1,X2 find X4,X5)",
                    "/,5,U (Count chars to find X3)"
                ]
            },
            {
                "name": "K Rack: Conditional",
                "type": "label"
            },
            {
                "name": "R1-Q1",
                "type": "editableOptionShort",
                "value": [
                    {
                        "name": "Up (.)",
                        "value": "."
                    },
                    {
                        "name": "Centre",
                        "value": ""
                    },
                    {
                        "name": "Down (x)",
                        "value": "x"
                    }
                ],
                "defaultIndex": 1
            },
            {
                "name": "R1-Q2",
                "type": "editableOptionShort",
                "value": [
                    {
                        "name": "Up (.)",
                        "value": "."
                    },
                    {
                        "name": "Centre",
                        "value": ""
                    },
                    {
                        "name": "Down (x)",
                        "value": "x"
                    }
                ],
                "defaultIndex": 1
            },
            {
                "name": "R1-Q3",
                "type": "editableOptionShort",
                "value": [
                    {
                        "name": "Up (.)",
                        "value": "."
                    },
                    {
                        "name": "Centre",
                        "value": ""
                    },
                    {
                        "name": "Down (x)",
                        "value": "x"
                    }
                ],
                "defaultIndex": 1
            },
            {
                "name": "R1-Q4",
                "type": "editableOptionShort",
                "value": [
                    {
                        "name": "Up (.)",
                        "value": "."
                    },
                    {
                        "name": "Centre",
                        "value": ""
                    },
                    {
                        "name": "Down (x)",
                        "value": "x"
                    }
                ],
                "defaultIndex": 1
            },
            {
                "name": "R1-Q5",
                "type": "editableOptionShort",
                "value": [
                    {
                        "name": "Up (.)",
                        "value": "."
                    },
                    {
                        "name": "Centre",
                        "value": ""
                    },
                    {
                        "name": "Down (x)",
                        "value": "x"
                    }
                ],
                "defaultIndex": 1
            },
            {
                "name": "R1-Negate",
                "type": "boolean",
                "value": false
            },
            {
                "name": "R1-Counter",
                "type": "option",
                "value": [
                    "",
                    "1",
                    "2",
                    "3",
                    "4",
                    "5"
                ]
            },
            {
                "name": "R2-Q1",
                "type": "editableOptionShort",
                "value": [
                    {
                        "name": "Up (.)",
                        "value": "."
                    },
                    {
                        "name": "Centre",
                        "value": ""
                    },
                    {
                        "name": "Down (x)",
                        "value": "x"
                    }
                ],
                "defaultIndex": 1
            },
            {
                "name": "R2-Q2",
                "type": "editableOptionShort",
                "value": [
                    {
                        "name": "Up (.)",
                        "value": "."
                    },
                    {
                        "name": "Centre",
                        "value": ""
                    },
                    {
                        "name": "Down (x)",
                        "value": "x"
                    }
                ],
                "defaultIndex": 1
            },
            {
                "name": "R2-Q3",
                "type": "editableOptionShort",
                "value": [
                    {
                        "name": "Up (.)",
                        "value": "."
                    },
                    {
                        "name": "Centre",
                        "value": ""
                    },
                    {
                        "name": "Down (x)",
                        "value": "x"
                    }
                ],
                "defaultIndex": 1
            },
            {
                "name": "R2-Q4",
                "type": "editableOptionShort",
                "value": [
                    {
                        "name": "Up (.)",
                        "value": "."
                    },
                    {
                        "name": "Centre",
                        "value": ""
                    },
                    {
                        "name": "Down (x)",
                        "value": "x"
                    }
                ],
                "defaultIndex": 1
            },
            {
                "name": "R2-Q5",
                "type": "editableOptionShort",
                "value": [
                    {
                        "name": "Up (.)",
                        "value": "."
                    },
                    {
                        "name": "Centre",
                        "value": ""
                    },
                    {
                        "name": "Down (x)",
                        "value": "x"
                    }
                ],
                "defaultIndex": 1
            },
            {
                "name": "R2-Negate",
                "type": "boolean",
                "value": false
            },
            {
                "name": "R2-Counter",
                "type": "option",
                "value": [
                    "",
                    "1",
                    "2",
                    "3",
                    "4",
                    "5"
                ]
            },
            {
                "name": "R3-Q1",
                "type": "editableOptionShort",
                "value": [
                    {
                        "name": "Up (.)",
                        "value": "."
                    },
                    {
                        "name": "Centre",
                        "value": ""
                    },
                    {
                        "name": "Down (x)",
                        "value": "x"
                    }
                ],
                "defaultIndex": 1
            },
            {
                "name": "R3-Q2",
                "type": "editableOptionShort",
                "value": [
                    {
                        "name": "Up (.)",
                        "value": "."
                    },
                    {
                        "name": "Centre",
                        "value": ""
                    },
                    {
                        "name": "Down (x)",
                        "value": "x"
                    }
                ],
                "defaultIndex": 1
            },
            {
                "name": "R3-Q3",
                "type": "editableOptionShort",
                "value": [
                    {
                        "name": "Up (.)",
                        "value": "."
                    },
                    {
                        "name": "Centre",
                        "value": ""
                    },
                    {
                        "name": "Down (x)",
                        "value": "x"
                    }
                ],
                "defaultIndex": 1
            },
            {
                "name": "R3-Q4",
                "type": "editableOptionShort",
                "value": [
                    {
                        "name": "Up (.)",
                        "value": "."
                    },
                    {
                        "name": "Centre",
                        "value": ""
                    },
                    {
                        "name": "Down (x)",
                        "value": "x"
                    }
                ],
                "defaultIndex": 1
            },
            {
                "name": "R3-Q5",
                "type": "editableOptionShort",
                "value": [
                    {
                        "name": "Up (.)",
                        "value": "."
                    },
                    {
                        "name": "Centre",
                        "value": ""
                    },
                    {
                        "name": "Down (x)",
                        "value": "x"
                    }
                ],
                "defaultIndex": 1
            },
            {
                "name": "R3-Negate",
                "type": "boolean",
                "value": false
            },
            {
                "name": "R3-Counter",
                "type": "option",
                "value": [
                    "",
                    "1",
                    "2",
                    "3",
                    "4",
                    "5"
                ]
            },
            {
                "name": "Negate All",
                "type": "boolean",
                "value": false
            },
            {
                "name": "K Rack: Addition",
                "type": "label"
            },
            {
                "name": "Add-Q1",
                "type": "boolean",
                "value": false
            },
            {
                "name": "Add-Q2",
                "type": "boolean",
                "value": false
            },
            {
                "name": "Add-Q3",
                "type": "boolean",
                "value": false
            },
            {
                "name": "Add-Q4",
                "type": "boolean",
                "value": false
            },
            {
                "name": "Add-Q5",
                "type": "boolean",
                "value": false
            },
            {
                "name": "Add-Equals",
                "type": "editableOptionShort",
                "value": [
                    {
                        "name": "Up (.)",
                        "value": "."
                    },
                    {
                        "name": "Centre",
                        "value": ""
                    },
                    {
                        "name": "Down (x)",
                        "value": "x"
                    }
                ],
                "defaultIndex": 1
            },
            {
                "name": "Add-Counter1",
                "type": "boolean",
                "value": false
            },
            {
                "name": "Add Negate All",
                "type": "boolean",
                "value": false
            },
            {
                "name": "Total Motor",
                "type": "editableOptionShort",
                "value": [
                    {
                        "name": "Up (.)",
                        "value": "."
                    },
                    {
                        "name": "Centre",
                        "value": ""
                    },
                    {
                        "name": "Down (x)",
                        "value": "x"
                    }
                ],
                "defaultIndex": 1
            },
            {
                "name": "Master Control Panel",
                "type": "label"
            },
            {
                "name": "Set Total",
                "type": "number",
                "value": 0
            },
            {
                "name": "Fast Step",
                "type": "option",
                "value": [
                    "",
                    "X1",
                    "X2",
                    "X3",
                    "X4",
                    "X5",
                    "M37",
                    "M61",
                    "S1",
                    "S2",
                    "S3",
                    "S4",
                    "S5"
                ]
            },
            {
                "name": "Slow Step",
                "type": "option",
                "value": [
                    "",
                    "X1",
                    "X2",
                    "X3",
                    "X4",
                    "X5",
                    "M37",
                    "M61",
                    "S1",
                    "S2",
                    "S3",
                    "S4",
                    "S5"
                ]
            },
            {
                "name": "Start Χ1",
                "type": "number",
                "value": 1
            },
            {
                "name": "Start Χ2",
                "type": "number",
                "value": 1
            },
            {
                "name": "Start Χ3",
                "type": "number",
                "value": 1
            },
            {
                "name": "Start Χ4",
                "type": "number",
                "value": 1
            },
            {
                "name": "Start Χ5",
                "type": "number",
                "value": 1
            },
            {
                "name": "Start M61",
                "type": "number",
                "value": 1
            },
            {
                "name": "Start M37",
                "type": "number",
                "value": 1
            },
            {
                "name": "Start Ψ1",
                "type": "number",
                "value": 1
            },
            {
                "name": "Start Ψ2",
                "type": "number",
                "value": 1
            },
            {
                "name": "Start Ψ3",
                "type": "number",
                "value": 1
            },
            {
                "name": "Start Ψ4",
                "type": "number",
                "value": 1
            },
            {
                "name": "Start Ψ5",
                "type": "number",
                "value": 1
            }
        ]
    },
    "Comment": {
        "module": "Default",
        "description": "Provides a place to write comments within the flow of the recipe. This operation has no computational effect.",
        "infoURL": null,
        "inputType": "string",
        "outputType": "string",
        "flowControl": true,
        "manualBake": false,
        "args": [
            {
                "name": "",
                "type": "text",
                "value": ""
            }
        ]
    },
    "Compare CTPH hashes": {
        "module": "Crypto",
        "description": "Compares two Context Triggered Piecewise Hashing (CTPH) fuzzy hashes to determine the similarity between them on a scale of 0 to 100.",
        "infoURL": "https://forensicswiki.xyz/wiki/index.php?title=Context_Triggered_Piecewise_Hashing",
        "inputType": "string",
        "outputType": "number",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Delimiter",
                "type": "option",
                "value": [
                    "Line feed",
                    "CRLF",
                    "Space",
                    "Comma"
                ]
            }
        ]
    },
    "Compare SSDEEP hashes": {
        "module": "Crypto",
        "description": "Compares two SSDEEP fuzzy hashes to determine the similarity between them on a scale of 0 to 100.",
        "infoURL": "https://forensicswiki.xyz/wiki/index.php?title=Ssdeep",
        "inputType": "string",
        "outputType": "number",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Delimiter",
                "type": "option",
                "value": [
                    "Line feed",
                    "CRLF",
                    "Space",
                    "Comma"
                ]
            }
        ]
    },
    "Conditional Jump": {
        "module": "Default",
        "description": "Conditionally jump forwards or backwards to the specified Label  based on whether the data matches the specified regular expression.",
        "infoURL": null,
        "inputType": "string",
        "outputType": "string",
        "flowControl": true,
        "manualBake": false,
        "args": [
            {
                "name": "Match (regex)",
                "type": "string",
                "value": ""
            },
            {
                "name": "Invert match",
                "type": "boolean",
                "value": false
            },
            {
                "name": "Label name",
                "type": "shortString",
                "value": ""
            },
            {
                "name": "Maximum jumps (if jumping backwards)",
                "type": "number",
                "value": 10
            }
        ]
    },
    "Contain Image": {
        "module": "Image",
        "description": "Scales an image to the specified width and height, maintaining the aspect ratio. The image may be letterboxed.",
        "infoURL": "",
        "inputType": "ArrayBuffer",
        "outputType": "html",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Width",
                "type": "number",
                "value": 100,
                "min": 1
            },
            {
                "name": "Height",
                "type": "number",
                "value": 100,
                "min": 1
            },
            {
                "name": "Horizontal align",
                "type": "option",
                "value": [
                    "Left",
                    "Center",
                    "Right"
                ],
                "defaultIndex": 1
            },
            {
                "name": "Vertical align",
                "type": "option",
                "value": [
                    "Top",
                    "Middle",
                    "Bottom"
                ],
                "defaultIndex": 1
            },
            {
                "name": "Resizing algorithm",
                "type": "option",
                "value": [
                    "Nearest Neighbour",
                    "Bilinear",
                    "Bicubic",
                    "Hermite",
                    "Bezier"
                ],
                "defaultIndex": 1
            },
            {
                "name": "Opaque background",
                "type": "boolean",
                "value": true
            }
        ]
    },
    "Convert area": {
        "module": "Default",
        "description": "Converts a unit of area to another format.",
        "infoURL": "https://wikipedia.org/wiki/Orders_of_magnitude_(area)",
        "inputType": "BigNumber",
        "outputType": "BigNumber",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Input units",
                "type": "option",
                "value": [
                    "[Metric]",
                    "Square metre (sq m)",
                    "Square kilometre (sq km)",
                    "Centiare (ca)",
                    "Deciare (da)",
                    "Are (a)",
                    "Decare (daa)",
                    "Hectare (ha)",
                    "[/Metric]",
                    "[Imperial]",
                    "Square inch (sq in)",
                    "Square foot (sq ft)",
                    "Square yard (sq yd)",
                    "Square mile (sq mi)",
                    "Perch (sq per)",
                    "Rood (ro)",
                    "International acre (ac)",
                    "[/Imperial]",
                    "[US customary units]",
                    "US survey acre (ac)",
                    "US survey square mile (sq mi)",
                    "US survey township",
                    "[/US customary units]",
                    "[Nuclear physics]",
                    "Yoctobarn (yb)",
                    "Zeptobarn (zb)",
                    "Attobarn (ab)",
                    "Femtobarn (fb)",
                    "Picobarn (pb)",
                    "Nanobarn (nb)",
                    "Microbarn (μb)",
                    "Millibarn (mb)",
                    "Barn (b)",
                    "Kilobarn (kb)",
                    "Megabarn (Mb)",
                    "Outhouse",
                    "Shed",
                    "Planck area",
                    "[/Nuclear physics]",
                    "[Comparisons]",
                    "Washington D.C.",
                    "Isle of Wight",
                    "Wales",
                    "Texas",
                    "[/Comparisons]"
                ]
            },
            {
                "name": "Output units",
                "type": "option",
                "value": [
                    "[Metric]",
                    "Square metre (sq m)",
                    "Square kilometre (sq km)",
                    "Centiare (ca)",
                    "Deciare (da)",
                    "Are (a)",
                    "Decare (daa)",
                    "Hectare (ha)",
                    "[/Metric]",
                    "[Imperial]",
                    "Square inch (sq in)",
                    "Square foot (sq ft)",
                    "Square yard (sq yd)",
                    "Square mile (sq mi)",
                    "Perch (sq per)",
                    "Rood (ro)",
                    "International acre (ac)",
                    "[/Imperial]",
                    "[US customary units]",
                    "US survey acre (ac)",
                    "US survey square mile (sq mi)",
                    "US survey township",
                    "[/US customary units]",
                    "[Nuclear physics]",
                    "Yoctobarn (yb)",
                    "Zeptobarn (zb)",
                    "Attobarn (ab)",
                    "Femtobarn (fb)",
                    "Picobarn (pb)",
                    "Nanobarn (nb)",
                    "Microbarn (μb)",
                    "Millibarn (mb)",
                    "Barn (b)",
                    "Kilobarn (kb)",
                    "Megabarn (Mb)",
                    "Outhouse",
                    "Shed",
                    "Planck area",
                    "[/Nuclear physics]",
                    "[Comparisons]",
                    "Washington D.C.",
                    "Isle of Wight",
                    "Wales",
                    "Texas",
                    "[/Comparisons]"
                ]
            }
        ]
    },
    "Convert co-ordinate format": {
        "module": "Hashing",
        "description": "Converts geographical coordinates between different formats.<br><br>Supported formats:<ul><li>Degrees Minutes Seconds (DMS)</li><li>Degrees Decimal Minutes (DDM)</li><li>Decimal Degrees (DD)</li><li>Geohash</li><li>Military Grid Reference System (MGRS)</li><li>Ordnance Survey National Grid (OSNG)</li><li>Universal Transverse Mercator (UTM)</li></ul><br>The operation can try to detect the input co-ordinate format and delimiter automatically, but this may not always work correctly.",
        "infoURL": "https://wikipedia.org/wiki/Geographic_coordinate_conversion",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Input Format",
                "type": "option",
                "value": [
                    "Auto",
                    "Degrees Minutes Seconds",
                    "Degrees Decimal Minutes",
                    "Decimal Degrees",
                    "Geohash",
                    "Military Grid Reference System",
                    "Ordnance Survey National Grid",
                    "Universal Transverse Mercator"
                ]
            },
            {
                "name": "Input Delimiter",
                "type": "option",
                "value": [
                    "Auto",
                    "Direction Preceding",
                    "Direction Following",
                    "\\n",
                    "Comma",
                    "Semi-colon",
                    "Colon"
                ]
            },
            {
                "name": "Output Format",
                "type": "option",
                "value": [
                    "Degrees Minutes Seconds",
                    "Degrees Decimal Minutes",
                    "Decimal Degrees",
                    "Geohash",
                    "Military Grid Reference System",
                    "Ordnance Survey National Grid",
                    "Universal Transverse Mercator"
                ]
            },
            {
                "name": "Output Delimiter",
                "type": "option",
                "value": [
                    "Space",
                    "\\n",
                    "Comma",
                    "Semi-colon",
                    "Colon"
                ]
            },
            {
                "name": "Include Compass Directions",
                "type": "option",
                "value": [
                    "None",
                    "Before",
                    "After"
                ]
            },
            {
                "name": "Precision",
                "type": "number",
                "value": 3
            }
        ]
    },
    "Convert data units": {
        "module": "Default",
        "description": "Converts a unit of data to another format.",
        "infoURL": "https://wikipedia.org/wiki/Orders_of_magnitude_(data)",
        "inputType": "BigNumber",
        "outputType": "BigNumber",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Input units",
                "type": "option",
                "value": [
                    "Bits (b)",
                    "Nibbles",
                    "Octets",
                    "Bytes (B)",
                    "[Binary bits (2^n)]",
                    "Kibibits (Kib)",
                    "Mebibits (Mib)",
                    "Gibibits (Gib)",
                    "Tebibits (Tib)",
                    "Pebibits (Pib)",
                    "Exbibits (Eib)",
                    "Zebibits (Zib)",
                    "Yobibits (Yib)",
                    "[/Binary bits (2^n)]",
                    "[Decimal bits (10^n)]",
                    "Decabits",
                    "Hectobits",
                    "Kilobits (Kb)",
                    "Megabits (Mb)",
                    "Gigabits (Gb)",
                    "Terabits (Tb)",
                    "Petabits (Pb)",
                    "Exabits (Eb)",
                    "Zettabits (Zb)",
                    "Yottabits (Yb)",
                    "[/Decimal bits (10^n)]",
                    "[Binary bytes (8 x 2^n)]",
                    "Kibibytes (KiB)",
                    "Mebibytes (MiB)",
                    "Gibibytes (GiB)",
                    "Tebibytes (TiB)",
                    "Pebibytes (PiB)",
                    "Exbibytes (EiB)",
                    "Zebibytes (ZiB)",
                    "Yobibytes (YiB)",
                    "[/Binary bytes (8 x 2^n)]",
                    "[Decimal bytes (8 x 10^n)]",
                    "Kilobytes (KB)",
                    "Megabytes (MB)",
                    "Gigabytes (GB)",
                    "Terabytes (TB)",
                    "Petabytes (PB)",
                    "Exabytes (EB)",
                    "Zettabytes (ZB)",
                    "Yottabytes (YB)",
                    "[/Decimal bytes (8 x 10^n)]"
                ]
            },
            {
                "name": "Output units",
                "type": "option",
                "value": [
                    "Bits (b)",
                    "Nibbles",
                    "Octets",
                    "Bytes (B)",
                    "[Binary bits (2^n)]",
                    "Kibibits (Kib)",
                    "Mebibits (Mib)",
                    "Gibibits (Gib)",
                    "Tebibits (Tib)",
                    "Pebibits (Pib)",
                    "Exbibits (Eib)",
                    "Zebibits (Zib)",
                    "Yobibits (Yib)",
                    "[/Binary bits (2^n)]",
                    "[Decimal bits (10^n)]",
                    "Decabits",
                    "Hectobits",
                    "Kilobits (Kb)",
                    "Megabits (Mb)",
                    "Gigabits (Gb)",
                    "Terabits (Tb)",
                    "Petabits (Pb)",
                    "Exabits (Eb)",
                    "Zettabits (Zb)",
                    "Yottabits (Yb)",
                    "[/Decimal bits (10^n)]",
                    "[Binary bytes (8 x 2^n)]",
                    "Kibibytes (KiB)",
                    "Mebibytes (MiB)",
                    "Gibibytes (GiB)",
                    "Tebibytes (TiB)",
                    "Pebibytes (PiB)",
                    "Exbibytes (EiB)",
                    "Zebibytes (ZiB)",
                    "Yobibytes (YiB)",
                    "[/Binary bytes (8 x 2^n)]",
                    "[Decimal bytes (8 x 10^n)]",
                    "Kilobytes (KB)",
                    "Megabytes (MB)",
                    "Gigabytes (GB)",
                    "Terabytes (TB)",
                    "Petabytes (PB)",
                    "Exabytes (EB)",
                    "Zettabytes (ZB)",
                    "Yottabytes (YB)",
                    "[/Decimal bytes (8 x 10^n)]"
                ]
            }
        ]
    },
    "Convert distance": {
        "module": "Default",
        "description": "Converts a unit of distance to another format.",
        "infoURL": "https://wikipedia.org/wiki/Orders_of_magnitude_(length)",
        "inputType": "BigNumber",
        "outputType": "BigNumber",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Input units",
                "type": "option",
                "value": [
                    "[Metric]",
                    "Nanometres (nm)",
                    "Micrometres (µm)",
                    "Millimetres (mm)",
                    "Centimetres (cm)",
                    "Metres (m)",
                    "Kilometers (km)",
                    "[/Metric]",
                    "[Imperial]",
                    "Thou (th)",
                    "Inches (in)",
                    "Feet (ft)",
                    "Yards (yd)",
                    "Chains (ch)",
                    "Furlongs (fur)",
                    "Miles (mi)",
                    "Leagues (lea)",
                    "[/Imperial]",
                    "[Maritime]",
                    "Fathoms (ftm)",
                    "Cables",
                    "Nautical miles",
                    "[/Maritime]",
                    "[Comparisons]",
                    "Cars (4m)",
                    "Buses (8.4m)",
                    "American football fields (91m)",
                    "Football pitches (105m)",
                    "[/Comparisons]",
                    "[Astronomical]",
                    "Earth-to-Moons",
                    "Earth's equators",
                    "Astronomical units (au)",
                    "Light-years (ly)",
                    "Parsecs (pc)",
                    "[/Astronomical]"
                ]
            },
            {
                "name": "Output units",
                "type": "option",
                "value": [
                    "[Metric]",
                    "Nanometres (nm)",
                    "Micrometres (µm)",
                    "Millimetres (mm)",
                    "Centimetres (cm)",
                    "Metres (m)",
                    "Kilometers (km)",
                    "[/Metric]",
                    "[Imperial]",
                    "Thou (th)",
                    "Inches (in)",
                    "Feet (ft)",
                    "Yards (yd)",
                    "Chains (ch)",
                    "Furlongs (fur)",
                    "Miles (mi)",
                    "Leagues (lea)",
                    "[/Imperial]",
                    "[Maritime]",
                    "Fathoms (ftm)",
                    "Cables",
                    "Nautical miles",
                    "[/Maritime]",
                    "[Comparisons]",
                    "Cars (4m)",
                    "Buses (8.4m)",
                    "American football fields (91m)",
                    "Football pitches (105m)",
                    "[/Comparisons]",
                    "[Astronomical]",
                    "Earth-to-Moons",
                    "Earth's equators",
                    "Astronomical units (au)",
                    "Light-years (ly)",
                    "Parsecs (pc)",
                    "[/Astronomical]"
                ]
            }
        ]
    },
    "Convert Image Format": {
        "module": "Image",
        "description": "Converts an image between different formats. Supported formats:<br><ul><li>Joint Photographic Experts Group (JPEG)</li><li>Portable Network Graphics (PNG)</li><li>Bitmap (BMP)</li><li>Tagged Image File Format (TIFF)</li></ul><br>Note: GIF files are supported for input, but cannot be outputted.",
        "infoURL": "https://wikipedia.org/wiki/Image_file_formats",
        "inputType": "ArrayBuffer",
        "outputType": "html",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Output Format",
                "type": "option",
                "value": [
                    "JPEG",
                    "PNG",
                    "BMP",
                    "TIFF"
                ]
            },
            {
                "name": "JPEG Quality",
                "type": "number",
                "value": 80,
                "min": 1,
                "max": 100
            },
            {
                "name": "PNG Filter Type",
                "type": "option",
                "value": [
                    "Auto",
                    "None",
                    "Sub",
                    "Up",
                    "Average",
                    "Paeth"
                ]
            },
            {
                "name": "PNG Deflate Level",
                "type": "number",
                "value": 9,
                "min": 0,
                "max": 9
            }
        ]
    },
    "Convert mass": {
        "module": "Default",
        "description": "Converts a unit of mass to another format.",
        "infoURL": "https://wikipedia.org/wiki/Orders_of_magnitude_(mass)",
        "inputType": "BigNumber",
        "outputType": "BigNumber",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Input units",
                "type": "option",
                "value": [
                    "[Metric]",
                    "Yoctogram (yg)",
                    "Zeptogram (zg)",
                    "Attogram (ag)",
                    "Femtogram (fg)",
                    "Picogram (pg)",
                    "Nanogram (ng)",
                    "Microgram (μg)",
                    "Milligram (mg)",
                    "Centigram (cg)",
                    "Decigram (dg)",
                    "Gram (g)",
                    "Decagram (dag)",
                    "Hectogram (hg)",
                    "Kilogram (kg)",
                    "Megagram (Mg)",
                    "Tonne (t)",
                    "Gigagram (Gg)",
                    "Teragram (Tg)",
                    "Petagram (Pg)",
                    "Exagram (Eg)",
                    "Zettagram (Zg)",
                    "Yottagram (Yg)",
                    "[/Metric]",
                    "[Imperial Avoirdupois]",
                    "Grain (gr)",
                    "Dram (dr)",
                    "Ounce (oz)",
                    "Pound (lb)",
                    "Nail",
                    "Stone (st)",
                    "Quarter (gr)",
                    "Tod",
                    "US hundredweight (cwt)",
                    "Imperial hundredweight (cwt)",
                    "US ton (t)",
                    "Imperial ton (t)",
                    "[/Imperial Avoirdupois]",
                    "[Imperial Troy]",
                    "Grain (gr)",
                    "Pennyweight (dwt)",
                    "Troy dram (dr t)",
                    "Troy ounce (oz t)",
                    "Troy pound (lb t)",
                    "Mark",
                    "[/Imperial Troy]",
                    "[Archaic]",
                    "Wey",
                    "Wool wey",
                    "Suffolk wey",
                    "Wool sack",
                    "Coal sack",
                    "Load",
                    "Last",
                    "Flax or feather last",
                    "Gunpowder last",
                    "Picul",
                    "Rice last",
                    "[/Archaic]",
                    "[Comparisons]",
                    "Big Ben (14 tonnes)",
                    "Blue whale (180 tonnes)",
                    "International Space Station (417 tonnes)",
                    "Space Shuttle (2,041 tonnes)",
                    "RMS Titanic (52,000 tonnes)",
                    "Great Pyramid of Giza (6,000,000 tonnes)",
                    "Earth's oceans (1.4 yottagrams)",
                    "[/Comparisons]",
                    "[Astronomical]",
                    "A teaspoon of neutron star (5,500 million tonnes)",
                    "Lunar mass (ML)",
                    "Earth mass (M⊕)",
                    "Jupiter mass (MJ)",
                    "Solar mass (M☉)",
                    "Sagittarius A* (7.5 x 10^36 kgs-ish)",
                    "Milky Way galaxy (1.2 x 10^42 kgs)",
                    "The observable universe (1.45 x 10^53 kgs)",
                    "[/Astronomical]"
                ]
            },
            {
                "name": "Output units",
                "type": "option",
                "value": [
                    "[Metric]",
                    "Yoctogram (yg)",
                    "Zeptogram (zg)",
                    "Attogram (ag)",
                    "Femtogram (fg)",
                    "Picogram (pg)",
                    "Nanogram (ng)",
                    "Microgram (μg)",
                    "Milligram (mg)",
                    "Centigram (cg)",
                    "Decigram (dg)",
                    "Gram (g)",
                    "Decagram (dag)",
                    "Hectogram (hg)",
                    "Kilogram (kg)",
                    "Megagram (Mg)",
                    "Tonne (t)",
                    "Gigagram (Gg)",
                    "Teragram (Tg)",
                    "Petagram (Pg)",
                    "Exagram (Eg)",
                    "Zettagram (Zg)",
                    "Yottagram (Yg)",
                    "[/Metric]",
                    "[Imperial Avoirdupois]",
                    "Grain (gr)",
                    "Dram (dr)",
                    "Ounce (oz)",
                    "Pound (lb)",
                    "Nail",
                    "Stone (st)",
                    "Quarter (gr)",
                    "Tod",
                    "US hundredweight (cwt)",
                    "Imperial hundredweight (cwt)",
                    "US ton (t)",
                    "Imperial ton (t)",
                    "[/Imperial Avoirdupois]",
                    "[Imperial Troy]",
                    "Grain (gr)",
                    "Pennyweight (dwt)",
                    "Troy dram (dr t)",
                    "Troy ounce (oz t)",
                    "Troy pound (lb t)",
                    "Mark",
                    "[/Imperial Troy]",
                    "[Archaic]",
                    "Wey",
                    "Wool wey",
                    "Suffolk wey",
                    "Wool sack",
                    "Coal sack",
                    "Load",
                    "Last",
                    "Flax or feather last",
                    "Gunpowder last",
                    "Picul",
                    "Rice last",
                    "[/Archaic]",
                    "[Comparisons]",
                    "Big Ben (14 tonnes)",
                    "Blue whale (180 tonnes)",
                    "International Space Station (417 tonnes)",
                    "Space Shuttle (2,041 tonnes)",
                    "RMS Titanic (52,000 tonnes)",
                    "Great Pyramid of Giza (6,000,000 tonnes)",
                    "Earth's oceans (1.4 yottagrams)",
                    "[/Comparisons]",
                    "[Astronomical]",
                    "A teaspoon of neutron star (5,500 million tonnes)",
                    "Lunar mass (ML)",
                    "Earth mass (M⊕)",
                    "Jupiter mass (MJ)",
                    "Solar mass (M☉)",
                    "Sagittarius A* (7.5 x 10^36 kgs-ish)",
                    "Milky Way galaxy (1.2 x 10^42 kgs)",
                    "The observable universe (1.45 x 10^53 kgs)",
                    "[/Astronomical]"
                ]
            }
        ]
    },
    "Convert speed": {
        "module": "Default",
        "description": "Converts a unit of speed to another format.",
        "infoURL": "https://wikipedia.org/wiki/Orders_of_magnitude_(speed)",
        "inputType": "BigNumber",
        "outputType": "BigNumber",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Input units",
                "type": "option",
                "value": [
                    "[Metric]",
                    "Metres per second (m/s)",
                    "Kilometres per hour (km/h)",
                    "[/Metric]",
                    "[Imperial]",
                    "Miles per hour (mph)",
                    "Knots (kn)",
                    "[/Imperial]",
                    "[Comparisons]",
                    "Human hair growth rate",
                    "Bamboo growth rate",
                    "World's fastest snail",
                    "Usain Bolt's top speed",
                    "Jet airliner cruising speed",
                    "Concorde",
                    "SR-71 Blackbird",
                    "Space Shuttle",
                    "International Space Station",
                    "[/Comparisons]",
                    "[Scientific]",
                    "Sound in standard atmosphere",
                    "Sound in water",
                    "Lunar escape velocity",
                    "Earth escape velocity",
                    "Earth's solar orbit",
                    "Solar system's Milky Way orbit",
                    "Milky Way relative to the cosmic microwave background",
                    "Solar escape velocity",
                    "Neutron star escape velocity (0.3c)",
                    "Light in a diamond (0.4136c)",
                    "Signal in an optical fibre (0.667c)",
                    "Light (c)",
                    "[/Scientific]"
                ]
            },
            {
                "name": "Output units",
                "type": "option",
                "value": [
                    "[Metric]",
                    "Metres per second (m/s)",
                    "Kilometres per hour (km/h)",
                    "[/Metric]",
                    "[Imperial]",
                    "Miles per hour (mph)",
                    "Knots (kn)",
                    "[/Imperial]",
                    "[Comparisons]",
                    "Human hair growth rate",
                    "Bamboo growth rate",
                    "World's fastest snail",
                    "Usain Bolt's top speed",
                    "Jet airliner cruising speed",
                    "Concorde",
                    "SR-71 Blackbird",
                    "Space Shuttle",
                    "International Space Station",
                    "[/Comparisons]",
                    "[Scientific]",
                    "Sound in standard atmosphere",
                    "Sound in water",
                    "Lunar escape velocity",
                    "Earth escape velocity",
                    "Earth's solar orbit",
                    "Solar system's Milky Way orbit",
                    "Milky Way relative to the cosmic microwave background",
                    "Solar escape velocity",
                    "Neutron star escape velocity (0.3c)",
                    "Light in a diamond (0.4136c)",
                    "Signal in an optical fibre (0.667c)",
                    "Light (c)",
                    "[/Scientific]"
                ]
            }
        ]
    },
    "Convert to NATO alphabet": {
        "module": "Default",
        "description": "Converts characters to their representation in the NATO phonetic alphabet.",
        "infoURL": "https://wikipedia.org/wiki/NATO_phonetic_alphabet",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": []
    },
    "Count occurrences": {
        "module": "Default",
        "description": "Counts the number of times the provided string occurs in the input.",
        "infoURL": null,
        "inputType": "string",
        "outputType": "number",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Search string",
                "type": "toggleString",
                "value": "",
                "toggleValues": [
                    "Regex",
                    "Extended (\\n, \\t, \\x...)",
                    "Simple string"
                ]
            }
        ]
    },
    "Cover Image": {
        "module": "Image",
        "description": "Scales the image to the given width and height, keeping the aspect ratio. The image may be clipped.",
        "infoURL": "",
        "inputType": "ArrayBuffer",
        "outputType": "html",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Width",
                "type": "number",
                "value": 100,
                "min": 1
            },
            {
                "name": "Height",
                "type": "number",
                "value": 100,
                "min": 1
            },
            {
                "name": "Horizontal align",
                "type": "option",
                "value": [
                    "Left",
                    "Center",
                    "Right"
                ],
                "defaultIndex": 1
            },
            {
                "name": "Vertical align",
                "type": "option",
                "value": [
                    "Top",
                    "Middle",
                    "Bottom"
                ],
                "defaultIndex": 1
            },
            {
                "name": "Resizing algorithm",
                "type": "option",
                "value": [
                    "Nearest Neighbour",
                    "Bilinear",
                    "Bicubic",
                    "Hermite",
                    "Bezier"
                ],
                "defaultIndex": 1
            }
        ]
    },
    "Crop Image": {
        "module": "Image",
        "description": "Crops an image to the specified region, or automatically crops edges.<br><br><b><u>Autocrop</u></b><br>Automatically crops same-colour borders from the image.<br><br><u>Autocrop tolerance</u><br>A percentage value for the tolerance of colour difference between pixels.<br><br><u>Only autocrop frames</u><br>Only crop real frames (all sides must have the same border)<br><br><u>Symmetric autocrop</u><br>Force autocrop to be symmetric (top/bottom and left/right are cropped by the same amount)<br><br><u>Autocrop keep border</u><br>The number of pixels of border to leave around the image.",
        "infoURL": "https://wikipedia.org/wiki/Cropping_(image)",
        "inputType": "ArrayBuffer",
        "outputType": "html",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "X Position",
                "type": "number",
                "value": 0,
                "min": 0
            },
            {
                "name": "Y Position",
                "type": "number",
                "value": 0,
                "min": 0
            },
            {
                "name": "Width",
                "type": "number",
                "value": 10,
                "min": 1
            },
            {
                "name": "Height",
                "type": "number",
                "value": 10,
                "min": 1
            },
            {
                "name": "Autocrop",
                "type": "boolean",
                "value": false
            },
            {
                "name": "Autocrop tolerance (%)",
                "type": "number",
                "value": 0.02,
                "min": 0,
                "max": 100,
                "step": 0.01
            },
            {
                "name": "Only autocrop frames",
                "type": "boolean",
                "value": true
            },
            {
                "name": "Symmetric autocrop",
                "type": "boolean",
                "value": false
            },
            {
                "name": "Autocrop keep border (px)",
                "type": "number",
                "value": 0,
                "min": 0
            }
        ]
    },
    "DES Decrypt": {
        "module": "Ciphers",
        "description": "DES is a previously dominant algorithm for encryption, and was published as an official U.S. Federal Information Processing Standard (FIPS). It is now considered to be insecure due to its small key size.<br><br><b>Key:</b> DES uses a key length of 8 bytes (64 bits).<br>Triple DES uses a key length of 24 bytes (192 bits).<br><br><b>IV:</b> The Initialization Vector should be 8 bytes long. If not entered, it will default to 8 null bytes.<br><br><b>Padding:</b> In CBC and ECB mode, PKCS#7 padding will be used as a default.",
        "infoURL": "https://wikipedia.org/wiki/Data_Encryption_Standard",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Key",
                "type": "toggleString",
                "value": "",
                "toggleValues": [
                    "Hex",
                    "UTF8",
                    "Latin1",
                    "Base64"
                ]
            },
            {
                "name": "IV",
                "type": "toggleString",
                "value": "",
                "toggleValues": [
                    "Hex",
                    "UTF8",
                    "Latin1",
                    "Base64"
                ]
            },
            {
                "name": "Mode",
                "type": "option",
                "value": [
                    "CBC",
                    "CFB",
                    "OFB",
                    "CTR",
                    "ECB",
                    "CBC/NoPadding",
                    "ECB/NoPadding"
                ]
            },
            {
                "name": "Input",
                "type": "option",
                "value": [
                    "Hex",
                    "Raw"
                ]
            },
            {
                "name": "Output",
                "type": "option",
                "value": [
                    "Raw",
                    "Hex"
                ]
            }
        ]
    },
    "DES Encrypt": {
        "module": "Ciphers",
        "description": "DES is a previously dominant algorithm for encryption, and was published as an official U.S. Federal Information Processing Standard (FIPS). It is now considered to be insecure due to its small key size.<br><br><b>Key:</b> DES uses a key length of 8 bytes (64 bits).<br>Triple DES uses a key length of 24 bytes (192 bits).<br><br>You can generate a password-based key using one of the KDF operations.<br><br><b>IV:</b> The Initialization Vector should be 8 bytes long. If not entered, it will default to 8 null bytes.<br><br><b>Padding:</b> In CBC and ECB mode, PKCS#7 padding will be used.",
        "infoURL": "https://wikipedia.org/wiki/Data_Encryption_Standard",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Key",
                "type": "toggleString",
                "value": "",
                "toggleValues": [
                    "Hex",
                    "UTF8",
                    "Latin1",
                    "Base64"
                ]
            },
            {
                "name": "IV",
                "type": "toggleString",
                "value": "",
                "toggleValues": [
                    "Hex",
                    "UTF8",
                    "Latin1",
                    "Base64"
                ]
            },
            {
                "name": "Mode",
                "type": "option",
                "value": [
                    "CBC",
                    "CFB",
                    "OFB",
                    "CTR",
                    "ECB"
                ]
            },
            {
                "name": "Input",
                "type": "option",
                "value": [
                    "Raw",
                    "Hex"
                ]
            },
            {
                "name": "Output",
                "type": "option",
                "value": [
                    "Hex",
                    "Raw"
                ]
            }
        ]
    },
    "DNS over HTTPS": {
        "module": "Default",
        "description": "Takes a single domain name and performs a DNS lookup using DNS over HTTPS.\n<br><br>\nBy default, <a href='https://developers.cloudflare.com/1.1.1.1/dns-over-https/'>Cloudflare</a> and <a href='https://developers.google.com/speed/public-dns/docs/dns-over-https'>Google</a> DNS over HTTPS services are supported.\n<br><br>\nCan be used with any service that supports the GET parameters <code>name</code> and <code>type</code>.",
        "infoURL": "https://wikipedia.org/wiki/DNS_over_HTTPS",
        "inputType": "string",
        "outputType": "JSON",
        "flowControl": false,
        "manualBake": true,
        "args": [
            {
                "name": "Resolver",
                "type": "editableOption",
                "value": [
                    {
                        "name": "Google",
                        "value": "https://dns.google.com/resolve"
                    },
                    {
                        "name": "Cloudflare",
                        "value": "https://cloudflare-dns.com/dns-query"
                    }
                ]
            },
            {
                "name": "Request Type",
                "type": "option",
                "value": [
                    "A",
                    "AAAA",
                    "ANAME",
                    "CERT",
                    "CNAME",
                    "DNSKEY",
                    "HTTPS",
                    "IPSECKEY",
                    "LOC",
                    "MX",
                    "NS",
                    "OPENPGPKEY",
                    "PTR",
                    "RRSIG",
                    "SIG",
                    "SOA",
                    "SPF",
                    "SRV",
                    "SSHFP",
                    "TA",
                    "TXT",
                    "URI",
                    "ANY"
                ]
            },
            {
                "name": "Answer Data Only",
                "type": "boolean",
                "value": false
            },
            {
                "name": "Disable DNSSEC validation",
                "type": "boolean",
                "value": false
            }
        ]
    },
    "Dechunk HTTP response": {
        "module": "Default",
        "description": "Parses an HTTP response transferred using Transfer-Encoding: Chunked",
        "infoURL": "https://wikipedia.org/wiki/Chunked_transfer_encoding",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [],
        "checks": [
            {
                "pattern": "^[0-9A-F]+\r\n",
                "flags": "i",
                "args": []
            }
        ]
    },
    "Decode NetBIOS Name": {
        "module": "Default",
        "description": "NetBIOS names as seen across the client interface to NetBIOS are exactly 16 bytes long. Within the NetBIOS-over-TCP protocols, a longer representation is used.<br><br>There are two levels of encoding. The first level maps a NetBIOS name into a domain system name.  The second level maps the domain system name into the 'compressed' representation required for interaction with the domain name system.<br><br>This operation decodes the first level of encoding. See RFC 1001 for full details.",
        "infoURL": "https://wikipedia.org/wiki/NetBIOS",
        "inputType": "byteArray",
        "outputType": "byteArray",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Offset",
                "type": "number",
                "value": 65
            }
        ],
        "checks": [
            {
                "pattern": "^\\s*\\S{32}$",
                "flags": "",
                "args": [
                    65
                ]
            }
        ]
    },
    "Decode text": {
        "module": "Encodings",
        "description": "Decodes text from the chosen character encoding.\n<br><br>\nSupported charsets are:\n<ul>\n<li>UTF-8 (65001)</li>\n<li>UTF-7 (65000)</li>\n<li>UTF-16LE (1200)</li>\n<li>UTF-16BE (1201)</li>\n<li>UTF-32LE (12000)</li>\n<li>UTF-32BE (12001)</li>\n<li>IBM EBCDIC International (500)</li>\n<li>IBM EBCDIC US-Canada (37)</li>\n<li>IBM EBCDIC Multilingual/ROECE (Latin 2) (870)</li>\n<li>IBM EBCDIC Greek Modern (875)</li>\n<li>IBM EBCDIC French (1010)</li>\n<li>IBM EBCDIC Turkish (Latin 5) (1026)</li>\n<li>IBM EBCDIC Latin 1/Open System (1047)</li>\n<li>IBM EBCDIC Lao (1132/1133/1341)</li>\n<li>IBM EBCDIC US-Canada (037 + Euro symbol) (1140)</li>\n<li>IBM EBCDIC Germany (20273 + Euro symbol) (1141)</li>\n<li>IBM EBCDIC Denmark-Norway (20277 + Euro symbol) (1142)</li>\n<li>IBM EBCDIC Finland-Sweden (20278 + Euro symbol) (1143)</li>\n<li>IBM EBCDIC Italy (20280 + Euro symbol) (1144)</li>\n<li>IBM EBCDIC Latin America-Spain (20284 + Euro symbol) (1145)</li>\n<li>IBM EBCDIC United Kingdom (20285 + Euro symbol) (1146)</li>\n<li>IBM EBCDIC France (20297 + Euro symbol) (1147)</li>\n<li>IBM EBCDIC International (500 + Euro symbol) (1148)</li>\n<li>IBM EBCDIC Icelandic (20871 + Euro symbol) (1149)</li>\n<li>IBM EBCDIC Germany (20273)</li>\n<li>IBM EBCDIC Denmark-Norway (20277)</li>\n<li>IBM EBCDIC Finland-Sweden (20278)</li>\n<li>IBM EBCDIC Italy (20280)</li>\n<li>IBM EBCDIC Latin America-Spain (20284)</li>\n<li>IBM EBCDIC United Kingdom (20285)</li>\n<li>IBM EBCDIC Japanese Katakana Extended (20290)</li>\n<li>IBM EBCDIC France (20297)</li>\n<li>IBM EBCDIC Arabic (20420)</li>\n<li>IBM EBCDIC Greek (20423)</li>\n<li>IBM EBCDIC Hebrew (20424)</li>\n<li>IBM EBCDIC Korean Extended (20833)</li>\n<li>IBM EBCDIC Thai (20838)</li>\n<li>IBM EBCDIC Icelandic (20871)</li>\n<li>IBM EBCDIC Cyrillic Russian (20880)</li>\n<li>IBM EBCDIC Turkish (20905)</li>\n<li>IBM EBCDIC Latin 1/Open System (1047 + Euro symbol) (20924)</li>\n<li>IBM EBCDIC Cyrillic Serbian-Bulgarian (21025)</li>\n<li>OEM United States (437)</li>\n<li>OEM Greek (formerly 437G); Greek (DOS) (737)</li>\n<li>OEM Baltic; Baltic (DOS) (775)</li>\n<li>OEM Russian; Cyrillic + Euro symbol (808)</li>\n<li>OEM Multilingual Latin 1; Western European (DOS) (850)</li>\n<li>OEM Latin 2; Central European (DOS) (852)</li>\n<li>OEM Cyrillic (primarily Russian) (855)</li>\n<li>OEM Turkish; Turkish (DOS) (857)</li>\n<li>OEM Multilingual Latin 1 + Euro symbol (858)</li>\n<li>OEM Portuguese; Portuguese (DOS) (860)</li>\n<li>OEM Icelandic; Icelandic (DOS) (861)</li>\n<li>OEM Hebrew; Hebrew (DOS) (862)</li>\n<li>OEM French Canadian; French Canadian (DOS) (863)</li>\n<li>OEM Arabic; Arabic (864) (864)</li>\n<li>OEM Nordic; Nordic (DOS) (865)</li>\n<li>OEM Russian; Cyrillic (DOS) (866)</li>\n<li>OEM Modern Greek; Greek, Modern (DOS) (869)</li>\n<li>OEM Cyrillic (primarily Russian) + Euro Symbol (872)</li>\n<li>Windows-874 Thai (874)</li>\n<li>Windows-1250 Central European (1250)</li>\n<li>Windows-1251 Cyrillic (1251)</li>\n<li>Windows-1252 Latin (1252)</li>\n<li>Windows-1253 Greek (1253)</li>\n<li>Windows-1254 Turkish (1254)</li>\n<li>Windows-1255 Hebrew (1255)</li>\n<li>Windows-1256 Arabic (1256)</li>\n<li>Windows-1257 Baltic (1257)</li>\n<li>Windows-1258 Vietnam (1258)</li>\n<li>ISO-8859-1 Latin 1 Western European (28591)</li>\n<li>ISO-8859-2 Latin 2 Central European (28592)</li>\n<li>ISO-8859-3 Latin 3 South European (28593)</li>\n<li>ISO-8859-4 Latin 4 North European (28594)</li>\n<li>ISO-8859-5 Latin/Cyrillic (28595)</li>\n<li>ISO-8859-6 Latin/Arabic (28596)</li>\n<li>ISO-8859-7 Latin/Greek (28597)</li>\n<li>ISO-8859-8 Latin/Hebrew (28598)</li>\n<li>ISO 8859-8 Hebrew (ISO-Logical) (38598)</li>\n<li>ISO-8859-9 Latin 5 Turkish (28599)</li>\n<li>ISO-8859-10 Latin 6 Nordic (28600)</li>\n<li>ISO-8859-11 Latin/Thai (28601)</li>\n<li>ISO-8859-13 Latin 7 Baltic Rim (28603)</li>\n<li>ISO-8859-14 Latin 8 Celtic (28604)</li>\n<li>ISO-8859-15 Latin 9 (28605)</li>\n<li>ISO-8859-16 Latin 10 (28606)</li>\n<li>ISO 2022 JIS Japanese with no halfwidth Katakana (50220)</li>\n<li>ISO 2022 JIS Japanese with halfwidth Katakana (50221)</li>\n<li>ISO 2022 Japanese JIS X 0201-1989 (1 byte Kana-SO/SI) (50222)</li>\n<li>ISO 2022 Korean (50225)</li>\n<li>ISO 2022 Simplified Chinese (50227)</li>\n<li>ISO 6937 Non-Spacing Accent (20269)</li>\n<li>EUC Japanese (51932)</li>\n<li>EUC Simplified Chinese (51936)</li>\n<li>EUC Korean (51949)</li>\n<li>ISCII Devanagari (57002)</li>\n<li>ISCII Bengali (57003)</li>\n<li>ISCII Tamil (57004)</li>\n<li>ISCII Telugu (57005)</li>\n<li>ISCII Assamese (57006)</li>\n<li>ISCII Oriya (57007)</li>\n<li>ISCII Kannada (57008)</li>\n<li>ISCII Malayalam (57009)</li>\n<li>ISCII Gujarati (57010)</li>\n<li>ISCII Punjabi (57011)</li>\n<li>Japanese Shift-JIS (932)</li>\n<li>Simplified Chinese GBK (936)</li>\n<li>Korean (949)</li>\n<li>Traditional Chinese Big5 (950)</li>\n<li>US-ASCII (7-bit) (20127)</li>\n<li>Simplified Chinese GB2312 (20936)</li>\n<li>KOI8-R Russian Cyrillic (20866)</li>\n<li>KOI8-U Ukrainian Cyrillic (21866)</li>\n<li>Mazovia (Polish) MS-DOS (620)</li>\n<li>Arabic (ASMO 708) (708)</li>\n<li>Arabic (Transparent ASMO); Arabic (DOS) (720)</li>\n<li>Kamenický (Czech) MS-DOS (895)</li>\n<li>Korean (Johab) (1361)</li>\n<li>MAC Roman (10000)</li>\n<li>Japanese (Mac) (10001)</li>\n<li>MAC Traditional Chinese (Big5) (10002)</li>\n<li>Korean (Mac) (10003)</li>\n<li>Arabic (Mac) (10004)</li>\n<li>Hebrew (Mac) (10005)</li>\n<li>Greek (Mac) (10006)</li>\n<li>Cyrillic (Mac) (10007)</li>\n<li>MAC Simplified Chinese (GB 2312) (10008)</li>\n<li>Romanian (Mac) (10010)</li>\n<li>Ukrainian (Mac) (10017)</li>\n<li>Thai (Mac) (10021)</li>\n<li>MAC Latin 2 (Central European) (10029)</li>\n<li>Icelandic (Mac) (10079)</li>\n<li>Turkish (Mac) (10081)</li>\n<li>Croatian (Mac) (10082)</li>\n<li>CNS Taiwan (Chinese Traditional) (20000)</li>\n<li>TCA Taiwan (20001)</li>\n<li>ETEN Taiwan (Chinese Traditional) (20002)</li>\n<li>IBM5550 Taiwan (20003)</li>\n<li>TeleText Taiwan (20004)</li>\n<li>Wang Taiwan (20005)</li>\n<li>Western European IA5 (IRV International Alphabet 5) (20105)</li>\n<li>IA5 German (7-bit) (20106)</li>\n<li>IA5 Swedish (7-bit) (20107)</li>\n<li>IA5 Norwegian (7-bit) (20108)</li>\n<li>T.61 (20261)</li>\n<li>Japanese (JIS 0208-1990 and 0212-1990) (20932)</li>\n<li>Korean Wansung (20949)</li>\n<li>Extended/Ext Alpha Lowercase (21027)</li>\n<li>Europa 3 (29001)</li>\n<li>Atari ST/TT (47451)</li>\n<li>HZ-GB2312 Simplified Chinese (52936)</li>\n<li>Simplified Chinese GB18030 (54936)</li>\n</ul>",
        "infoURL": "https://wikipedia.org/wiki/Character_encoding",
        "inputType": "ArrayBuffer",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Encoding",
                "type": "option",
                "value": [
                    "UTF-8 (65001)",
                    "UTF-7 (65000)",
                    "UTF-16LE (1200)",
                    "UTF-16BE (1201)",
                    "UTF-32LE (12000)",
                    "UTF-32BE (12001)",
                    "IBM EBCDIC International (500)",
                    "IBM EBCDIC US-Canada (37)",
                    "IBM EBCDIC Multilingual/ROECE (Latin 2) (870)",
                    "IBM EBCDIC Greek Modern (875)",
                    "IBM EBCDIC French (1010)",
                    "IBM EBCDIC Turkish (Latin 5) (1026)",
                    "IBM EBCDIC Latin 1/Open System (1047)",
                    "IBM EBCDIC Lao (1132/1133/1341)",
                    "IBM EBCDIC US-Canada (037 + Euro symbol) (1140)",
                    "IBM EBCDIC Germany (20273 + Euro symbol) (1141)",
                    "IBM EBCDIC Denmark-Norway (20277 + Euro symbol) (1142)",
                    "IBM EBCDIC Finland-Sweden (20278 + Euro symbol) (1143)",
                    "IBM EBCDIC Italy (20280 + Euro symbol) (1144)",
                    "IBM EBCDIC Latin America-Spain (20284 + Euro symbol) (1145)",
                    "IBM EBCDIC United Kingdom (20285 + Euro symbol) (1146)",
                    "IBM EBCDIC France (20297 + Euro symbol) (1147)",
                    "IBM EBCDIC International (500 + Euro symbol) (1148)",
                    "IBM EBCDIC Icelandic (20871 + Euro symbol) (1149)",
                    "IBM EBCDIC Germany (20273)",
                    "IBM EBCDIC Denmark-Norway (20277)",
                    "IBM EBCDIC Finland-Sweden (20278)",
                    "IBM EBCDIC Italy (20280)",
                    "IBM EBCDIC Latin America-Spain (20284)",
                    "IBM EBCDIC United Kingdom (20285)",
                    "IBM EBCDIC Japanese Katakana Extended (20290)",
                    "IBM EBCDIC France (20297)",
                    "IBM EBCDIC Arabic (20420)",
                    "IBM EBCDIC Greek (20423)",
                    "IBM EBCDIC Hebrew (20424)",
                    "IBM EBCDIC Korean Extended (20833)",
                    "IBM EBCDIC Thai (20838)",
                    "IBM EBCDIC Icelandic (20871)",
                    "IBM EBCDIC Cyrillic Russian (20880)",
                    "IBM EBCDIC Turkish (20905)",
                    "IBM EBCDIC Latin 1/Open System (1047 + Euro symbol) (20924)",
                    "IBM EBCDIC Cyrillic Serbian-Bulgarian (21025)",
                    "OEM United States (437)",
                    "OEM Greek (formerly 437G); Greek (DOS) (737)",
                    "OEM Baltic; Baltic (DOS) (775)",
                    "OEM Russian; Cyrillic + Euro symbol (808)",
                    "OEM Multilingual Latin 1; Western European (DOS) (850)",
                    "OEM Latin 2; Central European (DOS) (852)",
                    "OEM Cyrillic (primarily Russian) (855)",
                    "OEM Turkish; Turkish (DOS) (857)",
                    "OEM Multilingual Latin 1 + Euro symbol (858)",
                    "OEM Portuguese; Portuguese (DOS) (860)",
                    "OEM Icelandic; Icelandic (DOS) (861)",
                    "OEM Hebrew; Hebrew (DOS) (862)",
                    "OEM French Canadian; French Canadian (DOS) (863)",
                    "OEM Arabic; Arabic (864) (864)",
                    "OEM Nordic; Nordic (DOS) (865)",
                    "OEM Russian; Cyrillic (DOS) (866)",
                    "OEM Modern Greek; Greek, Modern (DOS) (869)",
                    "OEM Cyrillic (primarily Russian) + Euro Symbol (872)",
                    "Windows-874 Thai (874)",
                    "Windows-1250 Central European (1250)",
                    "Windows-1251 Cyrillic (1251)",
                    "Windows-1252 Latin (1252)",
                    "Windows-1253 Greek (1253)",
                    "Windows-1254 Turkish (1254)",
                    "Windows-1255 Hebrew (1255)",
                    "Windows-1256 Arabic (1256)",
                    "Windows-1257 Baltic (1257)",
                    "Windows-1258 Vietnam (1258)",
                    "ISO-8859-1 Latin 1 Western European (28591)",
                    "ISO-8859-2 Latin 2 Central European (28592)",
                    "ISO-8859-3 Latin 3 South European (28593)",
                    "ISO-8859-4 Latin 4 North European (28594)",
                    "ISO-8859-5 Latin/Cyrillic (28595)",
                    "ISO-8859-6 Latin/Arabic (28596)",
                    "ISO-8859-7 Latin/Greek (28597)",
                    "ISO-8859-8 Latin/Hebrew (28598)",
                    "ISO 8859-8 Hebrew (ISO-Logical) (38598)",
                    "ISO-8859-9 Latin 5 Turkish (28599)",
                    "ISO-8859-10 Latin 6 Nordic (28600)",
                    "ISO-8859-11 Latin/Thai (28601)",
                    "ISO-8859-13 Latin 7 Baltic Rim (28603)",
                    "ISO-8859-14 Latin 8 Celtic (28604)",
                    "ISO-8859-15 Latin 9 (28605)",
                    "ISO-8859-16 Latin 10 (28606)",
                    "ISO 2022 JIS Japanese with no halfwidth Katakana (50220)",
                    "ISO 2022 JIS Japanese with halfwidth Katakana (50221)",
                    "ISO 2022 Japanese JIS X 0201-1989 (1 byte Kana-SO/SI) (50222)",
                    "ISO 2022 Korean (50225)",
                    "ISO 2022 Simplified Chinese (50227)",
                    "ISO 6937 Non-Spacing Accent (20269)",
                    "EUC Japanese (51932)",
                    "EUC Simplified Chinese (51936)",
                    "EUC Korean (51949)",
                    "ISCII Devanagari (57002)",
                    "ISCII Bengali (57003)",
                    "ISCII Tamil (57004)",
                    "ISCII Telugu (57005)",
                    "ISCII Assamese (57006)",
                    "ISCII Oriya (57007)",
                    "ISCII Kannada (57008)",
                    "ISCII Malayalam (57009)",
                    "ISCII Gujarati (57010)",
                    "ISCII Punjabi (57011)",
                    "Japanese Shift-JIS (932)",
                    "Simplified Chinese GBK (936)",
                    "Korean (949)",
                    "Traditional Chinese Big5 (950)",
                    "US-ASCII (7-bit) (20127)",
                    "Simplified Chinese GB2312 (20936)",
                    "KOI8-R Russian Cyrillic (20866)",
                    "KOI8-U Ukrainian Cyrillic (21866)",
                    "Mazovia (Polish) MS-DOS (620)",
                    "Arabic (ASMO 708) (708)",
                    "Arabic (Transparent ASMO); Arabic (DOS) (720)",
                    "Kamenický (Czech) MS-DOS (895)",
                    "Korean (Johab) (1361)",
                    "MAC Roman (10000)",
                    "Japanese (Mac) (10001)",
                    "MAC Traditional Chinese (Big5) (10002)",
                    "Korean (Mac) (10003)",
                    "Arabic (Mac) (10004)",
                    "Hebrew (Mac) (10005)",
                    "Greek (Mac) (10006)",
                    "Cyrillic (Mac) (10007)",
                    "MAC Simplified Chinese (GB 2312) (10008)",
                    "Romanian (Mac) (10010)",
                    "Ukrainian (Mac) (10017)",
                    "Thai (Mac) (10021)",
                    "MAC Latin 2 (Central European) (10029)",
                    "Icelandic (Mac) (10079)",
                    "Turkish (Mac) (10081)",
                    "Croatian (Mac) (10082)",
                    "CNS Taiwan (Chinese Traditional) (20000)",
                    "TCA Taiwan (20001)",
                    "ETEN Taiwan (Chinese Traditional) (20002)",
                    "IBM5550 Taiwan (20003)",
                    "TeleText Taiwan (20004)",
                    "Wang Taiwan (20005)",
                    "Western European IA5 (IRV International Alphabet 5) (20105)",
                    "IA5 German (7-bit) (20106)",
                    "IA5 Swedish (7-bit) (20107)",
                    "IA5 Norwegian (7-bit) (20108)",
                    "T.61 (20261)",
                    "Japanese (JIS 0208-1990 and 0212-1990) (20932)",
                    "Korean Wansung (20949)",
                    "Extended/Ext Alpha Lowercase (21027)",
                    "Europa 3 (29001)",
                    "Atari ST/TT (47451)",
                    "HZ-GB2312 Simplified Chinese (52936)",
                    "Simplified Chinese GB18030 (54936)"
                ]
            }
        ]
    },
    "Defang IP Addresses": {
        "module": "Default",
        "description": "Takes a IPv4 or IPv6 address and 'Defangs' it, meaning the IP becomes invalid, removing the risk of accidentally utilising it as an IP address.",
        "infoURL": "https://isc.sans.edu/forums/diary/Defang+all+the+things/22744/",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [],
        "checks": [
            {
                "pattern": "^\\s*(([0-9]{1,3}\\.){3}[0-9]{1,3}|([0-9a-f]{4}:){7}[0-9a-f]{4})\\s*$",
                "flags": "i",
                "args": [],
                "output": {
                    "pattern": "^\\s*(([0-9]{1,3}\\[\\.\\]){3}[0-9]{1,3}|([0-9a-f]{4}\\[\\:\\]){7}[0-9a-f]{4})\\s*$",
                    "flags": "i"
                }
            }
        ]
    },
    "Defang URL": {
        "module": "Default",
        "description": "Takes a Universal Resource Locator (URL) and 'Defangs' it; meaning the URL becomes invalid, neutralising the risk of accidentally clicking on a malicious link.<br><br>This is often used when dealing with malicious links or IOCs.<br><br>Works well when combined with the 'Extract URLs' operation.",
        "infoURL": "https://isc.sans.edu/forums/diary/Defang+all+the+things/22744/",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Escape dots",
                "type": "boolean",
                "value": true
            },
            {
                "name": "Escape http",
                "type": "boolean",
                "value": true
            },
            {
                "name": "Escape ://",
                "type": "boolean",
                "value": true
            },
            {
                "name": "Process",
                "type": "option",
                "value": [
                    "Valid domains and full URLs",
                    "Only full URLs",
                    "Everything"
                ]
            }
        ]
    },
    "Derive EVP key": {
        "module": "Ciphers",
        "description": "This operation performs a password-based key derivation function (PBKDF) used extensively in OpenSSL. In many applications of cryptography, user security is ultimately dependent on a password, and because a password usually can't be used directly as a cryptographic key, some processing is required.<br><br>A salt provides a large set of keys for any given password, and an iteration count increases the cost of producing keys from a password, thereby also increasing the difficulty of attack.<br><br>If you leave the salt argument empty, a random salt will be generated.",
        "infoURL": "https://wikipedia.org/wiki/Key_derivation_function",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Passphrase",
                "type": "toggleString",
                "value": "",
                "toggleValues": [
                    "UTF8",
                    "Latin1",
                    "Hex",
                    "Base64"
                ]
            },
            {
                "name": "Key size",
                "type": "number",
                "value": 128
            },
            {
                "name": "Iterations",
                "type": "number",
                "value": 1
            },
            {
                "name": "Hashing function",
                "type": "option",
                "value": [
                    "SHA1",
                    "SHA256",
                    "SHA384",
                    "SHA512",
                    "MD5"
                ]
            },
            {
                "name": "Salt",
                "type": "toggleString",
                "value": "",
                "toggleValues": [
                    "Hex",
                    "UTF8",
                    "Latin1",
                    "Base64"
                ]
            }
        ]
    },
    "Derive PBKDF2 key": {
        "module": "Ciphers",
        "description": "PBKDF2 is a password-based key derivation function. It is part of RSA Laboratories' Public-Key Cryptography Standards (PKCS) series, specifically PKCS #5 v2.0, also published as Internet Engineering Task Force's RFC 2898.<br><br>In many applications of cryptography, user security is ultimately dependent on a password, and because a password usually can't be used directly as a cryptographic key, some processing is required.<br><br>A salt provides a large set of keys for any given password, and an iteration count increases the cost of producing keys from a password, thereby also increasing the difficulty of attack.<br><br>If you leave the salt argument empty, a random salt will be generated.",
        "infoURL": "https://wikipedia.org/wiki/PBKDF2",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Passphrase",
                "type": "toggleString",
                "value": "",
                "toggleValues": [
                    "UTF8",
                    "Latin1",
                    "Hex",
                    "Base64"
                ]
            },
            {
                "name": "Key size",
                "type": "number",
                "value": 128
            },
            {
                "name": "Iterations",
                "type": "number",
                "value": 1
            },
            {
                "name": "Hashing function",
                "type": "option",
                "value": [
                    "SHA1",
                    "SHA256",
                    "SHA384",
                    "SHA512",
                    "MD5"
                ]
            },
            {
                "name": "Salt",
                "type": "toggleString",
                "value": "",
                "toggleValues": [
                    "Hex",
                    "UTF8",
                    "Latin1",
                    "Base64"
                ]
            }
        ]
    },
    "Detect File Type": {
        "module": "Default",
        "description": "Attempts to guess the MIME (Multipurpose Internet Mail Extensions) type of the data based on 'magic bytes'.<br><br>Currently supports the following file types: 123d, 7z, B64, abcdp, accda, accdb, accde, accdu, ace, ai, aif, aifc, alz, amr, arj, arw, au, auf, avi, axf, bash, bct, bin, bitlocker, bk!, bmp, bplist, bz2, cab, cat, cer, chi, chm, chw, class, com, cr2, crl, crt, crw, crx, db, dbx, deb, der, dex, dll, dmf, dmg, dmp, doc, docx, dot, drv, dwg, dwt, dylib, edb, elf, eot, eps, epub, evt, evtx, exe, f4v, fdb, flac, flv, fon, gif, gpg, gz, hbin, hdr, hqx, ichat, ico, ipmeta, iso, jar, job, jpe, jpeg, jpg, jxr, keychain, kgb, lnk, luac, lzo, lzop, m4a, m4v, mda, mdb, mdbackup, mde, mdi, mdinfo, mdt, midi, mkv, mov, mp3, mp4, mpg, mpo, mrw, msg, msi, nib, o, ocx, ogg, ogm, ogv, ogx, ole2, one, opus, ost, otf, p7b, p7c, p7m, p7s, pab, pdf, pf, pfa, pgd, phar, php, php-s, php3, php4, php5, php7, phps, pht, phtml, pkr, pl, plist, pm, png, pod, pot, ppa, pps, ppt, pptx, prx, ps, psa, psb, psd, psp, pst, pwl, py, pyc, pyd, pyo, pyw, pyz, qtz, raf, rar, rb, registry, rgs, rsa, rtf, scr, sdw, sh, skr, sml, so, sqlite, strings, swf, swz, sys, t, tar, tar.z, tcp, tga, thm, tif, torrent, ttf, txt, udp, utf16le, utf32le, vbx, vhd, vmdk, vsd, vxd, wallet, wasm, wav, wcm, webbookmark, webhistory, webm, webp, wmv, woff, woff2, wp, wp5, wp6, wpd, wpp, xcf, xla, xls, xlsx, xz, zip, zlib.",
        "infoURL": "https://wikipedia.org/wiki/List_of_file_signatures",
        "inputType": "ArrayBuffer",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Images",
                "type": "boolean",
                "value": true
            },
            {
                "name": "Video",
                "type": "boolean",
                "value": true
            },
            {
                "name": "Audio",
                "type": "boolean",
                "value": true
            },
            {
                "name": "Documents",
                "type": "boolean",
                "value": true
            },
            {
                "name": "Applications",
                "type": "boolean",
                "value": true
            },
            {
                "name": "Archives",
                "type": "boolean",
                "value": true
            },
            {
                "name": "Miscellaneous",
                "type": "boolean",
                "value": true
            }
        ]
    },
    "Diff": {
        "module": "Diff",
        "description": "Compares two inputs (separated by the specified delimiter) and highlights the differences between them.",
        "infoURL": "https://wikipedia.org/wiki/File_comparison",
        "inputType": "string",
        "outputType": "html",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Sample delimiter",
                "type": "binaryString",
                "value": "\\n\\n"
            },
            {
                "name": "Diff by",
                "type": "option",
                "value": [
                    "Character",
                    "Word",
                    "Line",
                    "Sentence",
                    "CSS",
                    "JSON"
                ]
            },
            {
                "name": "Show added",
                "type": "boolean",
                "value": true
            },
            {
                "name": "Show removed",
                "type": "boolean",
                "value": true
            },
            {
                "name": "Show subtraction",
                "type": "boolean",
                "value": false
            },
            {
                "name": "Ignore whitespace",
                "type": "boolean",
                "value": false,
                "hint": "Relevant for word and line"
            }
        ]
    },
    "Disassemble x86": {
        "module": "Shellcode",
        "description": "Disassembly is the process of translating machine language into assembly language.<br><br>This operation supports 64-bit, 32-bit and 16-bit code written for Intel or AMD x86 processors. It is particularly useful for reverse engineering shellcode.<br><br>Input should be in hexadecimal.",
        "infoURL": "https://wikipedia.org/wiki/X86",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Bit mode",
                "type": "option",
                "value": [
                    "64",
                    "32",
                    "16"
                ]
            },
            {
                "name": "Compatibility",
                "type": "option",
                "value": [
                    "Full x86 architecture",
                    "Knights Corner",
                    "Larrabee",
                    "Cyrix",
                    "Geode",
                    "Centaur",
                    "X86/486"
                ]
            },
            {
                "name": "Code Segment (CS)",
                "type": "number",
                "value": 16
            },
            {
                "name": "Offset (IP)",
                "type": "number",
                "value": 0
            },
            {
                "name": "Show instruction hex",
                "type": "boolean",
                "value": true
            },
            {
                "name": "Show instruction position",
                "type": "boolean",
                "value": true
            }
        ]
    },
    "Dither Image": {
        "module": "Image",
        "description": "Apply a dither effect to an image.",
        "infoURL": "https://wikipedia.org/wiki/Dither",
        "inputType": "ArrayBuffer",
        "outputType": "html",
        "flowControl": false,
        "manualBake": false,
        "args": []
    },
    "Divide": {
        "module": "Default",
        "description": "Divides a list of numbers. If an item in the string is not a number it is excluded from the list.<br><br>e.g. <code>0x0a 8 .5</code> becomes <code>2.5</code>",
        "infoURL": null,
        "inputType": "string",
        "outputType": "BigNumber",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Delimiter",
                "type": "option",
                "value": [
                    "Line feed",
                    "Space",
                    "Comma",
                    "Semi-colon",
                    "Colon",
                    "CRLF"
                ]
            }
        ]
    },
    "Drop bytes": {
        "module": "Default",
        "description": "Cuts a slice of the specified number of bytes out of the data. Negative values are allowed.",
        "infoURL": null,
        "inputType": "ArrayBuffer",
        "outputType": "ArrayBuffer",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Start",
                "type": "number",
                "value": 0
            },
            {
                "name": "Length",
                "type": "number",
                "value": 5
            },
            {
                "name": "Apply to each line",
                "type": "boolean",
                "value": false
            }
        ]
    },
    "ELF Info": {
        "module": "Default",
        "description": "Implements readelf-like functionality. This operation will extract the ELF Header, Program Headers, Section Headers and Symbol Table for an ELF file.",
        "infoURL": "https://www.wikipedia.org/wiki/Executable_and_Linkable_Format",
        "inputType": "ArrayBuffer",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": []
    },
    "Encode NetBIOS Name": {
        "module": "Default",
        "description": "NetBIOS names as seen across the client interface to NetBIOS are exactly 16 bytes long. Within the NetBIOS-over-TCP protocols, a longer representation is used.<br><br>There are two levels of encoding. The first level maps a NetBIOS name into a domain system name.  The second level maps the domain system name into the 'compressed' representation required for interaction with the domain name system.<br><br>This operation carries out the first level of encoding. See RFC 1001 for full details.",
        "infoURL": "https://wikipedia.org/wiki/NetBIOS",
        "inputType": "byteArray",
        "outputType": "byteArray",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Offset",
                "type": "number",
                "value": 65
            }
        ]
    },
    "Encode text": {
        "module": "Encodings",
        "description": "Encodes text into the chosen character encoding.\n<br><br>\nSupported charsets are:\n<ul>\n<li>UTF-8 (65001)</li>\n<li>UTF-7 (65000)</li>\n<li>UTF-16LE (1200)</li>\n<li>UTF-16BE (1201)</li>\n<li>UTF-32LE (12000)</li>\n<li>UTF-32BE (12001)</li>\n<li>IBM EBCDIC International (500)</li>\n<li>IBM EBCDIC US-Canada (37)</li>\n<li>IBM EBCDIC Multilingual/ROECE (Latin 2) (870)</li>\n<li>IBM EBCDIC Greek Modern (875)</li>\n<li>IBM EBCDIC French (1010)</li>\n<li>IBM EBCDIC Turkish (Latin 5) (1026)</li>\n<li>IBM EBCDIC Latin 1/Open System (1047)</li>\n<li>IBM EBCDIC Lao (1132/1133/1341)</li>\n<li>IBM EBCDIC US-Canada (037 + Euro symbol) (1140)</li>\n<li>IBM EBCDIC Germany (20273 + Euro symbol) (1141)</li>\n<li>IBM EBCDIC Denmark-Norway (20277 + Euro symbol) (1142)</li>\n<li>IBM EBCDIC Finland-Sweden (20278 + Euro symbol) (1143)</li>\n<li>IBM EBCDIC Italy (20280 + Euro symbol) (1144)</li>\n<li>IBM EBCDIC Latin America-Spain (20284 + Euro symbol) (1145)</li>\n<li>IBM EBCDIC United Kingdom (20285 + Euro symbol) (1146)</li>\n<li>IBM EBCDIC France (20297 + Euro symbol) (1147)</li>\n<li>IBM EBCDIC International (500 + Euro symbol) (1148)</li>\n<li>IBM EBCDIC Icelandic (20871 + Euro symbol) (1149)</li>\n<li>IBM EBCDIC Germany (20273)</li>\n<li>IBM EBCDIC Denmark-Norway (20277)</li>\n<li>IBM EBCDIC Finland-Sweden (20278)</li>\n<li>IBM EBCDIC Italy (20280)</li>\n<li>IBM EBCDIC Latin America-Spain (20284)</li>\n<li>IBM EBCDIC United Kingdom (20285)</li>\n<li>IBM EBCDIC Japanese Katakana Extended (20290)</li>\n<li>IBM EBCDIC France (20297)</li>\n<li>IBM EBCDIC Arabic (20420)</li>\n<li>IBM EBCDIC Greek (20423)</li>\n<li>IBM EBCDIC Hebrew (20424)</li>\n<li>IBM EBCDIC Korean Extended (20833)</li>\n<li>IBM EBCDIC Thai (20838)</li>\n<li>IBM EBCDIC Icelandic (20871)</li>\n<li>IBM EBCDIC Cyrillic Russian (20880)</li>\n<li>IBM EBCDIC Turkish (20905)</li>\n<li>IBM EBCDIC Latin 1/Open System (1047 + Euro symbol) (20924)</li>\n<li>IBM EBCDIC Cyrillic Serbian-Bulgarian (21025)</li>\n<li>OEM United States (437)</li>\n<li>OEM Greek (formerly 437G); Greek (DOS) (737)</li>\n<li>OEM Baltic; Baltic (DOS) (775)</li>\n<li>OEM Russian; Cyrillic + Euro symbol (808)</li>\n<li>OEM Multilingual Latin 1; Western European (DOS) (850)</li>\n<li>OEM Latin 2; Central European (DOS) (852)</li>\n<li>OEM Cyrillic (primarily Russian) (855)</li>\n<li>OEM Turkish; Turkish (DOS) (857)</li>\n<li>OEM Multilingual Latin 1 + Euro symbol (858)</li>\n<li>OEM Portuguese; Portuguese (DOS) (860)</li>\n<li>OEM Icelandic; Icelandic (DOS) (861)</li>\n<li>OEM Hebrew; Hebrew (DOS) (862)</li>\n<li>OEM French Canadian; French Canadian (DOS) (863)</li>\n<li>OEM Arabic; Arabic (864) (864)</li>\n<li>OEM Nordic; Nordic (DOS) (865)</li>\n<li>OEM Russian; Cyrillic (DOS) (866)</li>\n<li>OEM Modern Greek; Greek, Modern (DOS) (869)</li>\n<li>OEM Cyrillic (primarily Russian) + Euro Symbol (872)</li>\n<li>Windows-874 Thai (874)</li>\n<li>Windows-1250 Central European (1250)</li>\n<li>Windows-1251 Cyrillic (1251)</li>\n<li>Windows-1252 Latin (1252)</li>\n<li>Windows-1253 Greek (1253)</li>\n<li>Windows-1254 Turkish (1254)</li>\n<li>Windows-1255 Hebrew (1255)</li>\n<li>Windows-1256 Arabic (1256)</li>\n<li>Windows-1257 Baltic (1257)</li>\n<li>Windows-1258 Vietnam (1258)</li>\n<li>ISO-8859-1 Latin 1 Western European (28591)</li>\n<li>ISO-8859-2 Latin 2 Central European (28592)</li>\n<li>ISO-8859-3 Latin 3 South European (28593)</li>\n<li>ISO-8859-4 Latin 4 North European (28594)</li>\n<li>ISO-8859-5 Latin/Cyrillic (28595)</li>\n<li>ISO-8859-6 Latin/Arabic (28596)</li>\n<li>ISO-8859-7 Latin/Greek (28597)</li>\n<li>ISO-8859-8 Latin/Hebrew (28598)</li>\n<li>ISO 8859-8 Hebrew (ISO-Logical) (38598)</li>\n<li>ISO-8859-9 Latin 5 Turkish (28599)</li>\n<li>ISO-8859-10 Latin 6 Nordic (28600)</li>\n<li>ISO-8859-11 Latin/Thai (28601)</li>\n<li>ISO-8859-13 Latin 7 Baltic Rim (28603)</li>\n<li>ISO-8859-14 Latin 8 Celtic (28604)</li>\n<li>ISO-8859-15 Latin 9 (28605)</li>\n<li>ISO-8859-16 Latin 10 (28606)</li>\n<li>ISO 2022 JIS Japanese with no halfwidth Katakana (50220)</li>\n<li>ISO 2022 JIS Japanese with halfwidth Katakana (50221)</li>\n<li>ISO 2022 Japanese JIS X 0201-1989 (1 byte Kana-SO/SI) (50222)</li>\n<li>ISO 2022 Korean (50225)</li>\n<li>ISO 2022 Simplified Chinese (50227)</li>\n<li>ISO 6937 Non-Spacing Accent (20269)</li>\n<li>EUC Japanese (51932)</li>\n<li>EUC Simplified Chinese (51936)</li>\n<li>EUC Korean (51949)</li>\n<li>ISCII Devanagari (57002)</li>\n<li>ISCII Bengali (57003)</li>\n<li>ISCII Tamil (57004)</li>\n<li>ISCII Telugu (57005)</li>\n<li>ISCII Assamese (57006)</li>\n<li>ISCII Oriya (57007)</li>\n<li>ISCII Kannada (57008)</li>\n<li>ISCII Malayalam (57009)</li>\n<li>ISCII Gujarati (57010)</li>\n<li>ISCII Punjabi (57011)</li>\n<li>Japanese Shift-JIS (932)</li>\n<li>Simplified Chinese GBK (936)</li>\n<li>Korean (949)</li>\n<li>Traditional Chinese Big5 (950)</li>\n<li>US-ASCII (7-bit) (20127)</li>\n<li>Simplified Chinese GB2312 (20936)</li>\n<li>KOI8-R Russian Cyrillic (20866)</li>\n<li>KOI8-U Ukrainian Cyrillic (21866)</li>\n<li>Mazovia (Polish) MS-DOS (620)</li>\n<li>Arabic (ASMO 708) (708)</li>\n<li>Arabic (Transparent ASMO); Arabic (DOS) (720)</li>\n<li>Kamenický (Czech) MS-DOS (895)</li>\n<li>Korean (Johab) (1361)</li>\n<li>MAC Roman (10000)</li>\n<li>Japanese (Mac) (10001)</li>\n<li>MAC Traditional Chinese (Big5) (10002)</li>\n<li>Korean (Mac) (10003)</li>\n<li>Arabic (Mac) (10004)</li>\n<li>Hebrew (Mac) (10005)</li>\n<li>Greek (Mac) (10006)</li>\n<li>Cyrillic (Mac) (10007)</li>\n<li>MAC Simplified Chinese (GB 2312) (10008)</li>\n<li>Romanian (Mac) (10010)</li>\n<li>Ukrainian (Mac) (10017)</li>\n<li>Thai (Mac) (10021)</li>\n<li>MAC Latin 2 (Central European) (10029)</li>\n<li>Icelandic (Mac) (10079)</li>\n<li>Turkish (Mac) (10081)</li>\n<li>Croatian (Mac) (10082)</li>\n<li>CNS Taiwan (Chinese Traditional) (20000)</li>\n<li>TCA Taiwan (20001)</li>\n<li>ETEN Taiwan (Chinese Traditional) (20002)</li>\n<li>IBM5550 Taiwan (20003)</li>\n<li>TeleText Taiwan (20004)</li>\n<li>Wang Taiwan (20005)</li>\n<li>Western European IA5 (IRV International Alphabet 5) (20105)</li>\n<li>IA5 German (7-bit) (20106)</li>\n<li>IA5 Swedish (7-bit) (20107)</li>\n<li>IA5 Norwegian (7-bit) (20108)</li>\n<li>T.61 (20261)</li>\n<li>Japanese (JIS 0208-1990 and 0212-1990) (20932)</li>\n<li>Korean Wansung (20949)</li>\n<li>Extended/Ext Alpha Lowercase (21027)</li>\n<li>Europa 3 (29001)</li>\n<li>Atari ST/TT (47451)</li>\n<li>HZ-GB2312 Simplified Chinese (52936)</li>\n<li>Simplified Chinese GB18030 (54936)</li>\n</ul>",
        "infoURL": "https://wikipedia.org/wiki/Character_encoding",
        "inputType": "string",
        "outputType": "ArrayBuffer",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Encoding",
                "type": "option",
                "value": [
                    "UTF-8 (65001)",
                    "UTF-7 (65000)",
                    "UTF-16LE (1200)",
                    "UTF-16BE (1201)",
                    "UTF-32LE (12000)",
                    "UTF-32BE (12001)",
                    "IBM EBCDIC International (500)",
                    "IBM EBCDIC US-Canada (37)",
                    "IBM EBCDIC Multilingual/ROECE (Latin 2) (870)",
                    "IBM EBCDIC Greek Modern (875)",
                    "IBM EBCDIC French (1010)",
                    "IBM EBCDIC Turkish (Latin 5) (1026)",
                    "IBM EBCDIC Latin 1/Open System (1047)",
                    "IBM EBCDIC Lao (1132/1133/1341)",
                    "IBM EBCDIC US-Canada (037 + Euro symbol) (1140)",
                    "IBM EBCDIC Germany (20273 + Euro symbol) (1141)",
                    "IBM EBCDIC Denmark-Norway (20277 + Euro symbol) (1142)",
                    "IBM EBCDIC Finland-Sweden (20278 + Euro symbol) (1143)",
                    "IBM EBCDIC Italy (20280 + Euro symbol) (1144)",
                    "IBM EBCDIC Latin America-Spain (20284 + Euro symbol) (1145)",
                    "IBM EBCDIC United Kingdom (20285 + Euro symbol) (1146)",
                    "IBM EBCDIC France (20297 + Euro symbol) (1147)",
                    "IBM EBCDIC International (500 + Euro symbol) (1148)",
                    "IBM EBCDIC Icelandic (20871 + Euro symbol) (1149)",
                    "IBM EBCDIC Germany (20273)",
                    "IBM EBCDIC Denmark-Norway (20277)",
                    "IBM EBCDIC Finland-Sweden (20278)",
                    "IBM EBCDIC Italy (20280)",
                    "IBM EBCDIC Latin America-Spain (20284)",
                    "IBM EBCDIC United Kingdom (20285)",
                    "IBM EBCDIC Japanese Katakana Extended (20290)",
                    "IBM EBCDIC France (20297)",
                    "IBM EBCDIC Arabic (20420)",
                    "IBM EBCDIC Greek (20423)",
                    "IBM EBCDIC Hebrew (20424)",
                    "IBM EBCDIC Korean Extended (20833)",
                    "IBM EBCDIC Thai (20838)",
                    "IBM EBCDIC Icelandic (20871)",
                    "IBM EBCDIC Cyrillic Russian (20880)",
                    "IBM EBCDIC Turkish (20905)",
                    "IBM EBCDIC Latin 1/Open System (1047 + Euro symbol) (20924)",
                    "IBM EBCDIC Cyrillic Serbian-Bulgarian (21025)",
                    "OEM United States (437)",
                    "OEM Greek (formerly 437G); Greek (DOS) (737)",
                    "OEM Baltic; Baltic (DOS) (775)",
                    "OEM Russian; Cyrillic + Euro symbol (808)",
                    "OEM Multilingual Latin 1; Western European (DOS) (850)",
                    "OEM Latin 2; Central European (DOS) (852)",
                    "OEM Cyrillic (primarily Russian) (855)",
                    "OEM Turkish; Turkish (DOS) (857)",
                    "OEM Multilingual Latin 1 + Euro symbol (858)",
                    "OEM Portuguese; Portuguese (DOS) (860)",
                    "OEM Icelandic; Icelandic (DOS) (861)",
                    "OEM Hebrew; Hebrew (DOS) (862)",
                    "OEM French Canadian; French Canadian (DOS) (863)",
                    "OEM Arabic; Arabic (864) (864)",
                    "OEM Nordic; Nordic (DOS) (865)",
                    "OEM Russian; Cyrillic (DOS) (866)",
                    "OEM Modern Greek; Greek, Modern (DOS) (869)",
                    "OEM Cyrillic (primarily Russian) + Euro Symbol (872)",
                    "Windows-874 Thai (874)",
                    "Windows-1250 Central European (1250)",
                    "Windows-1251 Cyrillic (1251)",
                    "Windows-1252 Latin (1252)",
                    "Windows-1253 Greek (1253)",
                    "Windows-1254 Turkish (1254)",
                    "Windows-1255 Hebrew (1255)",
                    "Windows-1256 Arabic (1256)",
                    "Windows-1257 Baltic (1257)",
                    "Windows-1258 Vietnam (1258)",
                    "ISO-8859-1 Latin 1 Western European (28591)",
                    "ISO-8859-2 Latin 2 Central European (28592)",
                    "ISO-8859-3 Latin 3 South European (28593)",
                    "ISO-8859-4 Latin 4 North European (28594)",
                    "ISO-8859-5 Latin/Cyrillic (28595)",
                    "ISO-8859-6 Latin/Arabic (28596)",
                    "ISO-8859-7 Latin/Greek (28597)",
                    "ISO-8859-8 Latin/Hebrew (28598)",
                    "ISO 8859-8 Hebrew (ISO-Logical) (38598)",
                    "ISO-8859-9 Latin 5 Turkish (28599)",
                    "ISO-8859-10 Latin 6 Nordic (28600)",
                    "ISO-8859-11 Latin/Thai (28601)",
                    "ISO-8859-13 Latin 7 Baltic Rim (28603)",
                    "ISO-8859-14 Latin 8 Celtic (28604)",
                    "ISO-8859-15 Latin 9 (28605)",
                    "ISO-8859-16 Latin 10 (28606)",
                    "ISO 2022 JIS Japanese with no halfwidth Katakana (50220)",
                    "ISO 2022 JIS Japanese with halfwidth Katakana (50221)",
                    "ISO 2022 Japanese JIS X 0201-1989 (1 byte Kana-SO/SI) (50222)",
                    "ISO 2022 Korean (50225)",
                    "ISO 2022 Simplified Chinese (50227)",
                    "ISO 6937 Non-Spacing Accent (20269)",
                    "EUC Japanese (51932)",
                    "EUC Simplified Chinese (51936)",
                    "EUC Korean (51949)",
                    "ISCII Devanagari (57002)",
                    "ISCII Bengali (57003)",
                    "ISCII Tamil (57004)",
                    "ISCII Telugu (57005)",
                    "ISCII Assamese (57006)",
                    "ISCII Oriya (57007)",
                    "ISCII Kannada (57008)",
                    "ISCII Malayalam (57009)",
                    "ISCII Gujarati (57010)",
                    "ISCII Punjabi (57011)",
                    "Japanese Shift-JIS (932)",
                    "Simplified Chinese GBK (936)",
                    "Korean (949)",
                    "Traditional Chinese Big5 (950)",
                    "US-ASCII (7-bit) (20127)",
                    "Simplified Chinese GB2312 (20936)",
                    "KOI8-R Russian Cyrillic (20866)",
                    "KOI8-U Ukrainian Cyrillic (21866)",
                    "Mazovia (Polish) MS-DOS (620)",
                    "Arabic (ASMO 708) (708)",
                    "Arabic (Transparent ASMO); Arabic (DOS) (720)",
                    "Kamenický (Czech) MS-DOS (895)",
                    "Korean (Johab) (1361)",
                    "MAC Roman (10000)",
                    "Japanese (Mac) (10001)",
                    "MAC Traditional Chinese (Big5) (10002)",
                    "Korean (Mac) (10003)",
                    "Arabic (Mac) (10004)",
                    "Hebrew (Mac) (10005)",
                    "Greek (Mac) (10006)",
                    "Cyrillic (Mac) (10007)",
                    "MAC Simplified Chinese (GB 2312) (10008)",
                    "Romanian (Mac) (10010)",
                    "Ukrainian (Mac) (10017)",
                    "Thai (Mac) (10021)",
                    "MAC Latin 2 (Central European) (10029)",
                    "Icelandic (Mac) (10079)",
                    "Turkish (Mac) (10081)",
                    "Croatian (Mac) (10082)",
                    "CNS Taiwan (Chinese Traditional) (20000)",
                    "TCA Taiwan (20001)",
                    "ETEN Taiwan (Chinese Traditional) (20002)",
                    "IBM5550 Taiwan (20003)",
                    "TeleText Taiwan (20004)",
                    "Wang Taiwan (20005)",
                    "Western European IA5 (IRV International Alphabet 5) (20105)",
                    "IA5 German (7-bit) (20106)",
                    "IA5 Swedish (7-bit) (20107)",
                    "IA5 Norwegian (7-bit) (20108)",
                    "T.61 (20261)",
                    "Japanese (JIS 0208-1990 and 0212-1990) (20932)",
                    "Korean Wansung (20949)",
                    "Extended/Ext Alpha Lowercase (21027)",
                    "Europa 3 (29001)",
                    "Atari ST/TT (47451)",
                    "HZ-GB2312 Simplified Chinese (52936)",
                    "Simplified Chinese GB18030 (54936)"
                ]
            }
        ]
    },
    "Enigma": {
        "module": "Bletchley",
        "description": "Encipher/decipher with the WW2 Enigma machine.<br><br>Enigma was used by the German military, among others, around the WW2 era as a portable cipher machine to protect sensitive military, diplomatic and commercial communications.<br><br>The standard set of German military rotors and reflectors are provided. To configure the plugboard, enter a string of connected pairs of letters, e.g. <code>AB CD EF</code> connects A to B, C to D, and E to F. This is also used to create your own reflectors. To create your own rotor, enter the letters that the rotor maps A to Z to, in order, optionally followed by <code>&lt;</code> then a list of stepping points.<br>This is deliberately fairly permissive with rotor placements etc compared to a real Enigma (on which, for example, a four-rotor Enigma uses only the thin reflectors and the beta or gamma rotor in the 4th slot).<br><br>More detailed descriptions of the Enigma, Typex and Bombe operations <a href='https://github.com/gchq/CyberChef/wiki/Enigma,-the-Bombe,-and-Typex'>can be found here</a>.",
        "infoURL": "https://wikipedia.org/wiki/Enigma_machine",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Model",
                "type": "argSelector",
                "value": [
                    {
                        "name": "3-rotor",
                        "off": [
                            1,
                            2,
                            3
                        ]
                    },
                    {
                        "name": "4-rotor",
                        "on": [
                            1,
                            2,
                            3
                        ]
                    }
                ]
            },
            {
                "name": "Left-most (4th) rotor",
                "type": "editableOption",
                "value": [
                    {
                        "name": "Beta",
                        "value": "LEYJVCNIXWPBQMDRTAKZGFUHOS"
                    },
                    {
                        "name": "Gamma",
                        "value": "FSOKANUERHMBTIYCWLQPZXVGJD"
                    }
                ]
            },
            {
                "name": "Left-most rotor ring setting",
                "type": "option",
                "value": [
                    "A",
                    "B",
                    "C",
                    "D",
                    "E",
                    "F",
                    "G",
                    "H",
                    "I",
                    "J",
                    "K",
                    "L",
                    "M",
                    "N",
                    "O",
                    "P",
                    "Q",
                    "R",
                    "S",
                    "T",
                    "U",
                    "V",
                    "W",
                    "X",
                    "Y",
                    "Z"
                ]
            },
            {
                "name": "Left-most rotor initial value",
                "type": "option",
                "value": [
                    "A",
                    "B",
                    "C",
                    "D",
                    "E",
                    "F",
                    "G",
                    "H",
                    "I",
                    "J",
                    "K",
                    "L",
                    "M",
                    "N",
                    "O",
                    "P",
                    "Q",
                    "R",
                    "S",
                    "T",
                    "U",
                    "V",
                    "W",
                    "X",
                    "Y",
                    "Z"
                ]
            },
            {
                "name": "Left-hand rotor",
                "type": "editableOption",
                "value": [
                    {
                        "name": "I",
                        "value": "EKMFLGDQVZNTOWYHXUSPAIBRCJ<R"
                    },
                    {
                        "name": "II",
                        "value": "AJDKSIRUXBLHWTMCQGZNPYFVOE<F"
                    },
                    {
                        "name": "III",
                        "value": "BDFHJLCPRTXVZNYEIWGAKMUSQO<W"
                    },
                    {
                        "name": "IV",
                        "value": "ESOVPZJAYQUIRHXLNFTGKDCMWB<K"
                    },
                    {
                        "name": "V",
                        "value": "VZBRGITYUPSDNHLXAWMJQOFECK<A"
                    },
                    {
                        "name": "VI",
                        "value": "JPGVOUMFYQBENHZRDKASXLICTW<AN"
                    },
                    {
                        "name": "VII",
                        "value": "NZJHGRCXMYSWBOUFAIVLPEKQDT<AN"
                    },
                    {
                        "name": "VIII",
                        "value": "FKQHTLXOCBJSPDZRAMEWNIUYGV<AN"
                    }
                ]
            },
            {
                "name": "Left-hand rotor ring setting",
                "type": "option",
                "value": [
                    "A",
                    "B",
                    "C",
                    "D",
                    "E",
                    "F",
                    "G",
                    "H",
                    "I",
                    "J",
                    "K",
                    "L",
                    "M",
                    "N",
                    "O",
                    "P",
                    "Q",
                    "R",
                    "S",
                    "T",
                    "U",
                    "V",
                    "W",
                    "X",
                    "Y",
                    "Z"
                ]
            },
            {
                "name": "Left-hand rotor initial value",
                "type": "option",
                "value": [
                    "A",
                    "B",
                    "C",
                    "D",
                    "E",
                    "F",
                    "G",
                    "H",
                    "I",
                    "J",
                    "K",
                    "L",
                    "M",
                    "N",
                    "O",
                    "P",
                    "Q",
                    "R",
                    "S",
                    "T",
                    "U",
                    "V",
                    "W",
                    "X",
                    "Y",
                    "Z"
                ]
            },
            {
                "name": "Middle rotor",
                "type": "editableOption",
                "value": [
                    {
                        "name": "I",
                        "value": "EKMFLGDQVZNTOWYHXUSPAIBRCJ<R"
                    },
                    {
                        "name": "II",
                        "value": "AJDKSIRUXBLHWTMCQGZNPYFVOE<F"
                    },
                    {
                        "name": "III",
                        "value": "BDFHJLCPRTXVZNYEIWGAKMUSQO<W"
                    },
                    {
                        "name": "IV",
                        "value": "ESOVPZJAYQUIRHXLNFTGKDCMWB<K"
                    },
                    {
                        "name": "V",
                        "value": "VZBRGITYUPSDNHLXAWMJQOFECK<A"
                    },
                    {
                        "name": "VI",
                        "value": "JPGVOUMFYQBENHZRDKASXLICTW<AN"
                    },
                    {
                        "name": "VII",
                        "value": "NZJHGRCXMYSWBOUFAIVLPEKQDT<AN"
                    },
                    {
                        "name": "VIII",
                        "value": "FKQHTLXOCBJSPDZRAMEWNIUYGV<AN"
                    }
                ],
                "defaultIndex": 1
            },
            {
                "name": "Middle rotor ring setting",
                "type": "option",
                "value": [
                    "A",
                    "B",
                    "C",
                    "D",
                    "E",
                    "F",
                    "G",
                    "H",
                    "I",
                    "J",
                    "K",
                    "L",
                    "M",
                    "N",
                    "O",
                    "P",
                    "Q",
                    "R",
                    "S",
                    "T",
                    "U",
                    "V",
                    "W",
                    "X",
                    "Y",
                    "Z"
                ]
            },
            {
                "name": "Middle rotor initial value",
                "type": "option",
                "value": [
                    "A",
                    "B",
                    "C",
                    "D",
                    "E",
                    "F",
                    "G",
                    "H",
                    "I",
                    "J",
                    "K",
                    "L",
                    "M",
                    "N",
                    "O",
                    "P",
                    "Q",
                    "R",
                    "S",
                    "T",
                    "U",
                    "V",
                    "W",
                    "X",
                    "Y",
                    "Z"
                ]
            },
            {
                "name": "Right-hand rotor",
                "type": "editableOption",
                "value": [
                    {
                        "name": "I",
                        "value": "EKMFLGDQVZNTOWYHXUSPAIBRCJ<R"
                    },
                    {
                        "name": "II",
                        "value": "AJDKSIRUXBLHWTMCQGZNPYFVOE<F"
                    },
                    {
                        "name": "III",
                        "value": "BDFHJLCPRTXVZNYEIWGAKMUSQO<W"
                    },
                    {
                        "name": "IV",
                        "value": "ESOVPZJAYQUIRHXLNFTGKDCMWB<K"
                    },
                    {
                        "name": "V",
                        "value": "VZBRGITYUPSDNHLXAWMJQOFECK<A"
                    },
                    {
                        "name": "VI",
                        "value": "JPGVOUMFYQBENHZRDKASXLICTW<AN"
                    },
                    {
                        "name": "VII",
                        "value": "NZJHGRCXMYSWBOUFAIVLPEKQDT<AN"
                    },
                    {
                        "name": "VIII",
                        "value": "FKQHTLXOCBJSPDZRAMEWNIUYGV<AN"
                    }
                ],
                "defaultIndex": 2
            },
            {
                "name": "Right-hand rotor ring setting",
                "type": "option",
                "value": [
                    "A",
                    "B",
                    "C",
                    "D",
                    "E",
                    "F",
                    "G",
                    "H",
                    "I",
                    "J",
                    "K",
                    "L",
                    "M",
                    "N",
                    "O",
                    "P",
                    "Q",
                    "R",
                    "S",
                    "T",
                    "U",
                    "V",
                    "W",
                    "X",
                    "Y",
                    "Z"
                ]
            },
            {
                "name": "Right-hand rotor initial value",
                "type": "option",
                "value": [
                    "A",
                    "B",
                    "C",
                    "D",
                    "E",
                    "F",
                    "G",
                    "H",
                    "I",
                    "J",
                    "K",
                    "L",
                    "M",
                    "N",
                    "O",
                    "P",
                    "Q",
                    "R",
                    "S",
                    "T",
                    "U",
                    "V",
                    "W",
                    "X",
                    "Y",
                    "Z"
                ]
            },
            {
                "name": "Reflector",
                "type": "editableOption",
                "value": [
                    {
                        "name": "B",
                        "value": "AY BR CU DH EQ FS GL IP JX KN MO TZ VW"
                    },
                    {
                        "name": "C",
                        "value": "AF BV CP DJ EI GO HY KR LZ MX NW TQ SU"
                    },
                    {
                        "name": "B Thin",
                        "value": "AE BN CK DQ FU GY HW IJ LO MP RX SZ TV"
                    },
                    {
                        "name": "C Thin",
                        "value": "AR BD CO EJ FN GT HK IV LM PW QZ SX UY"
                    }
                ]
            },
            {
                "name": "Plugboard",
                "type": "string",
                "value": ""
            },
            {
                "name": "Strict output",
                "type": "boolean",
                "value": true,
                "hint": "Remove non-alphabet letters and group output"
            }
        ]
    },
    "Entropy": {
        "module": "Charts",
        "description": "Shannon Entropy, in the context of information theory, is a measure of the rate at which information is produced by a source of data. It can be used, in a broad sense, to detect whether data is likely to be structured or unstructured. 8 is the maximum, representing highly unstructured, 'random' data. English language text usually falls somewhere between 3.5 and 5. Properly encrypted or compressed data should have an entropy of over 7.5.",
        "infoURL": "https://wikipedia.org/wiki/Entropy_(information_theory)",
        "inputType": "ArrayBuffer",
        "outputType": "html",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Visualisation",
                "type": "option",
                "value": [
                    "Shannon scale",
                    "Histogram (Bar)",
                    "Histogram (Line)",
                    "Curve",
                    "Image"
                ]
            }
        ]
    },
    "Escape string": {
        "module": "Default",
        "description": "Escapes special characters in a string so that they do not cause conflicts. For example, <code>Don't stop me now</code> becomes <code>Don\\'t stop me now</code>.<br><br>Supports the following escape sequences:<ul><li><code>\\n</code> (Line feed/newline)</li><li><code>\\r</code> (Carriage return)</li><li><code>\\t</code> (Horizontal tab)</li><li><code>\\b</code> (Backspace)</li><li><code>\\f</code> (Form feed)</li><li><code>\\xnn</code> (Hex, where n is 0-f)</li><li><code>\\\\</code> (Backslash)</li><li><code>\\'</code> (Single quote)</li><li><code>\\&quot;</code> (Double quote)</li><li><code>\\unnnn</code> (Unicode character)</li><li><code>\\u{nnnnnn}</code> (Unicode code point)</li></ul>",
        "infoURL": "https://wikipedia.org/wiki/Escape_sequence",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Escape level",
                "type": "option",
                "value": [
                    "Special chars",
                    "Everything",
                    "Minimal"
                ]
            },
            {
                "name": "Escape quote",
                "type": "option",
                "value": [
                    "Single",
                    "Double",
                    "Backtick"
                ]
            },
            {
                "name": "JSON compatible",
                "type": "boolean",
                "value": false
            },
            {
                "name": "ES6 compatible",
                "type": "boolean",
                "value": true
            },
            {
                "name": "Uppercase hex",
                "type": "boolean",
                "value": false
            }
        ]
    },
    "Escape Unicode Characters": {
        "module": "Default",
        "description": "Converts characters to their unicode-escaped notations.<br><br>Supports the prefixes:<ul><li><code>\\u</code></li><li><code>%u</code></li><li><code>U+</code></li></ul>e.g. <code>σου</code> becomes <code>\\u03C3\\u03BF\\u03C5</code>",
        "infoURL": null,
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Prefix",
                "type": "option",
                "value": [
                    "\\u",
                    "%u",
                    "U+"
                ]
            },
            {
                "name": "Encode all chars",
                "type": "boolean",
                "value": false
            },
            {
                "name": "Padding",
                "type": "number",
                "value": 4
            },
            {
                "name": "Uppercase hex",
                "type": "boolean",
                "value": true
            }
        ],
        "checks": [
            {
                "pattern": "\\\\u(?:[\\da-f]{4,6})",
                "flags": "i",
                "args": [
                    "\\u"
                ]
            },
            {
                "pattern": "%u(?:[\\da-f]{4,6})",
                "flags": "i",
                "args": [
                    "%u"
                ]
            },
            {
                "pattern": "U\\+(?:[\\da-f]{4,6})",
                "flags": "i",
                "args": [
                    "U+"
                ]
            }
        ]
    },
    "Expand alphabet range": {
        "module": "Default",
        "description": "Expand an alphabet range string into a list of the characters in that range.<br><br>e.g. <code>a-z</code> becomes <code>abcdefghijklmnopqrstuvwxyz</code>.",
        "infoURL": null,
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Delimiter",
                "type": "binaryString",
                "value": ""
            }
        ]
    },
    "Extract dates": {
        "module": "Regex",
        "description": "Extracts dates in the following formats<ul><li><code>yyyy-mm-dd</code></li><li><code>dd/mm/yyyy</code></li><li><code>mm/dd/yyyy</code></li></ul>Dividers can be any of /, -, . or space",
        "infoURL": null,
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Display total",
                "type": "boolean",
                "value": false
            }
        ]
    },
    "Extract domains": {
        "module": "Regex",
        "description": "Extracts fully qualified domain names.<br>Note that this will not include paths. Use <strong>Extract URLs</strong> to find entire URLs.",
        "infoURL": null,
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Display total",
                "type": "boolean",
                "value": false
            },
            {
                "name": "Sort",
                "type": "boolean",
                "value": false
            },
            {
                "name": "Unique",
                "type": "boolean",
                "value": false
            }
        ]
    },
    "Extract EXIF": {
        "module": "Image",
        "description": "Extracts EXIF data from an image.\n<br><br>\nEXIF data is metadata embedded in images (JPEG, JPG, TIFF) and audio files.\n<br><br>\nEXIF data from photos usually contains information about the image file itself as well as the device used to create it.",
        "infoURL": "https://wikipedia.org/wiki/Exif",
        "inputType": "ArrayBuffer",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": []
    },
    "Extract email addresses": {
        "module": "Regex",
        "description": "Extracts all email addresses from the input.",
        "infoURL": null,
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Display total",
                "type": "boolean",
                "value": false
            },
            {
                "name": "Sort",
                "type": "boolean",
                "value": false
            },
            {
                "name": "Unique",
                "type": "boolean",
                "value": false
            }
        ]
    },
    "Extract file paths": {
        "module": "Regex",
        "description": "Extracts anything that looks like a Windows or UNIX file path.<br><br>Note that if UNIX is selected, there will likely be a lot of false positives.",
        "infoURL": null,
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Windows",
                "type": "boolean",
                "value": true
            },
            {
                "name": "UNIX",
                "type": "boolean",
                "value": true
            },
            {
                "name": "Display total",
                "type": "boolean",
                "value": false
            },
            {
                "name": "Sort",
                "type": "boolean",
                "value": false
            },
            {
                "name": "Unique",
                "type": "boolean",
                "value": false
            }
        ]
    },
    "Extract Files": {
        "module": "Default",
        "description": "Performs file carving to attempt to extract files from the input.<br><br>This operation is currently capable of carving out the following formats:\n            <ul>\n                <li>\n                JPG,JPEG,JPE,THM,MPO</li><li>GIF</li><li>PNG</li><li>WEBP</li><li>BMP</li><li>ICO</li><li>TGA</li><li>FLV</li><li>WAV</li><li>MP3</li><li>PDF</li><li>RTF</li><li>DOCX,XLSX,PPTX</li><li>EPUB</li><li>EXE,DLL,DRV,VXD,SYS,OCX,VBX,COM,FON,SCR</li><li>ELF,BIN,AXF,O,PRX,SO</li><li>DYLIB</li><li>ZIP</li><li>TAR</li><li>GZ</li><li>BZ2</li><li>ZLIB</li><li>XZ</li><li>JAR</li><li>LZOP,LZO</li><li>DEB</li><li>SQLITE</li><li>EVT</li><li>EVTX</li><li>DMP</li><li>PF</li><li>PLIST</li><li>KEYCHAIN</li><li>LNK\n                </li>\n            </ul>Minimum File Size can be used to prune small false positives.",
        "infoURL": "https://forensicswiki.xyz/wiki/index.php?title=File_Carving",
        "inputType": "ArrayBuffer",
        "outputType": "html",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Images",
                "type": "boolean",
                "value": true
            },
            {
                "name": "Video",
                "type": "boolean",
                "value": true
            },
            {
                "name": "Audio",
                "type": "boolean",
                "value": true
            },
            {
                "name": "Documents",
                "type": "boolean",
                "value": true
            },
            {
                "name": "Applications",
                "type": "boolean",
                "value": true
            },
            {
                "name": "Archives",
                "type": "boolean",
                "value": true
            },
            {
                "name": "Miscellaneous",
                "type": "boolean",
                "value": false
            },
            {
                "name": "Ignore failed extractions",
                "type": "boolean",
                "value": true
            },
            {
                "name": "Minimum File Size",
                "type": "number",
                "value": 100
            }
        ]
    },
    "Extract ID3": {
        "module": "Default",
        "description": "This operation extracts ID3 metadata from an MP3 file.<br><br>ID3 is a metadata container most often used in conjunction with the MP3 audio file format. It allows information such as the title, artist, album, track number, and other information about the file to be stored in the file itself.",
        "infoURL": "https://wikipedia.org/wiki/ID3",
        "inputType": "ArrayBuffer",
        "outputType": "html",
        "flowControl": false,
        "manualBake": false,
        "args": []
    },
    "Extract IP addresses": {
        "module": "Regex",
        "description": "Extracts all IPv4 and IPv6 addresses.<br><br>Warning: Given a string <code>710.65.0.456</code>, this will match <code>10.65.0.45</code> so always check the original input!",
        "infoURL": null,
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "IPv4",
                "type": "boolean",
                "value": true
            },
            {
                "name": "IPv6",
                "type": "boolean",
                "value": false
            },
            {
                "name": "Remove local IPv4 addresses",
                "type": "boolean",
                "value": false
            },
            {
                "name": "Display total",
                "type": "boolean",
                "value": false
            },
            {
                "name": "Sort",
                "type": "boolean",
                "value": false
            },
            {
                "name": "Unique",
                "type": "boolean",
                "value": false
            }
        ]
    },
    "Extract LSB": {
        "module": "Image",
        "description": "Extracts the Least Significant Bit data from each pixel in an image. This is a common way to hide data in Steganography.",
        "infoURL": "https://wikipedia.org/wiki/Bit_numbering#Least_significant_bit_in_digital_steganography",
        "inputType": "ArrayBuffer",
        "outputType": "byteArray",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Colour Pattern #1",
                "type": "option",
                "value": [
                    "R",
                    "G",
                    "B",
                    "A"
                ]
            },
            {
                "name": "Colour Pattern #2",
                "type": "option",
                "value": [
                    "",
                    "R",
                    "G",
                    "B",
                    "A"
                ]
            },
            {
                "name": "Colour Pattern #3",
                "type": "option",
                "value": [
                    "",
                    "R",
                    "G",
                    "B",
                    "A"
                ]
            },
            {
                "name": "Colour Pattern #4",
                "type": "option",
                "value": [
                    "",
                    "R",
                    "G",
                    "B",
                    "A"
                ]
            },
            {
                "name": "Pixel Order",
                "type": "option",
                "value": [
                    "Row",
                    "Column"
                ]
            },
            {
                "name": "Bit",
                "type": "number",
                "value": 0
            }
        ]
    },
    "Extract MAC addresses": {
        "module": "Regex",
        "description": "Extracts all Media Access Control (MAC) addresses from the input.",
        "infoURL": null,
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Display total",
                "type": "boolean",
                "value": false
            },
            {
                "name": "Sort",
                "type": "boolean",
                "value": false
            },
            {
                "name": "Unique",
                "type": "boolean",
                "value": false
            }
        ]
    },
    "Extract RGBA": {
        "module": "Image",
        "description": "Extracts each pixel's RGBA value in an image. These are sometimes used in Steganography to hide text or data.",
        "infoURL": "https://wikipedia.org/wiki/RGBA_color_space",
        "inputType": "ArrayBuffer",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Delimiter",
                "type": "editableOption",
                "value": [
                    {
                        "name": "Comma",
                        "value": ","
                    },
                    {
                        "name": "Space",
                        "value": " "
                    },
                    {
                        "name": "CRLF",
                        "value": "\\r\\n"
                    },
                    {
                        "name": "Line Feed",
                        "value": "\n"
                    }
                ]
            },
            {
                "name": "Include Alpha",
                "type": "boolean",
                "value": true
            }
        ]
    },
    "Extract URLs": {
        "module": "Regex",
        "description": "Extracts Uniform Resource Locators (URLs) from the input. The protocol (http, ftp etc.) is required otherwise there will be far too many false positives.",
        "infoURL": null,
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Display total",
                "type": "boolean",
                "value": false
            },
            {
                "name": "Sort",
                "type": "boolean",
                "value": false
            },
            {
                "name": "Unique",
                "type": "boolean",
                "value": false
            }
        ]
    },
    "Filter": {
        "module": "Regex",
        "description": "Splits up the input using the specified delimiter and then filters each branch based on a regular expression.",
        "infoURL": null,
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Delimiter",
                "type": "option",
                "value": [
                    "Line feed",
                    "CRLF",
                    "Space",
                    "Comma",
                    "Semi-colon",
                    "Colon",
                    "Nothing (separate chars)"
                ]
            },
            {
                "name": "Regex",
                "type": "string",
                "value": ""
            },
            {
                "name": "Invert condition",
                "type": "boolean",
                "value": false
            }
        ]
    },
    "Find / Replace": {
        "module": "Regex",
        "description": "Replaces all occurrences of the first string with the second.<br><br>Includes support for regular expressions (regex), simple strings and extended strings (which support \\n, \\r, \\t, \\b, \\f and escaped hex bytes using \\x notation, e.g. \\x00 for a null byte).",
        "infoURL": "https://wikipedia.org/wiki/Regular_expression",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Find",
                "type": "toggleString",
                "value": "",
                "toggleValues": [
                    "Regex",
                    "Extended (\\n, \\t, \\x...)",
                    "Simple string"
                ]
            },
            {
                "name": "Replace",
                "type": "binaryString",
                "value": ""
            },
            {
                "name": "Global match",
                "type": "boolean",
                "value": true
            },
            {
                "name": "Case insensitive",
                "type": "boolean",
                "value": false
            },
            {
                "name": "Multiline matching",
                "type": "boolean",
                "value": true
            },
            {
                "name": "Dot matches all",
                "type": "boolean",
                "value": false
            }
        ]
    },
    "Fletcher-16 Checksum": {
        "module": "Crypto",
        "description": "The Fletcher checksum is an algorithm for computing a position-dependent checksum devised by John Gould Fletcher at Lawrence Livermore Labs in the late 1970s.<br><br>The objective of the Fletcher checksum was to provide error-detection properties approaching those of a cyclic redundancy check but with the lower computational effort associated with summation techniques.",
        "infoURL": "https://wikipedia.org/wiki/Fletcher%27s_checksum#Fletcher-16",
        "inputType": "ArrayBuffer",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": []
    },
    "Fletcher-32 Checksum": {
        "module": "Crypto",
        "description": "The Fletcher checksum is an algorithm for computing a position-dependent checksum devised by John Gould Fletcher at Lawrence Livermore Labs in the late 1970s.<br><br>The objective of the Fletcher checksum was to provide error-detection properties approaching those of a cyclic redundancy check but with the lower computational effort associated with summation techniques.",
        "infoURL": "https://wikipedia.org/wiki/Fletcher%27s_checksum#Fletcher-32",
        "inputType": "ArrayBuffer",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": []
    },
    "Fletcher-64 Checksum": {
        "module": "Crypto",
        "description": "The Fletcher checksum is an algorithm for computing a position-dependent checksum devised by John Gould Fletcher at Lawrence Livermore Labs in the late 1970s.<br><br>The objective of the Fletcher checksum was to provide error-detection properties approaching those of a cyclic redundancy check but with the lower computational effort associated with summation techniques.",
        "infoURL": "https://wikipedia.org/wiki/Fletcher%27s_checksum#Fletcher-64",
        "inputType": "ArrayBuffer",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": []
    },
    "Fletcher-8 Checksum": {
        "module": "Crypto",
        "description": "The Fletcher checksum is an algorithm for computing a position-dependent checksum devised by John Gould Fletcher at Lawrence Livermore Labs in the late 1970s.<br><br>The objective of the Fletcher checksum was to provide error-detection properties approaching those of a cyclic redundancy check but with the lower computational effort associated with summation techniques.",
        "infoURL": "https://wikipedia.org/wiki/Fletcher%27s_checksum",
        "inputType": "ArrayBuffer",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": []
    },
    "Flip Image": {
        "module": "Image",
        "description": "Flips an image along its X or Y axis.",
        "infoURL": "",
        "inputType": "ArrayBuffer",
        "outputType": "html",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Axis",
                "type": "option",
                "value": [
                    "Horizontal",
                    "Vertical"
                ]
            }
        ]
    },
    "Fork": {
        "module": "Default",
        "description": "Split the input data up based on the specified delimiter and run all subsequent operations on each branch separately.<br><br>For example, to decode multiple Base64 strings, enter them all on separate lines then add the 'Fork' and 'From Base64' operations to the recipe. Each string will be decoded separately.",
        "infoURL": null,
        "inputType": "string",
        "outputType": "string",
        "flowControl": true,
        "manualBake": false,
        "args": [
            {
                "name": "Split delimiter",
                "type": "binaryShortString",
                "value": "\\n"
            },
            {
                "name": "Merge delimiter",
                "type": "binaryShortString",
                "value": "\\n"
            },
            {
                "name": "Ignore errors",
                "type": "boolean",
                "value": false
            }
        ]
    },
    "Format MAC addresses": {
        "module": "Default",
        "description": "Displays given MAC addresses in multiple different formats.<br><br>Expects addresses in a list separated by newlines, spaces or commas.<br><br>WARNING: There are no validity checks.",
        "infoURL": "https://wikipedia.org/wiki/MAC_address#Notational_conventions",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Output case",
                "type": "option",
                "value": [
                    "Both",
                    "Upper only",
                    "Lower only"
                ]
            },
            {
                "name": "No delimiter",
                "type": "boolean",
                "value": true
            },
            {
                "name": "Dash delimiter",
                "type": "boolean",
                "value": true
            },
            {
                "name": "Colon delimiter",
                "type": "boolean",
                "value": true
            },
            {
                "name": "Cisco style",
                "type": "boolean",
                "value": false
            },
            {
                "name": "IPv6 interface ID",
                "type": "boolean",
                "value": false
            }
        ]
    },
    "Frequency distribution": {
        "module": "Default",
        "description": "Displays the distribution of bytes in the data as a graph.",
        "infoURL": "https://wikipedia.org/wiki/Frequency_distribution",
        "inputType": "ArrayBuffer",
        "outputType": "html",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Show 0%s",
                "type": "boolean",
                "value": true
            },
            {
                "name": "Show ASCII",
                "type": "boolean",
                "value": true
            }
        ]
    },
    "From BCD": {
        "module": "Default",
        "description": "Binary-Coded Decimal (BCD) is a class of binary encodings of decimal numbers where each decimal digit is represented by a fixed number of bits, usually four or eight. Special bit patterns are sometimes used for a sign.",
        "infoURL": "https://wikipedia.org/wiki/Binary-coded_decimal",
        "inputType": "string",
        "outputType": "BigNumber",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Scheme",
                "type": "option",
                "value": [
                    "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"
                ]
            },
            {
                "name": "Packed",
                "type": "boolean",
                "value": true
            },
            {
                "name": "Signed",
                "type": "boolean",
                "value": false
            },
            {
                "name": "Input format",
                "type": "option",
                "value": [
                    "Nibbles",
                    "Bytes",
                    "Raw"
                ]
            }
        ],
        "checks": [
            {
                "pattern": "^(?:\\d{4} ){3,}\\d{4}$",
                "flags": "",
                "args": [
                    "8 4 2 1",
                    true,
                    false,
                    "Nibbles"
                ]
            }
        ]
    },
    "From Base": {
        "module": "Default",
        "description": "Converts a number to decimal from a given numerical base.",
        "infoURL": "https://wikipedia.org/wiki/Radix",
        "inputType": "string",
        "outputType": "BigNumber",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Radix",
                "type": "number",
                "value": 36
            }
        ]
    },
    "From Base32": {
        "module": "Default",
        "description": "Base32 is a notation for encoding arbitrary byte data using a restricted set of symbols that can be conveniently used by humans and processed by computers. It uses a smaller set of characters than Base64, usually the uppercase alphabet and the numbers 2 to 7.",
        "infoURL": "https://wikipedia.org/wiki/Base32",
        "inputType": "string",
        "outputType": "byteArray",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Alphabet",
                "type": "binaryString",
                "value": "A-Z2-7="
            },
            {
                "name": "Remove non-alphabet chars",
                "type": "boolean",
                "value": true
            }
        ],
        "checks": [
            {
                "pattern": "^(?:[A-Z2-7]{8})+(?:[A-Z2-7]{2}={6}|[A-Z2-7]{4}={4}|[A-Z2-7]{5}={3}|[A-Z2-7]{7}={1})?$",
                "flags": "",
                "args": [
                    "A-Z2-7=",
                    false
                ]
            }
        ]
    },
    "From Base45": {
        "module": "Default",
        "description": "Base45 is a notation for encoding arbitrary byte data using a restricted set of symbols that can be conveniently used by humans and processed by computers. The high number base results in shorter strings than with the decimal or hexadecimal system. Base45 is optimized for usage with QR codes.",
        "infoURL": "https://wikipedia.org/wiki/List_of_numeral_systems",
        "inputType": "string",
        "outputType": "byteArray",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Alphabet",
                "type": "string",
                "value": "0-9A-Z $%*+\\-./:"
            },
            {
                "name": "Remove non-alphabet chars",
                "type": "boolean",
                "value": true
            }
        ]
    },
    "From Base58": {
        "module": "Default",
        "description": "Base58 (similar to Base64) is a notation for encoding arbitrary byte data. It differs from Base64 by removing easily misread characters (i.e. l, I, 0 and O) to improve human readability.<br><br>This operation decodes data from an ASCII string (with an alphabet of your choosing, presets included) back into its raw form.<br><br>e.g. <code>StV1DL6CwTryKyV</code> becomes <code>hello world</code><br><br>Base58 is commonly used in cryptocurrencies (Bitcoin, Ripple, etc).",
        "infoURL": "https://wikipedia.org/wiki/Base58",
        "inputType": "string",
        "outputType": "byteArray",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Alphabet",
                "type": "editableOption",
                "value": [
                    {
                        "name": "Bitcoin",
                        "value": "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"
                    },
                    {
                        "name": "Ripple",
                        "value": "rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz"
                    }
                ]
            },
            {
                "name": "Remove non-alphabet chars",
                "type": "boolean",
                "value": true
            }
        ],
        "checks": [
            {
                "pattern": "^[1-9A-HJ-NP-Za-km-z]{20,}$",
                "flags": "",
                "args": [
                    "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz",
                    false
                ]
            },
            {
                "pattern": "^[1-9A-HJ-NP-Za-km-z]{20,}$",
                "flags": "",
                "args": [
                    "rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz",
                    false
                ]
            }
        ]
    },
    "From Base62": {
        "module": "Default",
        "description": "Base62 is a notation for encoding arbitrary byte data using a restricted set of symbols that can be conveniently used by humans and processed by computers. The high number base results in shorter strings than with the decimal or hexadecimal system.",
        "infoURL": "https://wikipedia.org/wiki/List_of_numeral_systems",
        "inputType": "string",
        "outputType": "byteArray",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Alphabet",
                "type": "string",
                "value": "0-9A-Za-z"
            }
        ]
    },
    "From Base64": {
        "module": "Default",
        "description": "Base64 is a notation for encoding arbitrary byte data using a restricted set of symbols that can be conveniently used by humans and processed by computers.<br><br>This operation decodes data from an ASCII Base64 string back into its raw format.<br><br>e.g. <code>aGVsbG8=</code> becomes <code>hello</code>",
        "infoURL": "https://wikipedia.org/wiki/Base64",
        "inputType": "string",
        "outputType": "byteArray",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Alphabet",
                "type": "editableOption",
                "value": [
                    {
                        "name": "Standard (RFC 4648): A-Za-z0-9+/=",
                        "value": "A-Za-z0-9+/="
                    },
                    {
                        "name": "URL safe (RFC 4648 §5): A-Za-z0-9-_",
                        "value": "A-Za-z0-9-_"
                    },
                    {
                        "name": "Filename safe: A-Za-z0-9+-=",
                        "value": "A-Za-z0-9+\\-="
                    },
                    {
                        "name": "itoa64: ./0-9A-Za-z=",
                        "value": "./0-9A-Za-z="
                    },
                    {
                        "name": "XML: A-Za-z0-9_.",
                        "value": "A-Za-z0-9_."
                    },
                    {
                        "name": "y64: A-Za-z0-9._-",
                        "value": "A-Za-z0-9._-"
                    },
                    {
                        "name": "z64: 0-9a-zA-Z+/=",
                        "value": "0-9a-zA-Z+/="
                    },
                    {
                        "name": "Radix-64 (RFC 4880): 0-9A-Za-z+/=",
                        "value": "0-9A-Za-z+/="
                    },
                    {
                        "name": "Uuencoding: [space]-_",
                        "value": " -_"
                    },
                    {
                        "name": "Xxencoding: +-0-9A-Za-z",
                        "value": "+\\-0-9A-Za-z"
                    },
                    {
                        "name": "BinHex: !-,-0-689@A-NP-VX-Z[`a-fh-mp-r",
                        "value": "!-,-0-689@A-NP-VX-Z[`a-fh-mp-r"
                    },
                    {
                        "name": "ROT13: N-ZA-Mn-za-m0-9+/=",
                        "value": "N-ZA-Mn-za-m0-9+/="
                    },
                    {
                        "name": "UNIX crypt: ./0-9A-Za-z",
                        "value": "./0-9A-Za-z"
                    },
                    {
                        "name": "Atom128: /128GhIoPQROSTeUbADfgHijKLM+n0pFWXY456xyzB7=39VaqrstJklmNuZvwcdEC",
                        "value": "/128GhIoPQROSTeUbADfgHijKLM+n0pFWXY456xyzB7=39VaqrstJklmNuZvwcdEC"
                    },
                    {
                        "name": "Megan35: 3GHIJKLMNOPQRSTUb=cdefghijklmnopWXYZ/12+406789VaqrstuvwxyzABCDEF5",
                        "value": "3GHIJKLMNOPQRSTUb=cdefghijklmnopWXYZ/12+406789VaqrstuvwxyzABCDEF5"
                    },
                    {
                        "name": "Zong22: ZKj9n+yf0wDVX1s/5YbdxSo=ILaUpPBCHg8uvNO4klm6iJGhQ7eFrWczAMEq3RTt2",
                        "value": "ZKj9n+yf0wDVX1s/5YbdxSo=ILaUpPBCHg8uvNO4klm6iJGhQ7eFrWczAMEq3RTt2"
                    },
                    {
                        "name": "Hazz15: HNO4klm6ij9n+J2hyf0gzA8uvwDEq3X1Q7ZKeFrWcVTts/MRGYbdxSo=ILaUpPBC5",
                        "value": "HNO4klm6ij9n+J2hyf0gzA8uvwDEq3X1Q7ZKeFrWcVTts/MRGYbdxSo=ILaUpPBC5"
                    }
                ]
            },
            {
                "name": "Remove non-alphabet chars",
                "type": "boolean",
                "value": true
            },
            {
                "name": "Strict mode",
                "type": "boolean",
                "value": false
            }
        ],
        "checks": [
            {
                "pattern": "^\\s*(?:[A-Z\\d+/]{4})+(?:[A-Z\\d+/]{2}==|[A-Z\\d+/]{3}=)?\\s*$",
                "flags": "i",
                "args": [
                    "A-Za-z0-9+/=",
                    true,
                    false
                ]
            },
            {
                "pattern": "^\\s*[A-Z\\d\\-_]{20,}\\s*$",
                "flags": "i",
                "args": [
                    "A-Za-z0-9-_",
                    true,
                    false
                ]
            },
            {
                "pattern": "^\\s*(?:[A-Z\\d+\\-]{4}){5,}(?:[A-Z\\d+\\-]{2}==|[A-Z\\d+\\-]{3}=)?\\s*$",
                "flags": "i",
                "args": [
                    "A-Za-z0-9+\\-=",
                    true,
                    false
                ]
            },
            {
                "pattern": "^\\s*(?:[A-Z\\d./]{4}){5,}(?:[A-Z\\d./]{2}==|[A-Z\\d./]{3}=)?\\s*$",
                "flags": "i",
                "args": [
                    "./0-9A-Za-z=",
                    true,
                    false
                ]
            },
            {
                "pattern": "^\\s*[A-Z\\d_.]{20,}\\s*$",
                "flags": "i",
                "args": [
                    "A-Za-z0-9_.",
                    true,
                    false
                ]
            },
            {
                "pattern": "^\\s*(?:[A-Z\\d._]{4}){5,}(?:[A-Z\\d._]{2}--|[A-Z\\d._]{3}-)?\\s*$",
                "flags": "i",
                "args": [
                    "A-Za-z0-9._-",
                    true,
                    false
                ]
            },
            {
                "pattern": "^\\s*(?:[A-Z\\d+/]{4}){5,}(?:[A-Z\\d+/]{2}==|[A-Z\\d+/]{3}=)?\\s*$",
                "flags": "i",
                "args": [
                    "0-9a-zA-Z+/=",
                    true,
                    false
                ]
            },
            {
                "pattern": "^\\s*(?:[A-Z\\d+/]{4}){5,}(?:[A-Z\\d+/]{2}==|[A-Z\\d+/]{3}=)?\\s*$",
                "flags": "i",
                "args": [
                    "0-9A-Za-z+/=",
                    true,
                    false
                ]
            },
            {
                "pattern": "^[ !\"#$%&'()*+,\\-./\\d:;<=>?@A-Z[\\\\\\]^_]{20,}$",
                "flags": "",
                "args": [
                    " -_",
                    false,
                    false
                ]
            },
            {
                "pattern": "^\\s*[A-Z\\d+\\-]{20,}\\s*$",
                "flags": "i",
                "args": [
                    "+\\-0-9A-Za-z",
                    true,
                    false
                ]
            },
            {
                "pattern": "^\\s*[!\"#$%&'()*+,\\-0-689@A-NP-VX-Z[`a-fh-mp-r]{20,}\\s*$",
                "flags": "",
                "args": [
                    "!-,-0-689@A-NP-VX-Z[`a-fh-mp-r",
                    true,
                    false
                ]
            },
            {
                "pattern": "^\\s*(?:[N-ZA-M\\d+/]{4}){5,}(?:[N-ZA-M\\d+/]{2}==|[N-ZA-M\\d+/]{3}=)?\\s*$",
                "flags": "i",
                "args": [
                    "N-ZA-Mn-za-m0-9+/=",
                    true,
                    false
                ]
            },
            {
                "pattern": "^\\s*[A-Z\\d./]{20,}\\s*$",
                "flags": "i",
                "args": [
                    "./0-9A-Za-z",
                    true,
                    false
                ]
            },
            {
                "pattern": "^\\s*(?:[A-Z=\\d\\+/]{4}){5,}(?:[A-Z=\\d\\+/]{2}CC|[A-Z=\\d\\+/]{3}C)?\\s*$",
                "flags": "i",
                "args": [
                    "/128GhIoPQROSTeUbADfgHijKLM+n0pFWXY456xyzB7=39VaqrstJklmNuZvwcdEC",
                    true,
                    false
                ]
            },
            {
                "pattern": "^\\s*(?:[A-Z=\\d\\+/]{4}){5,}(?:[A-Z=\\d\\+/]{2}55|[A-Z=\\d\\+/]{3}5)?\\s*$",
                "flags": "i",
                "args": [
                    "3GHIJKLMNOPQRSTUb=cdefghijklmnopWXYZ/12+406789VaqrstuvwxyzABCDEF5",
                    true,
                    false
                ]
            },
            {
                "pattern": "^\\s*(?:[A-Z=\\d\\+/]{4}){5,}(?:[A-Z=\\d\\+/]{2}22|[A-Z=\\d\\+/]{3}2)?\\s*$",
                "flags": "i",
                "args": [
                    "ZKj9n+yf0wDVX1s/5YbdxSo=ILaUpPBCHg8uvNO4klm6iJGhQ7eFrWczAMEq3RTt2",
                    true,
                    false
                ]
            },
            {
                "pattern": "^\\s*(?:[A-Z=\\d\\+/]{4}){5,}(?:[A-Z=\\d\\+/]{2}55|[A-Z=\\d\\+/]{3}5)?\\s*$",
                "flags": "i",
                "args": [
                    "HNO4klm6ij9n+J2hyf0gzA8uvwDEq3X1Q7ZKeFrWcVTts/MRGYbdxSo=ILaUpPBC5",
                    true,
                    false
                ]
            }
        ]
    },
    "From Base85": {
        "module": "Default",
        "description": "Base85 (also called Ascii85) is a notation for encoding arbitrary byte data. It is usually more efficient that Base64.<br><br>This operation decodes data from an ASCII string (with an alphabet of your choosing, presets included).<br><br>e.g. <code>BOu!rD]j7BEbo7</code> becomes <code>hello world</code><br><br>Base85 is commonly used in Adobe's PostScript and PDF file formats.",
        "infoURL": "https://wikipedia.org/wiki/Ascii85",
        "inputType": "string",
        "outputType": "byteArray",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Alphabet",
                "type": "editableOption",
                "value": [
                    {
                        "name": "Standard",
                        "value": "!-u"
                    },
                    {
                        "name": "Z85 (ZeroMQ)",
                        "value": "0-9a-zA-Z.\\-:+=^!/*?&<>()[]{}@%$#"
                    },
                    {
                        "name": "IPv6",
                        "value": "0-9A-Za-z!#$%&()*+\\-;<=>?@^_`{|}~"
                    }
                ]
            },
            {
                "name": "Remove non-alphabet chars",
                "type": "boolean",
                "value": true
            },
            {
                "name": "All-zero group char",
                "type": "binaryShortString",
                "value": "z",
                "maxLength": 1
            }
        ],
        "checks": [
            {
                "pattern": "^\\s*(?:<~)?[\\s!-uz]*[!-uz]{15}[\\s!-uz]*(?:~>)?\\s*$",
                "args": [
                    "!-u"
                ]
            },
            {
                "pattern": "^[\\s0-9a-zA-Z.\\-:+=^!/*?&<>()[\\]{}@%$#]*[0-9a-zA-Z.\\-:+=^!/*?&<>()[\\]{}@%$#]{15}[\\s0-9a-zA-Z.\\-:+=^!/*?&<>()[\\]{}@%$#]*$",
                "args": [
                    "0-9a-zA-Z.\\-:+=^!/*?&<>()[]{}@%$#"
                ]
            },
            {
                "pattern": "^[\\s0-9A-Za-z!#$%&()*+\\-;<=>?@^_`{|}~]*[0-9A-Za-z!#$%&()*+\\-;<=>?@^_`{|}~]{15}[\\s0-9A-Za-z!#$%&()*+\\-;<=>?@^_`{|}~]*$",
                "args": [
                    "0-9A-Za-z!#$%&()*+\\-;<=>?@^_`{|}~"
                ]
            }
        ]
    },
    "From Binary": {
        "module": "Default",
        "description": "Converts a binary string back into its raw form.<br><br>e.g. <code>01001000 01101001</code> becomes <code>Hi</code>",
        "infoURL": "https://wikipedia.org/wiki/Binary_code",
        "inputType": "string",
        "outputType": "byteArray",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Delimiter",
                "type": "option",
                "value": [
                    "Space",
                    "Comma",
                    "Semi-colon",
                    "Colon",
                    "Line feed",
                    "CRLF",
                    "None"
                ]
            },
            {
                "name": "Byte Length",
                "type": "number",
                "value": 8,
                "min": 1
            }
        ],
        "checks": [
            {
                "pattern": "^(?:[01]{8})+$",
                "flags": "",
                "args": [
                    "None"
                ]
            },
            {
                "pattern": "^(?:[01]{8})(?: [01]{8})*$",
                "flags": "",
                "args": [
                    "Space"
                ]
            },
            {
                "pattern": "^(?:[01]{8})(?:,[01]{8})*$",
                "flags": "",
                "args": [
                    "Comma"
                ]
            },
            {
                "pattern": "^(?:[01]{8})(?:;[01]{8})*$",
                "flags": "",
                "args": [
                    "Semi-colon"
                ]
            },
            {
                "pattern": "^(?:[01]{8})(?::[01]{8})*$",
                "flags": "",
                "args": [
                    "Colon"
                ]
            },
            {
                "pattern": "^(?:[01]{8})(?:\\n[01]{8})*$",
                "flags": "",
                "args": [
                    "Line feed"
                ]
            },
            {
                "pattern": "^(?:[01]{8})(?:\\r\\n[01]{8})*$",
                "flags": "",
                "args": [
                    "CRLF"
                ]
            }
        ]
    },
    "From Braille": {
        "module": "Default",
        "description": "Converts six-dot braille symbols to text.",
        "infoURL": "https://wikipedia.org/wiki/Braille",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": []
    },
    "From Case Insensitive Regex": {
        "module": "Default",
        "description": "Converts a case-insensitive regex string to a case sensitive regex string (no guarantee on it being the proper original casing) in case the i flag wasn't available at the time but now is, or you need it to be case-sensitive again.<br><br>e.g. <code>[mM][oO][zZ][iI][lL][lL][aA]/[0-9].[0-9] .*</code> becomes <code>Mozilla/[0-9].[0-9] .*</code>",
        "infoURL": "https://wikipedia.org/wiki/Regular_expression",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": []
    },
    "From Charcode": {
        "module": "Default",
        "description": "Converts unicode character codes back into text.<br><br>e.g. <code>0393 03b5 03b9 03ac 20 03c3 03bf 03c5</code> becomes <code>Γειά σου</code>",
        "infoURL": "https://wikipedia.org/wiki/Plane_(Unicode)",
        "inputType": "string",
        "outputType": "byteArray",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Delimiter",
                "type": "option",
                "value": [
                    "Space",
                    "Comma",
                    "Semi-colon",
                    "Colon",
                    "Line feed",
                    "CRLF"
                ]
            },
            {
                "name": "Base",
                "type": "number",
                "value": 16
            }
        ]
    },
    "From Decimal": {
        "module": "Default",
        "description": "Converts the data from an ordinal integer array back into its raw form.<br><br>e.g. <code>72 101 108 108 111</code> becomes <code>Hello</code>",
        "infoURL": null,
        "inputType": "string",
        "outputType": "byteArray",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Delimiter",
                "type": "option",
                "value": [
                    "Space",
                    "Comma",
                    "Semi-colon",
                    "Colon",
                    "Line feed",
                    "CRLF"
                ]
            },
            {
                "name": "Support signed values",
                "type": "boolean",
                "value": false
            }
        ],
        "checks": [
            {
                "pattern": "^(?:\\d{1,2}|1\\d{2}|2[0-4]\\d|25[0-5])(?: (?:\\d{1,2}|1\\d{2}|2[0-4]\\d|25[0-5]))*$",
                "flags": "",
                "args": [
                    "Space",
                    false
                ]
            },
            {
                "pattern": "^(?:\\d{1,2}|1\\d{2}|2[0-4]\\d|25[0-5])(?:,(?:\\d{1,2}|1\\d{2}|2[0-4]\\d|25[0-5]))*$",
                "flags": "",
                "args": [
                    "Comma",
                    false
                ]
            },
            {
                "pattern": "^(?:\\d{1,2}|1\\d{2}|2[0-4]\\d|25[0-5])(?:;(?:\\d{1,2}|1\\d{2}|2[0-4]\\d|25[0-5]))*$",
                "flags": "",
                "args": [
                    "Semi-colon",
                    false
                ]
            },
            {
                "pattern": "^(?:\\d{1,2}|1\\d{2}|2[0-4]\\d|25[0-5])(?::(?:\\d{1,2}|1\\d{2}|2[0-4]\\d|25[0-5]))*$",
                "flags": "",
                "args": [
                    "Colon",
                    false
                ]
            },
            {
                "pattern": "^(?:\\d{1,2}|1\\d{2}|2[0-4]\\d|25[0-5])(?:\\n(?:\\d{1,2}|1\\d{2}|2[0-4]\\d|25[0-5]))*$",
                "flags": "",
                "args": [
                    "Line feed",
                    false
                ]
            },
            {
                "pattern": "^(?:\\d{1,2}|1\\d{2}|2[0-4]\\d|25[0-5])(?:\\r\\n(?:\\d{1,2}|1\\d{2}|2[0-4]\\d|25[0-5]))*$",
                "flags": "",
                "args": [
                    "CRLF",
                    false
                ]
            }
        ]
    },
    "From HTML Entity": {
        "module": "Encodings",
        "description": "Converts HTML entities back to characters<br><br>e.g. <code>&amp;<span>amp;</span></code> becomes <code>&amp;</code>",
        "infoURL": "https://wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [],
        "checks": [
            {
                "pattern": "&(?:#\\d{2,3}|#x[\\da-f]{2}|[a-z]{2,6});",
                "flags": "i",
                "args": []
            }
        ]
    },
    "From Hex": {
        "module": "Default",
        "description": "Converts a hexadecimal byte string back into its raw value.<br><br>e.g. <code>ce 93 ce b5 ce b9 ce ac 20 cf 83 ce bf cf 85 0a</code> becomes the UTF-8 encoded string <code>Γειά σου</code>",
        "infoURL": "https://wikipedia.org/wiki/Hexadecimal",
        "inputType": "string",
        "outputType": "byteArray",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Delimiter",
                "type": "option",
                "value": [
                    "Auto",
                    "Space",
                    "Percent",
                    "Comma",
                    "Semi-colon",
                    "Colon",
                    "Line feed",
                    "CRLF",
                    "0x",
                    "0x with comma",
                    "\\x",
                    "None"
                ]
            }
        ],
        "checks": [
            {
                "pattern": "^(?:[\\dA-F]{2})+$",
                "flags": "i",
                "args": [
                    "None"
                ]
            },
            {
                "pattern": "^[\\dA-F]{2}(?: [\\dA-F]{2})*$",
                "flags": "i",
                "args": [
                    "Space"
                ]
            },
            {
                "pattern": "^[\\dA-F]{2}(?:,[\\dA-F]{2})*$",
                "flags": "i",
                "args": [
                    "Comma"
                ]
            },
            {
                "pattern": "^[\\dA-F]{2}(?:;[\\dA-F]{2})*$",
                "flags": "i",
                "args": [
                    "Semi-colon"
                ]
            },
            {
                "pattern": "^[\\dA-F]{2}(?::[\\dA-F]{2})*$",
                "flags": "i",
                "args": [
                    "Colon"
                ]
            },
            {
                "pattern": "^[\\dA-F]{2}(?:\\n[\\dA-F]{2})*$",
                "flags": "i",
                "args": [
                    "Line feed"
                ]
            },
            {
                "pattern": "^[\\dA-F]{2}(?:\\r\\n[\\dA-F]{2})*$",
                "flags": "i",
                "args": [
                    "CRLF"
                ]
            },
            {
                "pattern": "^(?:0x[\\dA-F]{2})+$",
                "flags": "i",
                "args": [
                    "0x"
                ]
            },
            {
                "pattern": "^0x[\\dA-F]{2}(?:,0x[\\dA-F]{2})*$",
                "flags": "i",
                "args": [
                    "0x with comma"
                ]
            },
            {
                "pattern": "^(?:\\\\x[\\dA-F]{2})+$",
                "flags": "i",
                "args": [
                    "\\x"
                ]
            }
        ]
    },
    "From Hex Content": {
        "module": "Default",
        "description": "Translates hexadecimal bytes in text back to raw bytes. This format is used by SNORT for representing hex within ASCII text.<br><br>e.g. <code>foo|3d|bar</code> becomes <code>foo=bar</code>.",
        "infoURL": "http://manual-snort-org.s3-website-us-east-1.amazonaws.com/node32.html#SECTION00451000000000000000",
        "inputType": "string",
        "outputType": "byteArray",
        "flowControl": false,
        "manualBake": false,
        "args": [],
        "checks": [
            {
                "pattern": "\\|([\\da-f]{2} ?)+\\|",
                "flags": "i",
                "args": []
            }
        ]
    },
    "From Hexdump": {
        "module": "Default",
        "description": "Attempts to convert a hexdump back into raw data. This operation supports many different hexdump variations, but probably not all. Make sure you verify that the data it gives you is correct before continuing analysis.",
        "infoURL": "https://wikipedia.org/wiki/Hex_dump",
        "inputType": "string",
        "outputType": "byteArray",
        "flowControl": false,
        "manualBake": false,
        "args": [],
        "checks": [
            {
                "pattern": "^(?:(?:[\\dA-F]{4,16}h?:?)?[ \\t]*((?:[\\dA-F]{2} ){1,8}(?:[ \\t]|[\\dA-F]{2}-)(?:[\\dA-F]{2} ){1,8}|(?:[\\dA-F]{4} )*[\\dA-F]{4}|(?:[\\dA-F]{2} )*[\\dA-F]{2})[^\\n]*\\n?){2,}$",
                "flags": "i",
                "args": []
            }
        ]
    },
    "From MessagePack": {
        "module": "Code",
        "description": "Converts MessagePack encoded data to JSON. MessagePack is a computer data interchange format. It is a binary form for representing simple data structures like arrays and associative arrays.",
        "infoURL": "https://wikipedia.org/wiki/MessagePack",
        "inputType": "ArrayBuffer",
        "outputType": "JSON",
        "flowControl": false,
        "manualBake": false,
        "args": []
    },
    "From Morse Code": {
        "module": "Default",
        "description": "Translates Morse Code into (upper case) alphanumeric characters.",
        "infoURL": "https://wikipedia.org/wiki/Morse_code",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Letter delimiter",
                "type": "option",
                "value": [
                    "Space",
                    "Line feed",
                    "CRLF",
                    "Forward slash",
                    "Backslash",
                    "Comma",
                    "Semi-colon",
                    "Colon"
                ]
            },
            {
                "name": "Word delimiter",
                "type": "option",
                "value": [
                    "Line feed",
                    "CRLF",
                    "Forward slash",
                    "Backslash",
                    "Comma",
                    "Semi-colon",
                    "Colon"
                ]
            }
        ],
        "checks": [
            {
                "pattern": "(?:^[-. \\n]{5,}$|^[_. \\n]{5,}$|^(?:dash|dot| |\\n){5,}$)",
                "flags": "i",
                "args": [
                    "Space",
                    "Line feed"
                ]
            }
        ]
    },
    "From Octal": {
        "module": "Default",
        "description": "Converts an octal byte string back into its raw value.<br><br>e.g. <code>316 223 316 265 316 271 316 254 40 317 203 316 277 317 205</code> becomes the UTF-8 encoded string <code>Γειά σου</code>",
        "infoURL": "https://wikipedia.org/wiki/Octal",
        "inputType": "string",
        "outputType": "byteArray",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Delimiter",
                "type": "option",
                "value": [
                    "Space",
                    "Comma",
                    "Semi-colon",
                    "Colon",
                    "Line feed",
                    "CRLF"
                ]
            }
        ],
        "checks": [
            {
                "pattern": "^(?:[0-7]{1,2}|[123][0-7]{2})(?: (?:[0-7]{1,2}|[123][0-7]{2}))*$",
                "flags": "",
                "args": [
                    "Space"
                ]
            },
            {
                "pattern": "^(?:[0-7]{1,2}|[123][0-7]{2})(?:,(?:[0-7]{1,2}|[123][0-7]{2}))*$",
                "flags": "",
                "args": [
                    "Comma"
                ]
            },
            {
                "pattern": "^(?:[0-7]{1,2}|[123][0-7]{2})(?:;(?:[0-7]{1,2}|[123][0-7]{2}))*$",
                "flags": "",
                "args": [
                    "Semi-colon"
                ]
            },
            {
                "pattern": "^(?:[0-7]{1,2}|[123][0-7]{2})(?::(?:[0-7]{1,2}|[123][0-7]{2}))*$",
                "flags": "",
                "args": [
                    "Colon"
                ]
            },
            {
                "pattern": "^(?:[0-7]{1,2}|[123][0-7]{2})(?:\\n(?:[0-7]{1,2}|[123][0-7]{2}))*$",
                "flags": "",
                "args": [
                    "Line feed"
                ]
            },
            {
                "pattern": "^(?:[0-7]{1,2}|[123][0-7]{2})(?:\\r\\n(?:[0-7]{1,2}|[123][0-7]{2}))*$",
                "flags": "",
                "args": [
                    "CRLF"
                ]
            }
        ]
    },
    "From Punycode": {
        "module": "Encodings",
        "description": "Punycode is a way to represent Unicode with the limited character subset of ASCII supported by the Domain Name System.<br><br>e.g. <code>mnchen-3ya</code> decodes to <code>münchen</code>",
        "infoURL": "https://wikipedia.org/wiki/Punycode",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Internationalised domain name",
                "type": "boolean",
                "value": false
            }
        ]
    },
    "From Quoted Printable": {
        "module": "Default",
        "description": "Converts QP-encoded text back to standard text.<br><br>e.g. The quoted-printable encoded string <code>hello=20world</code> becomes <code>hello world</code>",
        "infoURL": "https://wikipedia.org/wiki/Quoted-printable",
        "inputType": "string",
        "outputType": "byteArray",
        "flowControl": false,
        "manualBake": false,
        "args": [],
        "checks": [
            {
                "pattern": "^[\\x21-\\x3d\\x3f-\\x7e \\t]{0,76}(?:=[\\da-f]{2}|=\\r?\\n)(?:[\\x21-\\x3d\\x3f-\\x7e \\t]|=[\\da-f]{2}|=\\r?\\n)*$",
                "flags": "i",
                "args": []
            }
        ]
    },
    "From UNIX Timestamp": {
        "module": "Default",
        "description": "Converts a UNIX timestamp to a datetime string.<br><br>e.g. <code>978346800</code> becomes <code>Mon 1 January 2001 11:00:00 UTC</code><br><br>A UNIX timestamp is a 32-bit value representing the number of seconds since January 1, 1970 UTC (the UNIX epoch).",
        "infoURL": "https://wikipedia.org/wiki/Unix_time",
        "inputType": "number",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Units",
                "type": "option",
                "value": [
                    "Seconds (s)",
                    "Milliseconds (ms)",
                    "Microseconds (μs)",
                    "Nanoseconds (ns)"
                ]
            }
        ],
        "checks": [
            {
                "pattern": "^1?\\d{9}$",
                "flags": "",
                "args": [
                    "Seconds (s)"
                ]
            },
            {
                "pattern": "^1?\\d{12}$",
                "flags": "",
                "args": [
                    "Milliseconds (ms)"
                ]
            },
            {
                "pattern": "^1?\\d{15}$",
                "flags": "",
                "args": [
                    "Microseconds (μs)"
                ]
            },
            {
                "pattern": "^1?\\d{18}$",
                "flags": "",
                "args": [
                    "Nanoseconds (ns)"
                ]
            }
        ]
    },
    "Fuzzy Match": {
        "module": "Default",
        "description": "Conducts a fuzzy search to find a pattern within the input based on weighted criteria.<br><br>e.g. A search for <code>dpan</code> will match on <code><b>D</b>on't <b>Pan</b>ic</code>",
        "infoURL": "https://wikipedia.org/wiki/Fuzzy_matching_(computer-assisted_translation)",
        "inputType": "string",
        "outputType": "html",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Search",
                "type": "binaryString",
                "value": ""
            },
            {
                "name": "Sequential bonus",
                "type": "number",
                "value": 15,
                "hint": "Bonus for adjacent matches"
            },
            {
                "name": "Separator bonus",
                "type": "number",
                "value": 30,
                "hint": "Bonus if match occurs after a separator"
            },
            {
                "name": "Camel bonus",
                "type": "number",
                "value": 30,
                "hint": "Bonus if match is uppercase and previous is lower"
            },
            {
                "name": "First letter bonus",
                "type": "number",
                "value": 15,
                "hint": "Bonus if the first letter is matched"
            },
            {
                "name": "Leading letter penalty",
                "type": "number",
                "value": -5,
                "hint": "Penalty applied for every letter in the input before the first match"
            },
            {
                "name": "Max leading letter penalty",
                "type": "number",
                "value": -15,
                "hint": "Maxiumum penalty for leading letters"
            },
            {
                "name": "Unmatched letter penalty",
                "type": "number",
                "value": -1
            }
        ]
    },
    "GOST hash": {
        "module": "Hashing",
        "description": "The GOST hash function, defined in the standards GOST R 34.11-94 and GOST 34.311-95 is a 256-bit cryptographic hash function. It was initially defined in the Russian national standard GOST R 34.11-94 <i>Information Technology – Cryptographic Information Security – Hash Function</i>. The equivalent standard used by other member-states of the CIS is GOST 34.311-95.<br><br>This function must not be confused with a different Streebog hash function, which is defined in the new revision of the standard GOST R 34.11-2012.<br><br>The GOST hash function is based on the GOST block cipher.",
        "infoURL": "https://wikipedia.org/wiki/GOST_(hash_function)",
        "inputType": "ArrayBuffer",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "S-Box",
                "type": "option",
                "value": [
                    "D-A",
                    "D-SC",
                    "E-TEST",
                    "E-A",
                    "E-B",
                    "E-C",
                    "E-D",
                    "E-SC",
                    "E-Z",
                    "D-TEST"
                ]
            }
        ]
    },
    "Generate all hashes": {
        "module": "Crypto",
        "description": "Generates all available hashes and checksums for the input.",
        "infoURL": "https://wikipedia.org/wiki/Comparison_of_cryptographic_hash_functions",
        "inputType": "ArrayBuffer",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Length (bits)",
                "type": "option",
                "value": [
                    "All",
                    "128",
                    "160",
                    "224",
                    "256",
                    "320",
                    "384",
                    "512"
                ]
            },
            {
                "name": "Include names",
                "type": "boolean",
                "value": true
            }
        ]
    },
    "Generate HOTP": {
        "module": "Default",
        "description": "The HMAC-based One-Time Password algorithm (HOTP) is an algorithm that computes a one-time password from a shared secret key and an incrementing counter. It has been adopted as Internet Engineering Task Force standard RFC 4226, is the cornerstone of Initiative For Open Authentication (OAUTH), and is used in a number of two-factor authentication systems.<br><br>Enter the secret as the input or leave it blank for a random secret to be generated.",
        "infoURL": "https://wikipedia.org/wiki/HMAC-based_One-time_Password_algorithm",
        "inputType": "ArrayBuffer",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Name",
                "type": "string",
                "value": ""
            },
            {
                "name": "Key size",
                "type": "number",
                "value": 32
            },
            {
                "name": "Code length",
                "type": "number",
                "value": 6
            },
            {
                "name": "Counter",
                "type": "number",
                "value": 0
            }
        ]
    },
    "Generate Image": {
        "module": "Image",
        "description": "Generates an image using the input as pixel values.",
        "infoURL": "",
        "inputType": "ArrayBuffer",
        "outputType": "html",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Mode",
                "type": "option",
                "value": [
                    "Greyscale",
                    "RG",
                    "RGB",
                    "RGBA",
                    "Bits"
                ]
            },
            {
                "name": "Pixel Scale Factor",
                "type": "number",
                "value": 8
            },
            {
                "name": "Pixels per row",
                "type": "number",
                "value": 64
            }
        ]
    },
    "Generate Lorem Ipsum": {
        "module": "Default",
        "description": "Generate varying length lorem ipsum placeholder text.",
        "infoURL": "https://wikipedia.org/wiki/Lorem_ipsum",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Length",
                "type": "number",
                "value": "3"
            },
            {
                "name": "Length in",
                "type": "option",
                "value": [
                    "Paragraphs",
                    "Sentences",
                    "Words",
                    "Bytes"
                ]
            }
        ]
    },
    "Generate PGP Key Pair": {
        "module": "PGP",
        "description": "Generates a new public/private PGP key pair. Supports RSA and Eliptic Curve (EC) keys.<br><br>WARNING: Cryptographic operations in CyberChef should not be relied upon to provide security in any situation. No guarantee is offered for their correctness. We advise you not to use keys generated from CyberChef in operational contexts.",
        "infoURL": "https://wikipedia.org/wiki/Pretty_Good_Privacy",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Key type",
                "type": "option",
                "value": [
                    "RSA-1024",
                    "RSA-2048",
                    "RSA-4096",
                    "ECC-256",
                    "ECC-384",
                    "ECC-521"
                ]
            },
            {
                "name": "Password (optional)",
                "type": "string",
                "value": ""
            },
            {
                "name": "Name (optional)",
                "type": "string",
                "value": ""
            },
            {
                "name": "Email (optional)",
                "type": "string",
                "value": ""
            }
        ]
    },
    "Generate QR Code": {
        "module": "Image",
        "description": "Generates a Quick Response (QR) code from the input text.<br><br>A QR code is a type of matrix barcode (or two-dimensional barcode) first designed in 1994 for the automotive industry in Japan. A barcode is a machine-readable optical label that contains information about the item to which it is attached.",
        "infoURL": "https://wikipedia.org/wiki/QR_code",
        "inputType": "string",
        "outputType": "html",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Image Format",
                "type": "option",
                "value": [
                    "PNG",
                    "SVG",
                    "EPS",
                    "PDF"
                ]
            },
            {
                "name": "Module size (px)",
                "type": "number",
                "value": 5,
                "min": 1
            },
            {
                "name": "Margin (num modules)",
                "type": "number",
                "value": 4,
                "min": 0
            },
            {
                "name": "Error correction",
                "type": "option",
                "value": [
                    "Low",
                    "Medium",
                    "Quartile",
                    "High"
                ],
                "defaultIndex": 1
            }
        ]
    },
    "Generate RSA Key Pair": {
        "module": "Ciphers",
        "description": "Generate an RSA key pair with a given number of bits.<br><br>WARNING: Cryptographic operations in CyberChef should not be relied upon to provide security in any situation. No guarantee is offered for their correctness. We advise you not to use keys generated from CyberChef in operational contexts.",
        "infoURL": "https://wikipedia.org/wiki/RSA_(cryptosystem)",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "RSA Key Length",
                "type": "option",
                "value": [
                    "1024",
                    "2048",
                    "4096"
                ]
            },
            {
                "name": "Output Format",
                "type": "option",
                "value": [
                    "PEM",
                    "JSON",
                    "DER"
                ]
            }
        ]
    },
    "Generate TOTP": {
        "module": "Default",
        "description": "The Time-based One-Time Password algorithm (TOTP) is an algorithm that computes a one-time password from a shared secret key and the current time. It has been adopted as Internet Engineering Task Force standard RFC 6238, is the cornerstone of Initiative For Open Authentication (OAUTH), and is used in a number of two-factor authentication systems. A TOTP is an HOTP where the counter is the current time.<br><br>Enter the secret as the input or leave it blank for a random secret to be generated. T0 and T1 are in seconds.",
        "infoURL": "https://wikipedia.org/wiki/Time-based_One-time_Password_algorithm",
        "inputType": "ArrayBuffer",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Name",
                "type": "string",
                "value": ""
            },
            {
                "name": "Key size",
                "type": "number",
                "value": 32
            },
            {
                "name": "Code length",
                "type": "number",
                "value": 6
            },
            {
                "name": "Epoch offset (T0)",
                "type": "number",
                "value": 0
            },
            {
                "name": "Interval (T1)",
                "type": "number",
                "value": 30
            }
        ]
    },
    "Generate UUID": {
        "module": "Crypto",
        "description": "Generates an RFC 4122 version 4 compliant Universally Unique Identifier (UUID), also known as a Globally Unique Identifier (GUID).<br><br>A version 4 UUID relies on random numbers, in this case generated using <code>window.crypto</code> if available and falling back to <code>Math.random</code> if not.",
        "infoURL": "https://wikipedia.org/wiki/Universally_unique_identifier",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": []
    },
    "Generic Code Beautify": {
        "module": "Code",
        "description": "Attempts to pretty print C-style languages such as C, C++, C#, Java, PHP, JavaScript etc.<br><br>This will not do a perfect job, and the resulting code may not work any more. This operation is designed purely to make obfuscated or minified code more easy to read and understand.<br><br>Things which will not work properly:<ul><li>For loop formatting</li><li>Do-While loop formatting</li><li>Switch/Case indentation</li><li>Certain bit shift operators</li></ul>",
        "infoURL": null,
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": []
    },
    "Get All Casings": {
        "module": "Default",
        "description": "Outputs all possible casing variations of a string.",
        "infoURL": "",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": []
    },
    "Get Time": {
        "module": "Default",
        "description": "Generates a timestamp showing the amount of time since the UNIX epoch (1970-01-01 00:00:00 UTC). Uses the W3C High Resolution Time API.",
        "infoURL": "https://wikipedia.org/wiki/Unix_time",
        "inputType": "string",
        "outputType": "number",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Granularity",
                "type": "option",
                "value": [
                    "Seconds (s)",
                    "Milliseconds (ms)",
                    "Microseconds (μs)",
                    "Nanoseconds (ns)"
                ]
            }
        ]
    },
    "Group IP addresses": {
        "module": "Default",
        "description": "Groups a list of IP addresses into subnets. Supports both IPv4 and IPv6 addresses.",
        "infoURL": "https://wikipedia.org/wiki/Subnetwork",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Delimiter",
                "type": "option",
                "value": [
                    "Line feed",
                    "CRLF",
                    "Space",
                    "Comma",
                    "Semi-colon"
                ]
            },
            {
                "name": "Subnet (CIDR)",
                "type": "number",
                "value": 24
            },
            {
                "name": "Only show the subnets",
                "type": "boolean",
                "value": false
            }
        ]
    },
    "Gunzip": {
        "module": "Compression",
        "description": "Decompresses data which has been compressed using the deflate algorithm with gzip headers.",
        "infoURL": "https://wikipedia.org/wiki/Gzip",
        "inputType": "ArrayBuffer",
        "outputType": "ArrayBuffer",
        "flowControl": false,
        "manualBake": false,
        "args": [],
        "checks": [
            {
                "pattern": "^\\x1f\\x8b\\x08",
                "flags": "",
                "args": []
            }
        ]
    },
    "Gzip": {
        "module": "Compression",
        "description": "Compresses data using the deflate algorithm with gzip headers.",
        "infoURL": "https://wikipedia.org/wiki/Gzip",
        "inputType": "ArrayBuffer",
        "outputType": "ArrayBuffer",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Compression type",
                "type": "option",
                "value": [
                    "Dynamic Huffman Coding",
                    "Fixed Huffman Coding",
                    "None (Store)"
                ]
            },
            {
                "name": "Filename (optional)",
                "type": "string",
                "value": ""
            },
            {
                "name": "Comment (optional)",
                "type": "string",
                "value": ""
            },
            {
                "name": "Include file checksum",
                "type": "boolean",
                "value": false
            }
        ]
    },
    "HAS-160": {
        "module": "Crypto",
        "description": "HAS-160 is a cryptographic hash function designed for use with the Korean KCDSA digital signature algorithm. It is derived from SHA-1, with assorted changes intended to increase its security. It produces a 160-bit output.<br><br>HAS-160 is used in the same way as SHA-1. First it divides input in blocks of 512 bits each and pads the final block. A digest function updates the intermediate hash value by processing the input blocks in turn.<br><br>The message digest algorithm consists, by default, of 80 rounds.",
        "infoURL": "https://wikipedia.org/wiki/HAS-160",
        "inputType": "ArrayBuffer",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Rounds",
                "type": "number",
                "value": 80,
                "min": 1,
                "max": 80
            }
        ]
    },
    "HASSH Client Fingerprint": {
        "module": "Crypto",
        "description": "Generates a HASSH fingerprint to help identify SSH clients based on hashing together values from the Client Key Exchange Init message.<br><br>Input: A hex stream of the SSH_MSG_KEXINIT packet application layer from Client to Server.",
        "infoURL": "https://engineering.salesforce.com/open-sourcing-hassh-abed3ae5044c",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Input format",
                "type": "option",
                "value": [
                    "Hex",
                    "Base64",
                    "Raw"
                ]
            },
            {
                "name": "Output format",
                "type": "option",
                "value": [
                    "Hash digest",
                    "HASSH algorithms string",
                    "Full details"
                ]
            }
        ]
    },
    "HASSH Server Fingerprint": {
        "module": "Crypto",
        "description": "Generates a HASSH fingerprint to help identify SSH servers based on hashing together values from the Server Key Exchange Init message.<br><br>Input: A hex stream of the SSH_MSG_KEXINIT packet application layer from Server to Client.",
        "infoURL": "https://engineering.salesforce.com/open-sourcing-hassh-abed3ae5044c",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Input format",
                "type": "option",
                "value": [
                    "Hex",
                    "Base64",
                    "Raw"
                ]
            },
            {
                "name": "Output format",
                "type": "option",
                "value": [
                    "Hash digest",
                    "HASSH algorithms string",
                    "Full details"
                ]
            }
        ]
    },
    "HMAC": {
        "module": "Crypto",
        "description": "Keyed-Hash Message Authentication Codes (HMAC) are a mechanism for message authentication using cryptographic hash functions.",
        "infoURL": "https://wikipedia.org/wiki/HMAC",
        "inputType": "ArrayBuffer",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Key",
                "type": "toggleString",
                "value": "",
                "toggleValues": [
                    "Hex",
                    "Decimal",
                    "Base64",
                    "UTF8",
                    "Latin1"
                ]
            },
            {
                "name": "Hashing function",
                "type": "option",
                "value": [
                    "MD2",
                    "MD4",
                    "MD5",
                    "SHA0",
                    "SHA1",
                    "SHA224",
                    "SHA256",
                    "SHA384",
                    "SHA512",
                    "SHA512/224",
                    "SHA512/256",
                    "RIPEMD128",
                    "RIPEMD160",
                    "RIPEMD256",
                    "RIPEMD320",
                    "HAS160",
                    "Whirlpool",
                    "Whirlpool-0",
                    "Whirlpool-T",
                    "Snefru"
                ]
            }
        ]
    },
    "HTML To Text": {
        "module": "Default",
        "description": "Converts an HTML output from an operation to a readable string instead of being rendered in the DOM.",
        "infoURL": "",
        "inputType": "html",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": []
    },
    "HTTP request": {
        "module": "Default",
        "description": "Makes an HTTP request and returns the response.\n<br><br>\nThis operation supports different HTTP verbs like GET, POST, PUT, etc.\n<br><br>\nYou can add headers line by line in the format <code>Key: Value</code>\n<br><br>\nThe status code of the response, along with a limited selection of exposed headers, can be viewed by checking the 'Show response metadata' option. Only a limited set of response headers are exposed by the browser for security reasons.",
        "infoURL": "https://wikipedia.org/wiki/List_of_HTTP_header_fields#Request_fields",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": true,
        "args": [
            {
                "name": "Method",
                "type": "option",
                "value": [
                    "GET",
                    "POST",
                    "HEAD",
                    "PUT",
                    "PATCH",
                    "DELETE",
                    "CONNECT",
                    "TRACE",
                    "OPTIONS"
                ]
            },
            {
                "name": "URL",
                "type": "string",
                "value": ""
            },
            {
                "name": "Headers",
                "type": "text",
                "value": ""
            },
            {
                "name": "Mode",
                "type": "option",
                "value": [
                    "Cross-Origin Resource Sharing",
                    "No CORS (limited to HEAD, GET or POST)"
                ]
            },
            {
                "name": "Show response metadata",
                "type": "boolean",
                "value": false
            }
        ]
    },
    "Hamming Distance": {
        "module": "Default",
        "description": "In information theory, the Hamming distance between two strings of equal length is the number of positions at which the corresponding symbols are different. In other words, it measures the minimum number of substitutions required to change one string into the other, or the minimum number of errors that could have transformed one string into the other. In a more general context, the Hamming distance is one of several string metrics for measuring the edit distance between two sequences.",
        "infoURL": "https://wikipedia.org/wiki/Hamming_distance",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Delimiter",
                "type": "binaryShortString",
                "value": "\\n\\n"
            },
            {
                "name": "Unit",
                "type": "option",
                "value": [
                    "Byte",
                    "Bit"
                ]
            },
            {
                "name": "Input type",
                "type": "option",
                "value": [
                    "Raw string",
                    "Hex"
                ]
            }
        ]
    },
    "Haversine distance": {
        "module": "Default",
        "description": "Returns the distance between two pairs of GPS latitude and longitude co-ordinates in metres.<br><br>e.g. <code>51.487263,-0.124323, 38.9517,-77.1467</code>",
        "infoURL": "https://wikipedia.org/wiki/Haversine_formula",
        "inputType": "string",
        "outputType": "number",
        "flowControl": false,
        "manualBake": false,
        "args": []
    },
    "Head": {
        "module": "Default",
        "description": "Like the UNIX head utility.<br>Gets the first n lines.<br>You can select all but the last n lines by entering a negative value for n.<br>The delimiter can be changed so that instead of lines, fields (i.e. commas) are selected instead.",
        "infoURL": null,
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Delimiter",
                "type": "option",
                "value": [
                    "Line feed",
                    "CRLF",
                    "Space",
                    "Comma",
                    "Semi-colon",
                    "Colon",
                    "Nothing (separate chars)"
                ]
            },
            {
                "name": "Number",
                "type": "number",
                "value": 10
            }
        ]
    },
    "Heatmap chart": {
        "module": "Charts",
        "description": "A heatmap is a graphical representation of data where the individual values contained in a matrix are represented as colors.",
        "infoURL": "https://wikipedia.org/wiki/Heat_map",
        "inputType": "string",
        "outputType": "html",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Record delimiter",
                "type": "option",
                "value": [
                    "Line feed",
                    "CRLF"
                ]
            },
            {
                "name": "Field delimiter",
                "type": "option",
                "value": [
                    "Space",
                    "Comma",
                    "Semi-colon",
                    "Colon",
                    "Tab"
                ]
            },
            {
                "name": "Number of vertical bins",
                "type": "number",
                "value": 25
            },
            {
                "name": "Number of horizontal bins",
                "type": "number",
                "value": 25
            },
            {
                "name": "Use column headers as labels",
                "type": "boolean",
                "value": true
            },
            {
                "name": "X label",
                "type": "string",
                "value": ""
            },
            {
                "name": "Y label",
                "type": "string",
                "value": ""
            },
            {
                "name": "Draw bin edges",
                "type": "boolean",
                "value": false
            },
            {
                "name": "Min colour value",
                "type": "string",
                "value": "white"
            },
            {
                "name": "Max colour value",
                "type": "string",
                "value": "black"
            }
        ]
    },
    "Hex Density chart": {
        "module": "Charts",
        "description": "Hex density charts are used in a similar way to scatter charts, however rather than rendering tens of thousands of points, it groups the points into a few hundred hexagons to show the distribution.",
        "infoURL": null,
        "inputType": "string",
        "outputType": "html",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Record delimiter",
                "type": "option",
                "value": [
                    "Line feed",
                    "CRLF"
                ]
            },
            {
                "name": "Field delimiter",
                "type": "option",
                "value": [
                    "Space",
                    "Comma",
                    "Semi-colon",
                    "Colon",
                    "Tab"
                ]
            },
            {
                "name": "Pack radius",
                "type": "number",
                "value": 25
            },
            {
                "name": "Draw radius",
                "type": "number",
                "value": 15
            },
            {
                "name": "Use column headers as labels",
                "type": "boolean",
                "value": true
            },
            {
                "name": "X label",
                "type": "string",
                "value": ""
            },
            {
                "name": "Y label",
                "type": "string",
                "value": ""
            },
            {
                "name": "Draw hexagon edges",
                "type": "boolean",
                "value": false
            },
            {
                "name": "Min colour value",
                "type": "string",
                "value": "white"
            },
            {
                "name": "Max colour value",
                "type": "string",
                "value": "black"
            },
            {
                "name": "Draw empty hexagons within data boundaries",
                "type": "boolean",
                "value": false
            }
        ]
    },
    "Hex to Object Identifier": {
        "module": "PublicKey",
        "description": "Converts a hexadecimal string into an object identifier (OID).",
        "infoURL": "https://wikipedia.org/wiki/Object_identifier",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": []
    },
    "Hex to PEM": {
        "module": "PublicKey",
        "description": "Converts a hexadecimal DER (Distinguished Encoding Rules) string into PEM (Privacy Enhanced Mail) format.",
        "infoURL": "https://wikipedia.org/wiki/Privacy-Enhanced_Mail",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Header string",
                "type": "string",
                "value": "CERTIFICATE"
            }
        ]
    },
    "Image Brightness / Contrast": {
        "module": "Image",
        "description": "Adjust the brightness or contrast of an image.",
        "infoURL": "",
        "inputType": "ArrayBuffer",
        "outputType": "html",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Brightness",
                "type": "number",
                "value": 0,
                "min": -100,
                "max": 100
            },
            {
                "name": "Contrast",
                "type": "number",
                "value": 0,
                "min": -100,
                "max": 100
            }
        ]
    },
    "Image Filter": {
        "module": "Image",
        "description": "Applies a greyscale or sepia filter to an image.",
        "infoURL": "",
        "inputType": "ArrayBuffer",
        "outputType": "html",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Filter type",
                "type": "option",
                "value": [
                    "Greyscale",
                    "Sepia"
                ]
            }
        ]
    },
    "Image Hue/Saturation/Lightness": {
        "module": "Image",
        "description": "Adjusts the hue / saturation / lightness (HSL) values of an image.",
        "infoURL": "",
        "inputType": "ArrayBuffer",
        "outputType": "html",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Hue",
                "type": "number",
                "value": 0,
                "min": -360,
                "max": 360
            },
            {
                "name": "Saturation",
                "type": "number",
                "value": 0,
                "min": -100,
                "max": 100
            },
            {
                "name": "Lightness",
                "type": "number",
                "value": 0,
                "min": -100,
                "max": 100
            }
        ]
    },
    "Image Opacity": {
        "module": "Image",
        "description": "Adjust the opacity of an image.",
        "infoURL": "",
        "inputType": "ArrayBuffer",
        "outputType": "html",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Opacity (%)",
                "type": "number",
                "value": 100,
                "min": 0,
                "max": 100
            }
        ]
    },
    "Index of Coincidence": {
        "module": "Default",
        "description": "Index of Coincidence (IC) is the probability of two randomly selected characters being the same. This can be used to determine whether text is readable or random, with English text having an IC of around 0.066. IC can therefore be a sound method to automate frequency analysis.",
        "infoURL": "https://wikipedia.org/wiki/Index_of_coincidence",
        "inputType": "string",
        "outputType": "html",
        "flowControl": false,
        "manualBake": false,
        "args": []
    },
    "Invert Image": {
        "module": "Image",
        "description": "Invert the colours of an image.",
        "infoURL": "",
        "inputType": "ArrayBuffer",
        "outputType": "html",
        "flowControl": false,
        "manualBake": false,
        "args": []
    },
    "JA3 Fingerprint": {
        "module": "Crypto",
        "description": "Generates a JA3 fingerprint to help identify TLS clients based on hashing together values from the Client Hello.<br><br>Input: A hex stream of the TLS Client Hello packet application layer.",
        "infoURL": "https://engineering.salesforce.com/tls-fingerprinting-with-ja3-and-ja3s-247362855967",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Input format",
                "type": "option",
                "value": [
                    "Hex",
                    "Base64",
                    "Raw"
                ]
            },
            {
                "name": "Output format",
                "type": "option",
                "value": [
                    "Hash digest",
                    "JA3 string",
                    "Full details"
                ]
            }
        ]
    },
    "JA3S Fingerprint": {
        "module": "Crypto",
        "description": "Generates a JA3S fingerprint to help identify TLS servers based on hashing together values from the Server Hello.<br><br>Input: A hex stream of the TLS Server Hello record application layer.",
        "infoURL": "https://engineering.salesforce.com/tls-fingerprinting-with-ja3-and-ja3s-247362855967",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Input format",
                "type": "option",
                "value": [
                    "Hex",
                    "Base64",
                    "Raw"
                ]
            },
            {
                "name": "Output format",
                "type": "option",
                "value": [
                    "Hash digest",
                    "JA3S string",
                    "Full details"
                ]
            }
        ]
    },
    "JPath expression": {
        "module": "Code",
        "description": "Extract information from a JSON object with a JPath query.",
        "infoURL": "http://goessner.net/articles/JsonPath/",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Query",
                "type": "string",
                "value": ""
            },
            {
                "name": "Result delimiter",
                "type": "binaryShortString",
                "value": "\\n"
            },
            {
                "name": "Prevent eval",
                "type": "boolean",
                "value": true
            }
        ]
    },
    "JSON Beautify": {
        "module": "Code",
        "description": "Indents and pretty prints JavaScript Object Notation (JSON) code.<br><br>Tags: json viewer, prettify, syntax highlighting",
        "infoURL": null,
        "inputType": "string",
        "outputType": "html",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Indent string",
                "type": "binaryShortString",
                "value": "    "
            },
            {
                "name": "Sort Object Keys",
                "type": "boolean",
                "value": false
            },
            {
                "name": "Formatted",
                "type": "boolean",
                "value": true
            }
        ]
    },
    "JSON Minify": {
        "module": "Code",
        "description": "Compresses JavaScript Object Notation (JSON) code.",
        "infoURL": null,
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": []
    },
    "JSON to CSV": {
        "module": "Default",
        "description": "Converts JSON data to a CSV based on the definition in RFC 4180.",
        "infoURL": "https://wikipedia.org/wiki/Comma-separated_values",
        "inputType": "JSON",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Cell delimiter",
                "type": "binaryShortString",
                "value": ","
            },
            {
                "name": "Row delimiter",
                "type": "binaryShortString",
                "value": "\\r\\n"
            }
        ]
    },
    "JWT Decode": {
        "module": "Crypto",
        "description": "Decodes a JSON Web Token <b>without</b> checking whether the provided secret / private key is valid. Use 'JWT Verify' to check if the signature is valid as well.",
        "infoURL": "https://wikipedia.org/wiki/JSON_Web_Token",
        "inputType": "string",
        "outputType": "JSON",
        "flowControl": false,
        "manualBake": false,
        "args": [],
        "checks": [
            {
                "pattern": "^ey([A-Za-z0-9_-]+)\\.ey([A-Za-z0-9_-]+)\\.([A-Za-z0-9_-]+)$",
                "flags": "",
                "args": []
            }
        ]
    },
    "JWT Sign": {
        "module": "Crypto",
        "description": "Signs a JSON object as a JSON Web Token using a provided secret / private key.<br><br>The key should be either the secret for HMAC algorithms or the PEM-encoded private key for RSA and ECDSA.",
        "infoURL": "https://wikipedia.org/wiki/JSON_Web_Token",
        "inputType": "JSON",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Private/Secret Key",
                "type": "text",
                "value": "secret"
            },
            {
                "name": "Signing algorithm",
                "type": "option",
                "value": [
                    "HS256",
                    "HS384",
                    "HS512",
                    "RS256",
                    "RS384",
                    "RS512",
                    "ES256",
                    "ES384",
                    "ES512",
                    "None"
                ]
            }
        ]
    },
    "JWT Verify": {
        "module": "Crypto",
        "description": "Verifies that a JSON Web Token is valid and has been signed with the provided secret / private key.<br><br>The key should be either the secret for HMAC algorithms or the PEM-encoded private key for RSA and ECDSA.",
        "infoURL": "https://wikipedia.org/wiki/JSON_Web_Token",
        "inputType": "string",
        "outputType": "JSON",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Public/Secret Key",
                "type": "text",
                "value": "secret"
            }
        ]
    },
    "JavaScript Beautify": {
        "module": "Code",
        "description": "Parses and pretty prints valid JavaScript code. Also works with JavaScript Object Notation (JSON).",
        "infoURL": null,
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Indent string",
                "type": "binaryShortString",
                "value": "\\t"
            },
            {
                "name": "Quotes",
                "type": "option",
                "value": [
                    "Auto",
                    "Single",
                    "Double"
                ]
            },
            {
                "name": "Semicolons before closing braces",
                "type": "boolean",
                "value": true
            },
            {
                "name": "Include comments",
                "type": "boolean",
                "value": true
            }
        ]
    },
    "JavaScript Minify": {
        "module": "Code",
        "description": "Compresses JavaScript code.",
        "infoURL": null,
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": []
    },
    "JavaScript Parser": {
        "module": "Code",
        "description": "Returns an Abstract Syntax Tree for valid JavaScript code.",
        "infoURL": "https://wikipedia.org/wiki/Abstract_syntax_tree",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Location info",
                "type": "boolean",
                "value": false
            },
            {
                "name": "Range info",
                "type": "boolean",
                "value": false
            },
            {
                "name": "Include tokens array",
                "type": "boolean",
                "value": false
            },
            {
                "name": "Include comments array",
                "type": "boolean",
                "value": false
            },
            {
                "name": "Report errors and try to continue",
                "type": "boolean",
                "value": false
            }
        ]
    },
    "Jump": {
        "module": "Default",
        "description": "Jump forwards or backwards to the specified Label",
        "infoURL": null,
        "inputType": "string",
        "outputType": "string",
        "flowControl": true,
        "manualBake": false,
        "args": [
            {
                "name": "Label name",
                "type": "string",
                "value": ""
            },
            {
                "name": "Maximum jumps (if jumping backwards)",
                "type": "number",
                "value": 10
            }
        ]
    },
    "Keccak": {
        "module": "Crypto",
        "description": "The Keccak hash algorithm was designed by Guido Bertoni, Joan Daemen, Michaël Peeters, and Gilles Van Assche, building upon RadioGatún. It was selected as the winner of the SHA-3 design competition.<br><br>This version of the algorithm is Keccak[c=2d] and differs from the SHA-3 specification.",
        "infoURL": "https://wikipedia.org/wiki/SHA-3",
        "inputType": "ArrayBuffer",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Size",
                "type": "option",
                "value": [
                    "512",
                    "384",
                    "256",
                    "224"
                ]
            }
        ]
    },
    "LM Hash": {
        "module": "Crypto",
        "description": "An LM Hash, or LAN Manager Hash, is a deprecated way of storing passwords on old Microsoft operating systems. It is particularly weak and can be cracked in seconds on modern hardware using rainbow tables.",
        "infoURL": "https://wikipedia.org/wiki/LAN_Manager#Password_hashing_algorithm",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": []
    },
    "LS47 Decrypt": {
        "module": "Crypto",
        "description": "This is a slight improvement of the ElsieFour cipher as described by Alan Kaminsky. We use 7x7 characters instead of original (barely fitting) 6x6, to be able to encrypt some structured information. We also describe a simple key-expansion algorithm, because remembering passwords is popular. Similar security considerations as with ElsieFour hold.<br>The LS47 alphabet consists of following characters: <code>_abcdefghijklmnopqrstuvwxyz.0123456789,-+*/:?!'()</code><br>An LS47 key is a permutation of the alphabet that is then represented in a 7x7 grid used for the encryption or decryption.",
        "infoURL": "https://github.com/exaexa/ls47",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Password",
                "type": "string",
                "value": ""
            },
            {
                "name": "Padding",
                "type": "number",
                "value": 10
            }
        ]
    },
    "LS47 Encrypt": {
        "module": "Crypto",
        "description": "This is a slight improvement of the ElsieFour cipher as described by Alan Kaminsky. We use 7x7 characters instead of original (barely fitting) 6x6, to be able to encrypt some structured information. We also describe a simple key-expansion algorithm, because remembering passwords is popular. Similar security considerations as with ElsieFour hold.<br>The LS47 alphabet consists of following characters: <code>_abcdefghijklmnopqrstuvwxyz.0123456789,-+*/:?!'()</code><br>A LS47 key is a permutation of the alphabet that is then represented in a 7x7 grid used for the encryption or decryption.",
        "infoURL": "https://github.com/exaexa/ls47",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Password",
                "type": "string",
                "value": ""
            },
            {
                "name": "Padding",
                "type": "number",
                "value": 10
            },
            {
                "name": "Signature",
                "type": "string",
                "value": ""
            }
        ]
    },
    "LZ4 Compress": {
        "module": "Compression",
        "description": "LZ4 is a lossless data compression algorithm that is focused on compression and decompression speed. It belongs to the LZ77 family of byte-oriented compression schemes.",
        "infoURL": "https://wikipedia.org/wiki/LZ4_(compression_algorithm)",
        "inputType": "ArrayBuffer",
        "outputType": "ArrayBuffer",
        "flowControl": false,
        "manualBake": false,
        "args": []
    },
    "LZ4 Decompress": {
        "module": "Compression",
        "description": "LZ4 is a lossless data compression algorithm that is focused on compression and decompression speed. It belongs to the LZ77 family of byte-oriented compression schemes.",
        "infoURL": "https://wikipedia.org/wiki/LZ4_(compression_algorithm)",
        "inputType": "ArrayBuffer",
        "outputType": "ArrayBuffer",
        "flowControl": false,
        "manualBake": false,
        "args": []
    },
    "LZMA Compress": {
        "module": "Compression",
        "description": "Compresses data using the Lempel–Ziv–Markov chain algorithm. Compression mode determines the speed and effectiveness of the compression: 1 is fastest and less effective, 9 is slowest and most effective",
        "infoURL": "https://wikipedia.org/wiki/Lempel%E2%80%93Ziv%E2%80%93Markov_chain_algorithm",
        "inputType": "ArrayBuffer",
        "outputType": "ArrayBuffer",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Compression Mode",
                "type": "option",
                "value": [
                    "1",
                    "2",
                    "3",
                    "4",
                    "5",
                    "6",
                    "7",
                    "8",
                    "9"
                ],
                "defaultIndex": 6
            }
        ]
    },
    "LZMA Decompress": {
        "module": "Compression",
        "description": "Decompresses data using the Lempel-Ziv-Markov chain Algorithm.",
        "infoURL": "https://wikipedia.org/wiki/Lempel%E2%80%93Ziv%E2%80%93Markov_chain_algorithm",
        "inputType": "ArrayBuffer",
        "outputType": "ArrayBuffer",
        "flowControl": false,
        "manualBake": false,
        "args": []
    },
    "LZString Compress": {
        "module": "Compression",
        "description": "Compress the input with lz-string.",
        "infoURL": "https://pieroxy.net/blog/pages/lz-string/index.html",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Compression Format",
                "type": "option",
                "value": [
                    "default",
                    "UTF16",
                    "Base64"
                ]
            }
        ]
    },
    "LZString Decompress": {
        "module": "Compression",
        "description": "Decompresses data that was compressed with lz-string.",
        "infoURL": "https://pieroxy.net/blog/pages/lz-string/index.html",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Compression Format",
                "type": "option",
                "value": [
                    "default",
                    "UTF16",
                    "Base64"
                ]
            }
        ]
    },
    "Label": {
        "module": "Default",
        "description": "Provides a location for conditional and fixed jumps to redirect execution to.",
        "infoURL": null,
        "inputType": "string",
        "outputType": "string",
        "flowControl": true,
        "manualBake": false,
        "args": [
            {
                "name": "Name",
                "type": "shortString",
                "value": ""
            }
        ]
    },
    "Lorenz": {
        "module": "Bletchley",
        "description": "The Lorenz SZ40/42 cipher attachment was a WW2 German rotor cipher machine with twelve rotors which attached in-line between remote teleprinters.<br><br>It used the Vernam cipher with two groups of five rotors (named the psi(ψ) wheels and chi(χ) wheels at Bletchley Park) to create two pseudorandom streams of five bits, encoded in ITA2, which were XOR added to the plaintext. Two other rotors, dubbed the mu(μ) or motor wheels, could hold up the stepping of the psi wheels meaning they stepped intermittently.<br><br>Each rotor has a different number of cams/lugs around their circumference which could be set active or inactive changing the key stream.<br><br>Three models of the Lorenz are emulated, SZ40, SZ42a and SZ42b and three example wheel patterns (the lug settings) are included (KH, ZMUG & BREAM) with the option to set a custom set using the letter 'x' for active or '.' for an inactive lug.<br><br>The input can either be plaintext or ITA2 when sending and ITA2 when receiving.<br><br>To learn more, Virtual Lorenz, an online, browser based simulation of the Lorenz SZ40/42 is available at <a href='https://lorenz.virtualcolossus.co.uk' target='_blank'>lorenz.virtualcolossus.co.uk</a>.<br><br>A more detailed description of this operation can be found <a href='https://github.com/gchq/CyberChef/wiki/Lorenz-SZ' target='_blank'>here</a>.",
        "infoURL": "https://wikipedia.org/wiki/Lorenz_cipher",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Model",
                "type": "option",
                "value": [
                    "SZ40",
                    "SZ42a",
                    "SZ42b"
                ]
            },
            {
                "name": "Wheel Pattern",
                "type": "argSelector",
                "value": [
                    {
                        "name": "KH Pattern",
                        "off": [
                            19,
                            20,
                            21,
                            22,
                            23,
                            24,
                            25,
                            26,
                            27,
                            28,
                            29,
                            30
                        ]
                    },
                    {
                        "name": "ZMUG Pattern",
                        "off": [
                            19,
                            20,
                            21,
                            22,
                            23,
                            24,
                            25,
                            26,
                            27,
                            28,
                            29,
                            30
                        ]
                    },
                    {
                        "name": "BREAM Pattern",
                        "off": [
                            19,
                            20,
                            21,
                            22,
                            23,
                            24,
                            25,
                            26,
                            27,
                            28,
                            29,
                            30
                        ]
                    },
                    {
                        "name": "No Pattern",
                        "off": [
                            19,
                            20,
                            21,
                            22,
                            23,
                            24,
                            25,
                            26,
                            27,
                            28,
                            29,
                            30
                        ]
                    },
                    {
                        "name": "Custom",
                        "on": [
                            19,
                            20,
                            21,
                            22,
                            23,
                            24,
                            25,
                            26,
                            27,
                            28,
                            29,
                            30
                        ]
                    }
                ]
            },
            {
                "name": "KT-Schalter",
                "type": "boolean",
                "value": false
            },
            {
                "name": "Mode",
                "type": "argSelector",
                "value": [
                    {
                        "name": "Send",
                        "on": [
                            4
                        ],
                        "off": [
                            5
                        ]
                    },
                    {
                        "name": "Receive",
                        "off": [
                            4
                        ],
                        "on": [
                            5
                        ]
                    }
                ]
            },
            {
                "name": "Input Type",
                "type": "option",
                "value": [
                    "Plaintext",
                    "ITA2"
                ]
            },
            {
                "name": "Output Type",
                "type": "option",
                "value": [
                    "Plaintext",
                    "ITA2"
                ]
            },
            {
                "name": "ITA2 Format",
                "type": "option",
                "value": [
                    "5/8/9",
                    "+/-/."
                ]
            },
            {
                "name": "Ψ1 start (1-43)",
                "type": "number",
                "value": 1
            },
            {
                "name": "Ψ2 start (1-47)",
                "type": "number",
                "value": 1
            },
            {
                "name": "Ψ3 start (1-51)",
                "type": "number",
                "value": 1
            },
            {
                "name": "Ψ4 start (1-53)",
                "type": "number",
                "value": 1
            },
            {
                "name": "Ψ5 start (1-59)",
                "type": "number",
                "value": 1
            },
            {
                "name": "Μ37 start (1-37)",
                "type": "number",
                "value": 1
            },
            {
                "name": "Μ61 start (1-61)",
                "type": "number",
                "value": 1
            },
            {
                "name": "Χ1 start (1-41)",
                "type": "number",
                "value": 1
            },
            {
                "name": "Χ2 start (1-31)",
                "type": "number",
                "value": 1
            },
            {
                "name": "Χ3 start (1-29)",
                "type": "number",
                "value": 1
            },
            {
                "name": "Χ4 start (1-26)",
                "type": "number",
                "value": 1
            },
            {
                "name": "Χ5 start (1-23)",
                "type": "number",
                "value": 1
            },
            {
                "name": "Ψ1 lugs (43)",
                "type": "string",
                "value": ".x...xx.x.x..xxx.x.x.xxxx.x.x.x.x.x..x.xx.x"
            },
            {
                "name": "Ψ2 lugs (47)",
                "type": "string",
                "value": ".xx.x.xxx..x.x.x..x.xx.x.xxx.x....x.xx.x.x.x..x"
            },
            {
                "name": "Ψ3 lugs (51)",
                "type": "string",
                "value": ".x.x.x..xxx....x.x.xx.x.x.x..xxx.x.x..x.x.xx..x.x.x"
            },
            {
                "name": "Ψ4 lugs (53)",
                "type": "string",
                "value": ".xx...xxxxx.x.x.xx...x.xx.x.x..x.x.xx.x..x.x.x.x.x.x."
            },
            {
                "name": "Ψ5 lugs (59)",
                "type": "string",
                "value": "xx...xx.x..x.xx.x...x.x.x.x.x.x.x.x.xx..xxxx.x.x...xx.x..x."
            },
            {
                "name": "Μ37 lugs (37)",
                "type": "string",
                "value": "x.x.x.x.x.x...x.x.x...x.x.x...x.x...."
            },
            {
                "name": "Μ61 lugs (61)",
                "type": "string",
                "value": ".xxxx.xxxx.xxx.xxxx.xx....xxx.xxxx.xxxx.xxxx.xxxx.xxx.xxxx..."
            },
            {
                "name": "Χ1 lugs (41)",
                "type": "string",
                "value": ".x...xxx.x.xxxx.x...x.x..xxx....xx.xxxx.."
            },
            {
                "name": "Χ2 lugs (31)",
                "type": "string",
                "value": "x..xxx...x.xxxx..xx..x..xx.xx.."
            },
            {
                "name": "Χ3 lugs (29)",
                "type": "string",
                "value": "..xx..x.xxx...xx...xx..xx.xx."
            },
            {
                "name": "Χ4 lugs (26)",
                "type": "string",
                "value": "xx..x..xxxx..xx.xxx....x.."
            },
            {
                "name": "Χ5 lugs (23)",
                "type": "string",
                "value": "xx..xx....xxxx.x..x.x.."
            }
        ]
    },
    "Luhn Checksum": {
        "module": "Default",
        "description": "The Luhn algorithm, also known as the modulus 10 or mod 10 algorithm, is a simple checksum formula used to validate a variety of identification numbers, such as credit card numbers, IMEI numbers and Canadian Social Insurance Numbers.",
        "infoURL": "https://wikipedia.org/wiki/Luhn_algorithm",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": []
    },
    "MD2": {
        "module": "Crypto",
        "description": "The MD2 (Message-Digest 2) algorithm is a cryptographic hash function developed by Ronald Rivest in 1989. The algorithm is optimized for 8-bit computers.<br><br>Although MD2 is no longer considered secure, even as of 2014, it remains in use in public key infrastructures as part of certificates generated with MD2 and RSA. The message digest algorithm consists, by default, of 18 rounds.",
        "infoURL": "https://wikipedia.org/wiki/MD2_(cryptography)",
        "inputType": "ArrayBuffer",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Rounds",
                "type": "number",
                "value": 18,
                "min": 0
            }
        ]
    },
    "MD4": {
        "module": "Crypto",
        "description": "The MD4 (Message-Digest 4) algorithm is a cryptographic hash function developed by Ronald Rivest in 1990. The digest length is 128 bits. The algorithm has influenced later designs, such as the MD5, SHA-1 and RIPEMD algorithms.<br><br>The security of MD4 has been severely compromised.",
        "infoURL": "https://wikipedia.org/wiki/MD4",
        "inputType": "ArrayBuffer",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": []
    },
    "MD5": {
        "module": "Crypto",
        "description": "MD5 (Message-Digest 5) is a widely used hash function. It has been used in a variety of security applications and is also commonly used to check the integrity of files.<br><br>However, MD5 is not collision resistant and it isn't suitable for applications like SSL/TLS certificates or digital signatures that rely on this property.",
        "infoURL": "https://wikipedia.org/wiki/MD5",
        "inputType": "ArrayBuffer",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": []
    },
    "MD6": {
        "module": "Crypto",
        "description": "The MD6 (Message-Digest 6) algorithm is a cryptographic hash function. It uses a Merkle tree-like structure to allow for immense parallel computation of hashes for very long inputs.",
        "infoURL": "https://wikipedia.org/wiki/MD6",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Size",
                "type": "number",
                "value": 256
            },
            {
                "name": "Levels",
                "type": "number",
                "value": 64
            },
            {
                "name": "Key",
                "type": "string",
                "value": ""
            }
        ]
    },
    "Magic": {
        "module": "Default",
        "description": "The Magic operation attempts to detect various properties of the input data and suggests which operations could help to make more sense of it.<br><br><b>Options</b><br><u>Depth:</u> If an operation appears to match the data, it will be run and the result will be analysed further. This argument controls the maximum number of levels of recursion.<br><br><u>Intensive mode:</u> When this is turned on, various operations like XOR, bit rotates, and character encodings are brute-forced to attempt to detect valid data underneath. To improve performance, only the first 100 bytes of the data is brute-forced.<br><br><u>Extensive language support:</u> At each stage, the relative byte frequencies of the data will be compared to average frequencies for a number of languages. The default set consists of ~40 of the most commonly used languages on the Internet. The extensive list consists of 284 languages and can result in many languages matching the data if their byte frequencies are similar.<br><br>Optionally enter a regular expression to match a string you expect to find to filter results (crib).",
        "infoURL": "https://github.com/gchq/CyberChef/wiki/Automatic-detection-of-encoded-data-using-CyberChef-Magic",
        "inputType": "ArrayBuffer",
        "outputType": "html",
        "flowControl": true,
        "manualBake": false,
        "args": [
            {
                "name": "Depth",
                "type": "number",
                "value": 3
            },
            {
                "name": "Intensive mode",
                "type": "boolean",
                "value": false
            },
            {
                "name": "Extensive language support",
                "type": "boolean",
                "value": false
            },
            {
                "name": "Crib (known plaintext string or regex)",
                "type": "string",
                "value": ""
            }
        ]
    },
    "Mean": {
        "module": "Default",
        "description": "Computes the mean (average) of a number list. If an item in the string is not a number it is excluded from the list.<br><br>e.g. <code>0x0a 8 .5 .5</code> becomes <code>4.75</code>",
        "infoURL": "https://wikipedia.org/wiki/Arithmetic_mean",
        "inputType": "string",
        "outputType": "BigNumber",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Delimiter",
                "type": "option",
                "value": [
                    "Line feed",
                    "Space",
                    "Comma",
                    "Semi-colon",
                    "Colon",
                    "CRLF"
                ]
            }
        ]
    },
    "Median": {
        "module": "Default",
        "description": "Computes the median of a number list. If an item in the string is not a number it is excluded from the list.<br><br>e.g. <code>0x0a 8 1 .5</code> becomes <code>4.5</code>",
        "infoURL": "https://wikipedia.org/wiki/Median",
        "inputType": "string",
        "outputType": "BigNumber",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Delimiter",
                "type": "option",
                "value": [
                    "Line feed",
                    "Space",
                    "Comma",
                    "Semi-colon",
                    "Colon",
                    "CRLF"
                ]
            }
        ]
    },
    "Merge": {
        "module": "Default",
        "description": "Consolidate all branches back into a single trunk. The opposite of Fork. Unticking the Merge All checkbox will only consolidate all branches up to the nearest Fork/Subsection.",
        "infoURL": null,
        "inputType": "string",
        "outputType": "string",
        "flowControl": true,
        "manualBake": false,
        "args": [
            {
                "name": "Merge All",
                "type": "boolean",
                "value": true
            }
        ]
    },
    "Microsoft Script Decoder": {
        "module": "Default",
        "description": "Decodes Microsoft Encoded Script files that have been encoded with Microsoft's custom encoding. These are often VBS (Visual Basic Script) files that are encoded and renamed with a '.vbe' extention or JS (JScript) files renamed with a '.jse' extention.<br><br><b>Sample</b><br><br>Encoded:<br><code>#@~^RQAAAA==-mD~sX|:/TP{~J:+dYbxL~@!F@*@!+@*@!&amp;@*eEI@#@&amp;@#@&amp;.jm.raY 214Wv:zms/obI0xEAAA==^#~@</code><br><br>Decoded:<br><code>var my_msg = &#34;Testing <1><2><3>!&#34;;\n\nVScript.Echo(my_msg);</code>",
        "infoURL": "https://wikipedia.org/wiki/JScript.Encode",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [],
        "checks": [
            {
                "pattern": "#@~\\^.{6}==(.+).{6}==\\^#~@",
                "flags": "i",
                "args": []
            }
        ]
    },
    "Multiple Bombe": {
        "module": "Bletchley",
        "description": "Emulation of the Bombe machine used to attack Enigma. This version carries out multiple Bombe runs to handle unknown rotor configurations.<br><br>You should test your menu on the single Bombe operation before running it here. See the description of the Bombe operation for instructions on choosing a crib.<br><br>More detailed descriptions of the Enigma, Typex and Bombe operations <a href='https://github.com/gchq/CyberChef/wiki/Enigma,-the-Bombe,-and-Typex'>can be found here</a>.",
        "infoURL": "https://wikipedia.org/wiki/Bombe",
        "inputType": "string",
        "outputType": "html",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Standard Enigmas",
                "type": "populateMultiOption",
                "value": [
                    {
                        "name": "German Service Enigma (First - 3 rotor)",
                        "value": [
                            "EKMFLGDQVZNTOWYHXUSPAIBRCJ<R\nAJDKSIRUXBLHWTMCQGZNPYFVOE<F\nBDFHJLCPRTXVZNYEIWGAKMUSQO<W\nESOVPZJAYQUIRHXLNFTGKDCMWB<K\nVZBRGITYUPSDNHLXAWMJQOFECK<A",
                            "",
                            "AY BR CU DH EQ FS GL IP JX KN MO TZ VW"
                        ]
                    },
                    {
                        "name": "German Service Enigma (Second - 3 rotor)",
                        "value": [
                            "EKMFLGDQVZNTOWYHXUSPAIBRCJ<R\nAJDKSIRUXBLHWTMCQGZNPYFVOE<F\nBDFHJLCPRTXVZNYEIWGAKMUSQO<W\nESOVPZJAYQUIRHXLNFTGKDCMWB<K\nVZBRGITYUPSDNHLXAWMJQOFECK<A\nJPGVOUMFYQBENHZRDKASXLICTW<AN\nNZJHGRCXMYSWBOUFAIVLPEKQDT<AN\nFKQHTLXOCBJSPDZRAMEWNIUYGV<AN",
                            "",
                            "AY BR CU DH EQ FS GL IP JX KN MO TZ VW\nAF BV CP DJ EI GO HY KR LZ MX NW TQ SU"
                        ]
                    },
                    {
                        "name": "German Service Enigma (Third - 4 rotor)",
                        "value": [
                            "EKMFLGDQVZNTOWYHXUSPAIBRCJ<R\nAJDKSIRUXBLHWTMCQGZNPYFVOE<F\nBDFHJLCPRTXVZNYEIWGAKMUSQO<W\nESOVPZJAYQUIRHXLNFTGKDCMWB<K\nVZBRGITYUPSDNHLXAWMJQOFECK<A\nJPGVOUMFYQBENHZRDKASXLICTW<AN\nNZJHGRCXMYSWBOUFAIVLPEKQDT<AN\nFKQHTLXOCBJSPDZRAMEWNIUYGV<AN",
                            "FSOKANUERHMBTIYCWLQPZXVGJD",
                            "AE BN CK DQ FU GY HW IJ LO MP RX SZ TV"
                        ]
                    },
                    {
                        "name": "German Service Enigma (Fourth - 4 rotor)",
                        "value": [
                            "EKMFLGDQVZNTOWYHXUSPAIBRCJ<R\nAJDKSIRUXBLHWTMCQGZNPYFVOE<F\nBDFHJLCPRTXVZNYEIWGAKMUSQO<W\nESOVPZJAYQUIRHXLNFTGKDCMWB<K\nVZBRGITYUPSDNHLXAWMJQOFECK<A\nJPGVOUMFYQBENHZRDKASXLICTW<AN\nNZJHGRCXMYSWBOUFAIVLPEKQDT<AN\nFKQHTLXOCBJSPDZRAMEWNIUYGV<AN",
                            "FSOKANUERHMBTIYCWLQPZXVGJD",
                            "AE BN CK DQ FU GY HW IJ LO MP RX SZ TV\nAR BD CO EJ FN GT HK IV LM PW QZ SX UY"
                        ]
                    },
                    {
                        "name": "User defined",
                        "value": [
                            "",
                            "",
                            ""
                        ]
                    }
                ],
                "target": [
                    1,
                    2,
                    3
                ]
            },
            {
                "name": "Main rotors",
                "type": "text",
                "value": ""
            },
            {
                "name": "4th rotor",
                "type": "text",
                "value": ""
            },
            {
                "name": "Reflectors",
                "type": "text",
                "value": ""
            },
            {
                "name": "Crib",
                "type": "string",
                "value": ""
            },
            {
                "name": "Crib offset",
                "type": "number",
                "value": 0
            },
            {
                "name": "Use checking machine",
                "type": "boolean",
                "value": true
            }
        ]
    },
    "Multiply": {
        "module": "Default",
        "description": "Multiplies a list of numbers. If an item in the string is not a number it is excluded from the list.<br><br>e.g. <code>0x0a 8 .5</code> becomes <code>40</code>",
        "infoURL": "https://wikipedia.org/wiki/Multiplication",
        "inputType": "string",
        "outputType": "BigNumber",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Delimiter",
                "type": "option",
                "value": [
                    "Line feed",
                    "Space",
                    "Comma",
                    "Semi-colon",
                    "Colon",
                    "CRLF"
                ]
            }
        ]
    },
    "NOT": {
        "module": "Default",
        "description": "Returns the inverse of each byte.",
        "infoURL": "https://wikipedia.org/wiki/Bitwise_operation#NOT",
        "inputType": "ArrayBuffer",
        "outputType": "byteArray",
        "flowControl": false,
        "manualBake": false,
        "args": []
    },
    "NT Hash": {
        "module": "Crypto",
        "description": "An NT Hash, sometimes referred to as an NTLM hash, is a method of storing passwords on Windows systems. It works by running MD4 on UTF-16LE encoded input. NTLM hashes are considered weak because they can be brute-forced very easily with modern hardware.",
        "infoURL": "https://wikipedia.org/wiki/NT_LAN_Manager",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": []
    },
    "Normalise Image": {
        "module": "Image",
        "description": "Normalise the image colours.",
        "infoURL": "",
        "inputType": "ArrayBuffer",
        "outputType": "html",
        "flowControl": false,
        "manualBake": false,
        "args": []
    },
    "Normalise Unicode": {
        "module": "Encodings",
        "description": "Transform Unicode characters to one of the Normalisation Forms",
        "infoURL": "https://wikipedia.org/wiki/Unicode_equivalence#Normal_forms",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Normal Form",
                "type": "option",
                "value": [
                    "NFD",
                    "NFC",
                    "NFKD",
                    "NFKC"
                ]
            }
        ]
    },
    "Numberwang": {
        "module": "Default",
        "description": "Based on the popular gameshow by Mitchell and Webb.",
        "infoURL": "https://wikipedia.org/wiki/That_Mitchell_and_Webb_Look#Recurring_sketches",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": []
    },
    "OR": {
        "module": "Default",
        "description": "OR the input with the given key.<br>e.g. <code>fe023da5</code>",
        "infoURL": "https://wikipedia.org/wiki/Bitwise_operation#OR",
        "inputType": "ArrayBuffer",
        "outputType": "byteArray",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Key",
                "type": "toggleString",
                "value": "",
                "toggleValues": [
                    "Hex",
                    "Decimal",
                    "Binary",
                    "Base64",
                    "UTF8",
                    "Latin1"
                ]
            }
        ]
    },
    "Object Identifier to Hex": {
        "module": "PublicKey",
        "description": "Converts an object identifier (OID) into a hexadecimal string.",
        "infoURL": "https://wikipedia.org/wiki/Object_identifier",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": []
    },
    "Offset checker": {
        "module": "Default",
        "description": "Compares multiple inputs (separated by the specified delimiter) and highlights matching characters which appear at the same position in all samples.",
        "infoURL": null,
        "inputType": "string",
        "outputType": "html",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Sample delimiter",
                "type": "binaryString",
                "value": "\\n\\n"
            }
        ]
    },
    "Optical Character Recognition": {
        "module": "OCR",
        "description": "Optical character recognition or optical character reader (OCR) is the mechanical or electronic conversion of images of typed, handwritten or printed text into machine-encoded text.<br><br>Supported image formats: png, jpg, bmp, pbm.",
        "infoURL": "https://wikipedia.org/wiki/Optical_character_recognition",
        "inputType": "ArrayBuffer",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Show confidence",
                "type": "boolean",
                "value": true
            }
        ]
    },
    "PEM to Hex": {
        "module": "Default",
        "description": "Converts PEM (Privacy Enhanced Mail) format to a hexadecimal DER (Distinguished Encoding Rules) string.",
        "infoURL": "https://wikipedia.org/wiki/Privacy-Enhanced_Mail#Format",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [],
        "checks": [
            {
                "pattern": "----BEGIN ([A-Z][A-Z ]+[A-Z])-----",
                "args": []
            }
        ]
    },
    "PGP Decrypt": {
        "module": "PGP",
        "description": "Input: the ASCII-armoured PGP message you want to decrypt.\n<br><br>\nArguments: the ASCII-armoured PGP private key of the recipient, \n(and the private key password if necessary).\n<br><br>\nPretty Good Privacy is an encryption standard (OpenPGP) used for encrypting, decrypting, and signing messages.\n<br><br>\nThis function uses the Keybase implementation of PGP.",
        "infoURL": "https://wikipedia.org/wiki/Pretty_Good_Privacy",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Private key of recipient",
                "type": "text",
                "value": ""
            },
            {
                "name": "Private key passphrase",
                "type": "string",
                "value": ""
            }
        ]
    },
    "PGP Decrypt and Verify": {
        "module": "PGP",
        "description": "Input: the ASCII-armoured encrypted PGP message you want to verify.\n<br><br>\nArguments: the ASCII-armoured PGP public key of the signer, \nthe ASCII-armoured private key of the recipient (and the private key password if necessary).\n<br><br>\nThis operation uses PGP to decrypt and verify an encrypted digital signature.\n<br><br>\nPretty Good Privacy is an encryption standard (OpenPGP) used for encrypting, decrypting, and signing messages.\n<br><br>\nThis function uses the Keybase implementation of PGP.",
        "infoURL": "https://wikipedia.org/wiki/Pretty_Good_Privacy",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Public key of signer",
                "type": "text",
                "value": ""
            },
            {
                "name": "Private key of recipient",
                "type": "text",
                "value": ""
            },
            {
                "name": "Private key password",
                "type": "string",
                "value": ""
            }
        ]
    },
    "PGP Encrypt": {
        "module": "PGP",
        "description": "Input: the message you want to encrypt.\n<br><br>\nArguments: the ASCII-armoured PGP public key of the recipient.\n<br><br>\nPretty Good Privacy is an encryption standard (OpenPGP) used for encrypting, decrypting, and signing messages.\n<br><br>\nThis function uses the Keybase implementation of PGP.",
        "infoURL": "https://wikipedia.org/wiki/Pretty_Good_Privacy",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Public key of recipient",
                "type": "text",
                "value": ""
            }
        ]
    },
    "PGP Encrypt and Sign": {
        "module": "PGP",
        "description": "Input: the cleartext you want to sign.\n<br><br>\nArguments: the ASCII-armoured private key of the signer (plus the private key password if necessary)\nand the ASCII-armoured PGP public key of the recipient.\n<br><br>\nThis operation uses PGP to produce an encrypted digital signature.\n<br><br>\nPretty Good Privacy is an encryption standard (OpenPGP) used for encrypting, decrypting, and signing messages.\n<br><br>\nThis function uses the Keybase implementation of PGP.",
        "infoURL": "https://wikipedia.org/wiki/Pretty_Good_Privacy",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Private key of signer",
                "type": "text",
                "value": ""
            },
            {
                "name": "Private key passphrase",
                "type": "string",
                "value": ""
            },
            {
                "name": "Public key of recipient",
                "type": "text",
                "value": ""
            }
        ]
    },
    "PGP Verify": {
        "module": "PGP",
        "description": "Input: the ASCII-armoured encrypted PGP message you want to verify.\n<br><br>\nArgument: the ASCII-armoured PGP public key of the signer\n<br><br>\nThis operation uses PGP to decrypt a clearsigned message.\n<br><br>\nPretty Good Privacy is an encryption standard (OpenPGP) used for encrypting, decrypting, and signing messages.\n<br><br>\nThis function uses the Keybase implementation of PGP.",
        "infoURL": "https://wikipedia.org/wiki/Pretty_Good_Privacy",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Public key of signer",
                "type": "text",
                "value": ""
            }
        ]
    },
    "PHP Deserialize": {
        "module": "Default",
        "description": "Deserializes PHP serialized data, outputting keyed arrays as JSON.<br><br>This function does not support <code>object</code> tags.<br><br>Example:<br><code>a:2:{s:1:&quot;a&quot;;i:10;i:0;a:1:{s:2:&quot;ab&quot;;b:1;}}</code><br>becomes<br><code>{&quot;a&quot;: 10,0: {&quot;ab&quot;: true}}</code><br><br><u>Output valid JSON:</u> JSON doesn't support integers as keys, whereas PHP serialization does. Enabling this will cast these integers to strings. This will also escape backslashes.",
        "infoURL": "http://www.phpinternalsbook.com/classes_objects/serialization.html",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Output valid JSON",
                "type": "boolean",
                "value": true
            }
        ]
    },
    "P-list Viewer": {
        "module": "Default",
        "description": "In the macOS, iOS, NeXTSTEP, and GNUstep programming frameworks, property list files are files that store serialized objects. Property list files use the filename extension .plist, and thus are often referred to as p-list files.<br><br>This operation displays plist files in a human readable format.",
        "infoURL": "https://wikipedia.org/wiki/Property_list",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": []
    },
    "Pad lines": {
        "module": "Default",
        "description": "Add the specified number of the specified character to the beginning or end of each line",
        "infoURL": null,
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Position",
                "type": "option",
                "value": [
                    "Start",
                    "End"
                ]
            },
            {
                "name": "Length",
                "type": "number",
                "value": 5
            },
            {
                "name": "Character",
                "type": "binaryShortString",
                "value": " "
            }
        ]
    },
    "Parse ASN.1 hex string": {
        "module": "PublicKey",
        "description": "Abstract Syntax Notation One (ASN.1) is a standard and notation that describes rules and structures for representing, encoding, transmitting, and decoding data in telecommunications and computer networking.<br><br>This operation parses arbitrary ASN.1 data and presents the resulting tree.",
        "infoURL": "https://wikipedia.org/wiki/Abstract_Syntax_Notation_One",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Starting index",
                "type": "number",
                "value": 0
            },
            {
                "name": "Truncate octet strings longer than",
                "type": "number",
                "value": 32
            }
        ]
    },
    "Parse colour code": {
        "module": "Default",
        "description": "Converts a colour code in a standard format to other standard formats and displays the colour itself.<br><br><strong>Example inputs</strong><ul><li><code>#d9edf7</code></li><li><code>rgba(217,237,247,1)</code></li><li><code>hsla(200,65%,91%,1)</code></li><li><code>cmyk(0.12, 0.04, 0.00, 0.03)</code></li></ul>",
        "infoURL": "https://wikipedia.org/wiki/Web_colors",
        "inputType": "string",
        "outputType": "html",
        "flowControl": false,
        "manualBake": false,
        "args": []
    },
    "Parse DateTime": {
        "module": "Default",
        "description": "Parses a DateTime string in your specified format and displays it in whichever timezone you choose with the following information:<ul><li>Date</li><li>Time</li><li>Period (AM/PM)</li><li>Timezone</li><li>UTC offset</li><li>Daylight Saving Time</li><li>Leap year</li><li>Days in this month</li><li>Day of year</li><li>Week number</li><li>Quarter</li></ul>Run with no input to see format string examples if required.",
        "infoURL": "https://momentjs.com/docs/#/parsing/string-format/",
        "inputType": "string",
        "outputType": "html",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Built in formats",
                "type": "populateOption",
                "value": [
                    {
                        "name": "Standard date and time",
                        "value": "DD/MM/YYYY HH:mm:ss"
                    },
                    {
                        "name": "American-style date and time",
                        "value": "MM/DD/YYYY HH:mm:ss"
                    },
                    {
                        "name": "International date and time",
                        "value": "YYYY-MM-DD HH:mm:ss"
                    },
                    {
                        "name": "Verbose date and time",
                        "value": "dddd Do MMMM YYYY HH:mm:ss Z z"
                    },
                    {
                        "name": "UNIX timestamp (seconds)",
                        "value": "X"
                    },
                    {
                        "name": "UNIX timestamp offset (milliseconds)",
                        "value": "x"
                    },
                    {
                        "name": "Automatic",
                        "value": ""
                    }
                ],
                "target": 1
            },
            {
                "name": "Input format string",
                "type": "binaryString",
                "value": "DD/MM/YYYY HH:mm:ss"
            },
            {
                "name": "Input timezone",
                "type": "option",
                "value": [
                    "UTC",
                    "Africa/Abidjan",
                    "Africa/Accra",
                    "Africa/Addis_Ababa",
                    "Africa/Algiers",
                    "Africa/Asmara",
                    "Africa/Asmera",
                    "Africa/Bamako",
                    "Africa/Bangui",
                    "Africa/Banjul",
                    "Africa/Bissau",
                    "Africa/Blantyre",
                    "Africa/Brazzaville",
                    "Africa/Bujumbura",
                    "Africa/Cairo",
                    "Africa/Casablanca",
                    "Africa/Ceuta",
                    "Africa/Conakry",
                    "Africa/Dakar",
                    "Africa/Dar_es_Salaam",
                    "Africa/Djibouti",
                    "Africa/Douala",
                    "Africa/El_Aaiun",
                    "Africa/Freetown",
                    "Africa/Gaborone",
                    "Africa/Harare",
                    "Africa/Johannesburg",
                    "Africa/Juba",
                    "Africa/Kampala",
                    "Africa/Khartoum",
                    "Africa/Kigali",
                    "Africa/Kinshasa",
                    "Africa/Lagos",
                    "Africa/Libreville",
                    "Africa/Lome",
                    "Africa/Luanda",
                    "Africa/Lubumbashi",
                    "Africa/Lusaka",
                    "Africa/Malabo",
                    "Africa/Maputo",
                    "Africa/Maseru",
                    "Africa/Mbabane",
                    "Africa/Mogadishu",
                    "Africa/Monrovia",
                    "Africa/Nairobi",
                    "Africa/Ndjamena",
                    "Africa/Niamey",
                    "Africa/Nouakchott",
                    "Africa/Ouagadougou",
                    "Africa/Porto-Novo",
                    "Africa/Sao_Tome",
                    "Africa/Timbuktu",
                    "Africa/Tripoli",
                    "Africa/Tunis",
                    "Africa/Windhoek",
                    "America/Adak",
                    "America/Anchorage",
                    "America/Anguilla",
                    "America/Antigua",
                    "America/Araguaina",
                    "America/Argentina/Buenos_Aires",
                    "America/Argentina/Catamarca",
                    "America/Argentina/ComodRivadavia",
                    "America/Argentina/Cordoba",
                    "America/Argentina/Jujuy",
                    "America/Argentina/La_Rioja",
                    "America/Argentina/Mendoza",
                    "America/Argentina/Rio_Gallegos",
                    "America/Argentina/Salta",
                    "America/Argentina/San_Juan",
                    "America/Argentina/San_Luis",
                    "America/Argentina/Tucuman",
                    "America/Argentina/Ushuaia",
                    "America/Aruba",
                    "America/Asuncion",
                    "America/Atikokan",
                    "America/Atka",
                    "America/Bahia",
                    "America/Bahia_Banderas",
                    "America/Barbados",
                    "America/Belem",
                    "America/Belize",
                    "America/Blanc-Sablon",
                    "America/Boa_Vista",
                    "America/Bogota",
                    "America/Boise",
                    "America/Buenos_Aires",
                    "America/Cambridge_Bay",
                    "America/Campo_Grande",
                    "America/Cancun",
                    "America/Caracas",
                    "America/Catamarca",
                    "America/Cayenne",
                    "America/Cayman",
                    "America/Chicago",
                    "America/Chihuahua",
                    "America/Coral_Harbour",
                    "America/Cordoba",
                    "America/Costa_Rica",
                    "America/Creston",
                    "America/Cuiaba",
                    "America/Curacao",
                    "America/Danmarkshavn",
                    "America/Dawson",
                    "America/Dawson_Creek",
                    "America/Denver",
                    "America/Detroit",
                    "America/Dominica",
                    "America/Edmonton",
                    "America/Eirunepe",
                    "America/El_Salvador",
                    "America/Ensenada",
                    "America/Fort_Nelson",
                    "America/Fort_Wayne",
                    "America/Fortaleza",
                    "America/Glace_Bay",
                    "America/Godthab",
                    "America/Goose_Bay",
                    "America/Grand_Turk",
                    "America/Grenada",
                    "America/Guadeloupe",
                    "America/Guatemala",
                    "America/Guayaquil",
                    "America/Guyana",
                    "America/Halifax",
                    "America/Havana",
                    "America/Hermosillo",
                    "America/Indiana/Indianapolis",
                    "America/Indiana/Knox",
                    "America/Indiana/Marengo",
                    "America/Indiana/Petersburg",
                    "America/Indiana/Tell_City",
                    "America/Indiana/Vevay",
                    "America/Indiana/Vincennes",
                    "America/Indiana/Winamac",
                    "America/Indianapolis",
                    "America/Inuvik",
                    "America/Iqaluit",
                    "America/Jamaica",
                    "America/Jujuy",
                    "America/Juneau",
                    "America/Kentucky/Louisville",
                    "America/Kentucky/Monticello",
                    "America/Knox_IN",
                    "America/Kralendijk",
                    "America/La_Paz",
                    "America/Lima",
                    "America/Los_Angeles",
                    "America/Louisville",
                    "America/Lower_Princes",
                    "America/Maceio",
                    "America/Managua",
                    "America/Manaus",
                    "America/Marigot",
                    "America/Martinique",
                    "America/Matamoros",
                    "America/Mazatlan",
                    "America/Mendoza",
                    "America/Menominee",
                    "America/Merida",
                    "America/Metlakatla",
                    "America/Mexico_City",
                    "America/Miquelon",
                    "America/Moncton",
                    "America/Monterrey",
                    "America/Montevideo",
                    "America/Montreal",
                    "America/Montserrat",
                    "America/Nassau",
                    "America/New_York",
                    "America/Nipigon",
                    "America/Nome",
                    "America/Noronha",
                    "America/North_Dakota/Beulah",
                    "America/North_Dakota/Center",
                    "America/North_Dakota/New_Salem",
                    "America/Nuuk",
                    "America/Ojinaga",
                    "America/Panama",
                    "America/Pangnirtung",
                    "America/Paramaribo",
                    "America/Phoenix",
                    "America/Port-au-Prince",
                    "America/Port_of_Spain",
                    "America/Porto_Acre",
                    "America/Porto_Velho",
                    "America/Puerto_Rico",
                    "America/Punta_Arenas",
                    "America/Rainy_River",
                    "America/Rankin_Inlet",
                    "America/Recife",
                    "America/Regina",
                    "America/Resolute",
                    "America/Rio_Branco",
                    "America/Rosario",
                    "America/Santa_Isabel",
                    "America/Santarem",
                    "America/Santiago",
                    "America/Santo_Domingo",
                    "America/Sao_Paulo",
                    "America/Scoresbysund",
                    "America/Shiprock",
                    "America/Sitka",
                    "America/St_Barthelemy",
                    "America/St_Johns",
                    "America/St_Kitts",
                    "America/St_Lucia",
                    "America/St_Thomas",
                    "America/St_Vincent",
                    "America/Swift_Current",
                    "America/Tegucigalpa",
                    "America/Thule",
                    "America/Thunder_Bay",
                    "America/Tijuana",
                    "America/Toronto",
                    "America/Tortola",
                    "America/Vancouver",
                    "America/Virgin",
                    "America/Whitehorse",
                    "America/Winnipeg",
                    "America/Yakutat",
                    "America/Yellowknife",
                    "Antarctica/Casey",
                    "Antarctica/Davis",
                    "Antarctica/DumontDUrville",
                    "Antarctica/Macquarie",
                    "Antarctica/Mawson",
                    "Antarctica/McMurdo",
                    "Antarctica/Palmer",
                    "Antarctica/Rothera",
                    "Antarctica/South_Pole",
                    "Antarctica/Syowa",
                    "Antarctica/Troll",
                    "Antarctica/Vostok",
                    "Arctic/Longyearbyen",
                    "Asia/Aden",
                    "Asia/Almaty",
                    "Asia/Amman",
                    "Asia/Anadyr",
                    "Asia/Aqtau",
                    "Asia/Aqtobe",
                    "Asia/Ashgabat",
                    "Asia/Ashkhabad",
                    "Asia/Atyrau",
                    "Asia/Baghdad",
                    "Asia/Bahrain",
                    "Asia/Baku",
                    "Asia/Bangkok",
                    "Asia/Barnaul",
                    "Asia/Beirut",
                    "Asia/Bishkek",
                    "Asia/Brunei",
                    "Asia/Calcutta",
                    "Asia/Chita",
                    "Asia/Choibalsan",
                    "Asia/Chongqing",
                    "Asia/Chungking",
                    "Asia/Colombo",
                    "Asia/Dacca",
                    "Asia/Damascus",
                    "Asia/Dhaka",
                    "Asia/Dili",
                    "Asia/Dubai",
                    "Asia/Dushanbe",
                    "Asia/Famagusta",
                    "Asia/Gaza",
                    "Asia/Harbin",
                    "Asia/Hebron",
                    "Asia/Ho_Chi_Minh",
                    "Asia/Hong_Kong",
                    "Asia/Hovd",
                    "Asia/Irkutsk",
                    "Asia/Istanbul",
                    "Asia/Jakarta",
                    "Asia/Jayapura",
                    "Asia/Jerusalem",
                    "Asia/Kabul",
                    "Asia/Kamchatka",
                    "Asia/Karachi",
                    "Asia/Kashgar",
                    "Asia/Kathmandu",
                    "Asia/Katmandu",
                    "Asia/Khandyga",
                    "Asia/Kolkata",
                    "Asia/Krasnoyarsk",
                    "Asia/Kuala_Lumpur",
                    "Asia/Kuching",
                    "Asia/Kuwait",
                    "Asia/Macao",
                    "Asia/Macau",
                    "Asia/Magadan",
                    "Asia/Makassar",
                    "Asia/Manila",
                    "Asia/Muscat",
                    "Asia/Nicosia",
                    "Asia/Novokuznetsk",
                    "Asia/Novosibirsk",
                    "Asia/Omsk",
                    "Asia/Oral",
                    "Asia/Phnom_Penh",
                    "Asia/Pontianak",
                    "Asia/Pyongyang",
                    "Asia/Qatar",
                    "Asia/Qostanay",
                    "Asia/Qyzylorda",
                    "Asia/Rangoon",
                    "Asia/Riyadh",
                    "Asia/Saigon",
                    "Asia/Sakhalin",
                    "Asia/Samarkand",
                    "Asia/Seoul",
                    "Asia/Shanghai",
                    "Asia/Singapore",
                    "Asia/Srednekolymsk",
                    "Asia/Taipei",
                    "Asia/Tashkent",
                    "Asia/Tbilisi",
                    "Asia/Tehran",
                    "Asia/Tel_Aviv",
                    "Asia/Thimbu",
                    "Asia/Thimphu",
                    "Asia/Tokyo",
                    "Asia/Tomsk",
                    "Asia/Ujung_Pandang",
                    "Asia/Ulaanbaatar",
                    "Asia/Ulan_Bator",
                    "Asia/Urumqi",
                    "Asia/Ust-Nera",
                    "Asia/Vientiane",
                    "Asia/Vladivostok",
                    "Asia/Yakutsk",
                    "Asia/Yangon",
                    "Asia/Yekaterinburg",
                    "Asia/Yerevan",
                    "Atlantic/Azores",
                    "Atlantic/Bermuda",
                    "Atlantic/Canary",
                    "Atlantic/Cape_Verde",
                    "Atlantic/Faeroe",
                    "Atlantic/Faroe",
                    "Atlantic/Jan_Mayen",
                    "Atlantic/Madeira",
                    "Atlantic/Reykjavik",
                    "Atlantic/South_Georgia",
                    "Atlantic/St_Helena",
                    "Atlantic/Stanley",
                    "Australia/ACT",
                    "Australia/Adelaide",
                    "Australia/Brisbane",
                    "Australia/Broken_Hill",
                    "Australia/Canberra",
                    "Australia/Currie",
                    "Australia/Darwin",
                    "Australia/Eucla",
                    "Australia/Hobart",
                    "Australia/LHI",
                    "Australia/Lindeman",
                    "Australia/Lord_Howe",
                    "Australia/Melbourne",
                    "Australia/NSW",
                    "Australia/North",
                    "Australia/Perth",
                    "Australia/Queensland",
                    "Australia/South",
                    "Australia/Sydney",
                    "Australia/Tasmania",
                    "Australia/Victoria",
                    "Australia/West",
                    "Australia/Yancowinna",
                    "Brazil/Acre",
                    "Brazil/DeNoronha",
                    "Brazil/East",
                    "Brazil/West",
                    "CET",
                    "CST6CDT",
                    "Canada/Atlantic",
                    "Canada/Central",
                    "Canada/Eastern",
                    "Canada/Mountain",
                    "Canada/Newfoundland",
                    "Canada/Pacific",
                    "Canada/Saskatchewan",
                    "Canada/Yukon",
                    "Chile/Continental",
                    "Chile/EasterIsland",
                    "Cuba",
                    "EET",
                    "EST",
                    "EST5EDT",
                    "Egypt",
                    "Eire",
                    "Etc/GMT",
                    "Etc/GMT+0",
                    "Etc/GMT+1",
                    "Etc/GMT+10",
                    "Etc/GMT+11",
                    "Etc/GMT+12",
                    "Etc/GMT+2",
                    "Etc/GMT+3",
                    "Etc/GMT+4",
                    "Etc/GMT+5",
                    "Etc/GMT+6",
                    "Etc/GMT+7",
                    "Etc/GMT+8",
                    "Etc/GMT+9",
                    "Etc/GMT-0",
                    "Etc/GMT-1",
                    "Etc/GMT-10",
                    "Etc/GMT-11",
                    "Etc/GMT-12",
                    "Etc/GMT-13",
                    "Etc/GMT-14",
                    "Etc/GMT-2",
                    "Etc/GMT-3",
                    "Etc/GMT-4",
                    "Etc/GMT-5",
                    "Etc/GMT-6",
                    "Etc/GMT-7",
                    "Etc/GMT-8",
                    "Etc/GMT-9",
                    "Etc/GMT0",
                    "Etc/Greenwich",
                    "Etc/UCT",
                    "Etc/UTC",
                    "Etc/Universal",
                    "Etc/Zulu",
                    "Europe/Amsterdam",
                    "Europe/Andorra",
                    "Europe/Astrakhan",
                    "Europe/Athens",
                    "Europe/Belfast",
                    "Europe/Belgrade",
                    "Europe/Berlin",
                    "Europe/Bratislava",
                    "Europe/Brussels",
                    "Europe/Bucharest",
                    "Europe/Budapest",
                    "Europe/Busingen",
                    "Europe/Chisinau",
                    "Europe/Copenhagen",
                    "Europe/Dublin",
                    "Europe/Gibraltar",
                    "Europe/Guernsey",
                    "Europe/Helsinki",
                    "Europe/Isle_of_Man",
                    "Europe/Istanbul",
                    "Europe/Jersey",
                    "Europe/Kaliningrad",
                    "Europe/Kiev",
                    "Europe/Kirov",
                    "Europe/Kyiv",
                    "Europe/Lisbon",
                    "Europe/Ljubljana",
                    "Europe/London",
                    "Europe/Luxembourg",
                    "Europe/Madrid",
                    "Europe/Malta",
                    "Europe/Mariehamn",
                    "Europe/Minsk",
                    "Europe/Monaco",
                    "Europe/Moscow",
                    "Europe/Nicosia",
                    "Europe/Oslo",
                    "Europe/Paris",
                    "Europe/Podgorica",
                    "Europe/Prague",
                    "Europe/Riga",
                    "Europe/Rome",
                    "Europe/Samara",
                    "Europe/San_Marino",
                    "Europe/Sarajevo",
                    "Europe/Saratov",
                    "Europe/Simferopol",
                    "Europe/Skopje",
                    "Europe/Sofia",
                    "Europe/Stockholm",
                    "Europe/Tallinn",
                    "Europe/Tirane",
                    "Europe/Tiraspol",
                    "Europe/Ulyanovsk",
                    "Europe/Uzhgorod",
                    "Europe/Vaduz",
                    "Europe/Vatican",
                    "Europe/Vienna",
                    "Europe/Vilnius",
                    "Europe/Volgograd",
                    "Europe/Warsaw",
                    "Europe/Zagreb",
                    "Europe/Zaporozhye",
                    "Europe/Zurich",
                    "GB",
                    "GB-Eire",
                    "GMT",
                    "GMT+0",
                    "GMT-0",
                    "GMT0",
                    "Greenwich",
                    "HST",
                    "Hongkong",
                    "Iceland",
                    "Indian/Antananarivo",
                    "Indian/Chagos",
                    "Indian/Christmas",
                    "Indian/Cocos",
                    "Indian/Comoro",
                    "Indian/Kerguelen",
                    "Indian/Mahe",
                    "Indian/Maldives",
                    "Indian/Mauritius",
                    "Indian/Mayotte",
                    "Indian/Reunion",
                    "Iran",
                    "Israel",
                    "Jamaica",
                    "Japan",
                    "Kwajalein",
                    "Libya",
                    "MET",
                    "MST",
                    "MST7MDT",
                    "Mexico/BajaNorte",
                    "Mexico/BajaSur",
                    "Mexico/General",
                    "NZ",
                    "NZ-CHAT",
                    "Navajo",
                    "PRC",
                    "PST8PDT",
                    "Pacific/Apia",
                    "Pacific/Auckland",
                    "Pacific/Bougainville",
                    "Pacific/Chatham",
                    "Pacific/Chuuk",
                    "Pacific/Easter",
                    "Pacific/Efate",
                    "Pacific/Enderbury",
                    "Pacific/Fakaofo",
                    "Pacific/Fiji",
                    "Pacific/Funafuti",
                    "Pacific/Galapagos",
                    "Pacific/Gambier",
                    "Pacific/Guadalcanal",
                    "Pacific/Guam",
                    "Pacific/Honolulu",
                    "Pacific/Johnston",
                    "Pacific/Kanton",
                    "Pacific/Kiritimati",
                    "Pacific/Kosrae",
                    "Pacific/Kwajalein",
                    "Pacific/Majuro",
                    "Pacific/Marquesas",
                    "Pacific/Midway",
                    "Pacific/Nauru",
                    "Pacific/Niue",
                    "Pacific/Norfolk",
                    "Pacific/Noumea",
                    "Pacific/Pago_Pago",
                    "Pacific/Palau",
                    "Pacific/Pitcairn",
                    "Pacific/Pohnpei",
                    "Pacific/Ponape",
                    "Pacific/Port_Moresby",
                    "Pacific/Rarotonga",
                    "Pacific/Saipan",
                    "Pacific/Samoa",
                    "Pacific/Tahiti",
                    "Pacific/Tarawa",
                    "Pacific/Tongatapu",
                    "Pacific/Truk",
                    "Pacific/Wake",
                    "Pacific/Wallis",
                    "Pacific/Yap",
                    "Poland",
                    "Portugal",
                    "ROC",
                    "ROK",
                    "Singapore",
                    "Turkey",
                    "UCT",
                    "US/Alaska",
                    "US/Aleutian",
                    "US/Arizona",
                    "US/Central",
                    "US/East-Indiana",
                    "US/Eastern",
                    "US/Hawaii",
                    "US/Indiana-Starke",
                    "US/Michigan",
                    "US/Mountain",
                    "US/Pacific",
                    "US/Samoa",
                    "UTC",
                    "Universal",
                    "W-SU",
                    "WET",
                    "Zulu"
                ]
            }
        ]
    },
    "Parse IP range": {
        "module": "Default",
        "description": "Given a CIDR range (e.g. <code>10.0.0.0/24</code>), hyphenated range (e.g. <code>10.0.0.0 - 10.0.1.0</code>), or a list of IPs and/or CIDR ranges (separated by a new line), this operation provides network information and enumerates all IP addresses in the range.<br><br>IPv6 is supported but will not be enumerated.",
        "infoURL": "https://wikipedia.org/wiki/Subnetwork",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Include network info",
                "type": "boolean",
                "value": true
            },
            {
                "name": "Enumerate IP addresses",
                "type": "boolean",
                "value": true
            },
            {
                "name": "Allow large queries",
                "type": "boolean",
                "value": false
            }
        ]
    },
    "Parse IPv4 header": {
        "module": "Default",
        "description": "Given an IPv4 header, this operations parses and displays each field in an easily readable format.",
        "infoURL": "https://wikipedia.org/wiki/IPv4#Header",
        "inputType": "string",
        "outputType": "html",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Input format",
                "type": "option",
                "value": [
                    "Hex",
                    "Raw"
                ]
            }
        ]
    },
    "Parse IPv6 address": {
        "module": "Default",
        "description": "Displays the longhand and shorthand versions of a valid IPv6 address.<br><br>Recognises all reserved ranges and parses encapsulated or tunnelled addresses including Teredo and 6to4.",
        "infoURL": "https://wikipedia.org/wiki/IPv6_address",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": []
    },
    "Parse ObjectID timestamp": {
        "module": "Serialise",
        "description": "Parse timestamp from MongoDB/BSON ObjectID hex string.",
        "infoURL": "https://docs.mongodb.com/manual/reference/method/ObjectId.getTimestamp/",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": []
    },
    "Parse QR Code": {
        "module": "Image",
        "description": "Reads an image file and attempts to detect and read a Quick Response (QR) code from the image.<br><br><u>Normalise Image</u><br>Attempts to normalise the image before parsing it to improve detection of a QR code.",
        "infoURL": "https://wikipedia.org/wiki/QR_code",
        "inputType": "ArrayBuffer",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Normalise image",
                "type": "boolean",
                "value": false
            }
        ],
        "checks": [
            {
                "pattern": "^(?:\\xff\\xd8\\xff|\\x89\\x50\\x4e\\x47|\\x47\\x49\\x46|.{8}\\x57\\x45\\x42\\x50|\\x42\\x4d)",
                "flags": "",
                "args": [
                    false
                ],
                "useful": true
            }
        ]
    },
    "Parse SSH Host Key": {
        "module": "Default",
        "description": "Parses a SSH host key and extracts fields from it.<br>The key type can be:<ul><li>ssh-rsa</li><li>ssh-dss</li><li>ecdsa-sha2</li><li>ssh-ed25519</li></ul>The key format can be either Hex or Base64.",
        "infoURL": "https://wikipedia.org/wiki/Secure_Shell",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Input Format",
                "type": "option",
                "value": [
                    "Auto",
                    "Base64",
                    "Hex"
                ]
            }
        ],
        "checks": [
            {
                "pattern": "^\\s*([A-F\\d]{2}[,;:]){15,}[A-F\\d]{2}\\s*$",
                "flags": "i",
                "args": [
                    "Hex"
                ]
            }
        ]
    },
    "Parse TCP": {
        "module": "Default",
        "description": "Parses a TCP header and payload (if present).",
        "infoURL": "https://wikipedia.org/wiki/Transmission_Control_Protocol",
        "inputType": "string",
        "outputType": "html",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Input format",
                "type": "option",
                "value": [
                    "Hex",
                    "Raw"
                ]
            }
        ]
    },
    "Parse TLV": {
        "module": "Default",
        "description": "Converts a Type-Length-Value (TLV) encoded string into a JSON object.  Can optionally include a <code>Key</code> / <code>Type</code> entry. <br><br>Tags: Key-Length-Value, KLV, Length-Value, LV",
        "infoURL": "https://wikipedia.org/wiki/Type-length-value",
        "inputType": "ArrayBuffer",
        "outputType": "JSON",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Type/Key size",
                "type": "number",
                "value": 1
            },
            {
                "name": "Length size",
                "type": "number",
                "value": 1
            },
            {
                "name": "Use BER",
                "type": "boolean",
                "value": false
            }
        ]
    },
    "Parse UDP": {
        "module": "Default",
        "description": "Parses a UDP header and payload (if present).",
        "infoURL": "https://wikipedia.org/wiki/User_Datagram_Protocol",
        "inputType": "string",
        "outputType": "html",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Input format",
                "type": "option",
                "value": [
                    "Hex",
                    "Raw"
                ]
            }
        ]
    },
    "Parse UNIX file permissions": {
        "module": "Default",
        "description": "Given a UNIX/Linux file permission string in octal or textual format, this operation explains which permissions are granted to which user groups.<br><br>Input should be in either octal (e.g. <code>755</code>) or textual (e.g. <code>drwxr-xr-x</code>) format.",
        "infoURL": "https://wikipedia.org/wiki/File_system_permissions#Traditional_Unix_permissions",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [],
        "checks": [
            {
                "pattern": "^\\s*d[rxw-]{9}\\s*$",
                "flags": "",
                "args": []
            }
        ]
    },
    "Parse URI": {
        "module": "URL",
        "description": "Pretty prints complicated Uniform Resource Identifier (URI) strings for ease of reading. Particularly useful for Uniform Resource Locators (URLs) with a lot of arguments.",
        "infoURL": "https://wikipedia.org/wiki/Uniform_Resource_Identifier",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": []
    },
    "Parse User Agent": {
        "module": "UserAgent",
        "description": "Attempts to identify and categorise information contained in a user-agent string.",
        "infoURL": "https://wikipedia.org/wiki/User_agent",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [],
        "checks": [
            {
                "pattern": "^(User-Agent:|Mozilla\\/)[^\\n\\r]+\\s*$",
                "flags": "i",
                "args": []
            }
        ]
    },
    "Parse X.509 certificate": {
        "module": "PublicKey",
        "description": "X.509 is an ITU-T standard for a public key infrastructure (PKI) and Privilege Management Infrastructure (PMI). It is commonly involved with SSL/TLS security.<br><br>This operation displays the contents of a certificate in a human readable format, similar to the openssl command line tool.<br><br>Tags: X509, server hello, handshake",
        "infoURL": "https://wikipedia.org/wiki/X.509",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Input format",
                "type": "option",
                "value": [
                    "PEM",
                    "DER Hex",
                    "Base64",
                    "Raw"
                ]
            }
        ],
        "checks": [
            {
                "pattern": "^-+BEGIN CERTIFICATE-+\\r?\\n[\\da-z+/\\n\\r]+-+END CERTIFICATE-+\\r?\\n?$",
                "flags": "i",
                "args": [
                    "PEM"
                ]
            }
        ]
    },
    "Play Media": {
        "module": "Default",
        "description": "Plays the input as audio or video depending on the type.<br><br>Tags: sound, movie, mp3, mp4, mov, webm, wav, ogg",
        "infoURL": "",
        "inputType": "string",
        "outputType": "html",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Input format",
                "type": "option",
                "value": [
                    "Raw",
                    "Base64",
                    "Hex"
                ]
            }
        ]
    },
    "Power Set": {
        "module": "Default",
        "description": "Calculates all the subsets of a set.",
        "infoURL": "https://wikipedia.org/wiki/Power_set",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Item delimiter",
                "type": "binaryString",
                "value": ","
            }
        ]
    },
    "Protobuf Decode": {
        "module": "Protobuf",
        "description": "Decodes any Protobuf encoded data to a JSON representation of the data using the field number as the field key.<br><br>If a .proto schema is defined, the encoded data will be decoded with reference to the schema. Only one message instance will be decoded. <br><br><u>Show Unknown Fields</u><br>When a schema is used, this option shows fields that are present in the input data but not defined in the schema.<br><br><u>Show Types</u><br>Show the type of a field next to its name. For undefined fields, the wiretype and example types are shown instead.",
        "infoURL": "https://wikipedia.org/wiki/Protocol_Buffers",
        "inputType": "ArrayBuffer",
        "outputType": "JSON",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Schema (.proto text)",
                "type": "text",
                "value": "",
                "hint": "Drag and drop is enabled on this ingredient",
                "rows": 8
            },
            {
                "name": "Show Unknown Fields",
                "type": "boolean",
                "value": false
            },
            {
                "name": "Show Types",
                "type": "boolean",
                "value": false
            }
        ]
    },
    "Protobuf Encode": {
        "module": "Protobuf",
        "description": "Encodes a valid JSON object into a protobuf byte array using the input .proto schema.",
        "infoURL": "https://developers.google.com/protocol-buffers/docs/encoding",
        "inputType": "JSON",
        "outputType": "ArrayBuffer",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Schema (.proto text)",
                "type": "text",
                "value": "",
                "hint": "Drag and drop is enabled on this ingredient",
                "rows": 8
            }
        ]
    },
    "Pseudo-Random Number Generator": {
        "module": "Ciphers",
        "description": "A cryptographically-secure pseudo-random number generator (PRNG).<br><br>This operation uses the browser's built-in <code>crypto.getRandomValues()</code> method if available. If this cannot be found, it falls back to a Fortuna-based PRNG algorithm.",
        "infoURL": "https://wikipedia.org/wiki/Pseudorandom_number_generator",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Number of bytes",
                "type": "number",
                "value": 32
            },
            {
                "name": "Output as",
                "type": "option",
                "value": [
                    "Hex",
                    "Integer",
                    "Byte array",
                    "Raw"
                ]
            }
        ]
    },
    "RC2 Decrypt": {
        "module": "Ciphers",
        "description": "RC2 (also known as ARC2) is a symmetric-key block cipher designed by Ron Rivest in 1987. 'RC' stands for 'Rivest Cipher'.<br><br><b>Key:</b> RC2 uses a variable size key.<br><br><b>IV:</b> To run the cipher in CBC mode, the Initialization Vector should be 8 bytes long. If the IV is left blank, the cipher will run in ECB mode.<br><br><b>Padding:</b> In both CBC and ECB mode, PKCS#7 padding will be used.",
        "infoURL": "https://wikipedia.org/wiki/RC2",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Key",
                "type": "toggleString",
                "value": "",
                "toggleValues": [
                    "Hex",
                    "UTF8",
                    "Latin1",
                    "Base64"
                ]
            },
            {
                "name": "IV",
                "type": "toggleString",
                "value": "",
                "toggleValues": [
                    "Hex",
                    "UTF8",
                    "Latin1",
                    "Base64"
                ]
            },
            {
                "name": "Input",
                "type": "option",
                "value": [
                    "Hex",
                    "Raw"
                ]
            },
            {
                "name": "Output",
                "type": "option",
                "value": [
                    "Raw",
                    "Hex"
                ]
            }
        ]
    },
    "RC2 Encrypt": {
        "module": "Ciphers",
        "description": "RC2 (also known as ARC2) is a symmetric-key block cipher designed by Ron Rivest in 1987. 'RC' stands for 'Rivest Cipher'.<br><br><b>Key:</b> RC2 uses a variable size key.<br><br>You can generate a password-based key using one of the KDF operations.<br><br><b>IV:</b> To run the cipher in CBC mode, the Initialization Vector should be 8 bytes long. If the IV is left blank, the cipher will run in ECB mode.<br><br><b>Padding:</b> In both CBC and ECB mode, PKCS#7 padding will be used.",
        "infoURL": "https://wikipedia.org/wiki/RC2",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Key",
                "type": "toggleString",
                "value": "",
                "toggleValues": [
                    "Hex",
                    "UTF8",
                    "Latin1",
                    "Base64"
                ]
            },
            {
                "name": "IV",
                "type": "toggleString",
                "value": "",
                "toggleValues": [
                    "Hex",
                    "UTF8",
                    "Latin1",
                    "Base64"
                ]
            },
            {
                "name": "Input",
                "type": "option",
                "value": [
                    "Raw",
                    "Hex"
                ]
            },
            {
                "name": "Output",
                "type": "option",
                "value": [
                    "Hex",
                    "Raw"
                ]
            }
        ]
    },
    "RC4": {
        "module": "Ciphers",
        "description": "RC4 (also known as ARC4) is a widely-used stream cipher designed by Ron Rivest. It is used in popular protocols such as SSL and WEP. Although remarkable for its simplicity and speed, the algorithm's history doesn't inspire confidence in its security.",
        "infoURL": "https://wikipedia.org/wiki/RC4",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Passphrase",
                "type": "toggleString",
                "value": "",
                "toggleValues": [
                    "UTF8",
                    "UTF16",
                    "UTF16LE",
                    "UTF16BE",
                    "Latin1",
                    "Hex",
                    "Base64"
                ]
            },
            {
                "name": "Input format",
                "type": "option",
                "value": [
                    "Latin1",
                    "UTF8",
                    "UTF16",
                    "UTF16LE",
                    "UTF16BE",
                    "Hex",
                    "Base64"
                ]
            },
            {
                "name": "Output format",
                "type": "option",
                "value": [
                    "Latin1",
                    "UTF8",
                    "UTF16",
                    "UTF16LE",
                    "UTF16BE",
                    "Hex",
                    "Base64"
                ]
            }
        ]
    },
    "RC4 Drop": {
        "module": "Ciphers",
        "description": "It was discovered that the first few bytes of the RC4 keystream are strongly non-random and leak information about the key. We can defend against this attack by discarding the initial portion of the keystream. This modified algorithm is traditionally called RC4-drop.",
        "infoURL": "https://wikipedia.org/wiki/RC4#Fluhrer,_Mantin_and_Shamir_attack",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Passphrase",
                "type": "toggleString",
                "value": "",
                "toggleValues": [
                    "UTF8",
                    "UTF16",
                    "UTF16LE",
                    "UTF16BE",
                    "Latin1",
                    "Hex",
                    "Base64"
                ]
            },
            {
                "name": "Input format",
                "type": "option",
                "value": [
                    "Latin1",
                    "UTF8",
                    "UTF16",
                    "UTF16LE",
                    "UTF16BE",
                    "Hex",
                    "Base64"
                ]
            },
            {
                "name": "Output format",
                "type": "option",
                "value": [
                    "Latin1",
                    "UTF8",
                    "UTF16",
                    "UTF16LE",
                    "UTF16BE",
                    "Hex",
                    "Base64"
                ]
            },
            {
                "name": "Number of dwords to drop",
                "type": "number",
                "value": 192
            }
        ]
    },
    "RIPEMD": {
        "module": "Crypto",
        "description": "RIPEMD (RACE Integrity Primitives Evaluation Message Digest) is a family of cryptographic hash functions developed in Leuven, Belgium, by Hans Dobbertin, Antoon Bosselaers and Bart Preneel at the COSIC research group at the Katholieke Universiteit Leuven, and first published in 1996.<br><br>RIPEMD was based upon the design principles used in MD4, and is similar in performance to the more popular SHA-1.<br><br>",
        "infoURL": "https://wikipedia.org/wiki/RIPEMD",
        "inputType": "ArrayBuffer",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Size",
                "type": "option",
                "value": [
                    "320",
                    "256",
                    "160",
                    "128"
                ]
            }
        ]
    },
    "ROT13": {
        "module": "Default",
        "description": "A simple caesar substitution cipher which rotates alphabet characters by the specified amount (default 13).",
        "infoURL": "https://wikipedia.org/wiki/ROT13",
        "inputType": "byteArray",
        "outputType": "byteArray",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Rotate lower case chars",
                "type": "boolean",
                "value": true
            },
            {
                "name": "Rotate upper case chars",
                "type": "boolean",
                "value": true
            },
            {
                "name": "Rotate numbers",
                "type": "boolean",
                "value": false
            },
            {
                "name": "Amount",
                "type": "number",
                "value": 13
            }
        ]
    },
    "ROT13 Brute Force": {
        "module": "Default",
        "description": "Try all meaningful amounts for ROT13.<br><br>Optionally you can enter your known plaintext (crib) to filter the result.",
        "infoURL": "https://wikipedia.org/wiki/ROT13",
        "inputType": "byteArray",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Rotate lower case chars",
                "type": "boolean",
                "value": true
            },
            {
                "name": "Rotate upper case chars",
                "type": "boolean",
                "value": true
            },
            {
                "name": "Rotate numbers",
                "type": "boolean",
                "value": false
            },
            {
                "name": "Sample length",
                "type": "number",
                "value": 100
            },
            {
                "name": "Sample offset",
                "type": "number",
                "value": 0
            },
            {
                "name": "Print amount",
                "type": "boolean",
                "value": true
            },
            {
                "name": "Crib (known plaintext string)",
                "type": "string",
                "value": ""
            }
        ]
    },
    "ROT47": {
        "module": "Default",
        "description": "A slightly more complex variation of a caesar cipher, which includes ASCII characters from 33 '!' to 126 '~'. Default rotation: 47.",
        "infoURL": "https://wikipedia.org/wiki/ROT13#Variants",
        "inputType": "byteArray",
        "outputType": "byteArray",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Amount",
                "type": "number",
                "value": 47
            }
        ]
    },
    "ROT47 Brute Force": {
        "module": "Default",
        "description": "Try all meaningful amounts for ROT47.<br><br>Optionally you can enter your known plaintext (crib) to filter the result.",
        "infoURL": "https://wikipedia.org/wiki/ROT13#Variants",
        "inputType": "byteArray",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Sample length",
                "type": "number",
                "value": 100
            },
            {
                "name": "Sample offset",
                "type": "number",
                "value": 0
            },
            {
                "name": "Print amount",
                "type": "boolean",
                "value": true
            },
            {
                "name": "Crib (known plaintext string)",
                "type": "string",
                "value": ""
            }
        ]
    },
    "ROT8000": {
        "module": "Default",
        "description": "The simple Caesar-cypher encryption that replaces each Unicode character with the one 0x8000 places forward or back along the alphabet.",
        "infoURL": "https://rot8000.com/info",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": []
    },
    "RSA Decrypt": {
        "module": "Ciphers",
        "description": "Decrypt an RSA encrypted message with a PEM encoded private key.",
        "infoURL": "https://wikipedia.org/wiki/RSA_(cryptosystem)",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "RSA Private Key (PEM)",
                "type": "text",
                "value": "-----BEGIN RSA PRIVATE KEY-----"
            },
            {
                "name": "Key Password",
                "type": "text",
                "value": ""
            },
            {
                "name": "Encryption Scheme",
                "type": "argSelector",
                "value": [
                    {
                        "name": "RSA-OAEP",
                        "on": [
                            3
                        ]
                    },
                    {
                        "name": "RSAES-PKCS1-V1_5",
                        "off": [
                            3
                        ]
                    },
                    {
                        "name": "RAW",
                        "off": [
                            3
                        ]
                    }
                ]
            },
            {
                "name": "Message Digest Algorithm",
                "type": "option",
                "value": [
                    "SHA-1",
                    "MD5",
                    "SHA-256",
                    "SHA-384",
                    "SHA-512"
                ]
            }
        ]
    },
    "RSA Encrypt": {
        "module": "Ciphers",
        "description": "Encrypt a message with a PEM encoded RSA public key.",
        "infoURL": "https://wikipedia.org/wiki/RSA_(cryptosystem)",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "RSA Public Key (PEM)",
                "type": "text",
                "value": "-----BEGIN RSA PUBLIC KEY-----"
            },
            {
                "name": "Encryption Scheme",
                "type": "argSelector",
                "value": [
                    {
                        "name": "RSA-OAEP",
                        "on": [
                            2
                        ]
                    },
                    {
                        "name": "RSAES-PKCS1-V1_5",
                        "off": [
                            2
                        ]
                    },
                    {
                        "name": "RAW",
                        "off": [
                            2
                        ]
                    }
                ]
            },
            {
                "name": "Message Digest Algorithm",
                "type": "option",
                "value": [
                    "SHA-1",
                    "MD5",
                    "SHA-256",
                    "SHA-384",
                    "SHA-512"
                ]
            }
        ]
    },
    "RSA Sign": {
        "module": "Ciphers",
        "description": "Sign a plaintext message with a PEM encoded RSA key.",
        "infoURL": "https://wikipedia.org/wiki/RSA_(cryptosystem)",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "RSA Private Key (PEM)",
                "type": "text",
                "value": "-----BEGIN RSA PRIVATE KEY-----"
            },
            {
                "name": "Key Password",
                "type": "text",
                "value": ""
            },
            {
                "name": "Message Digest Algorithm",
                "type": "option",
                "value": [
                    "SHA-1",
                    "MD5",
                    "SHA-256",
                    "SHA-384",
                    "SHA-512"
                ]
            }
        ]
    },
    "RSA Verify": {
        "module": "Ciphers",
        "description": "Verify a message against a signature and a public PEM encoded RSA key.",
        "infoURL": "https://wikipedia.org/wiki/RSA_(cryptosystem)",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "RSA Public Key (PEM)",
                "type": "text",
                "value": "-----BEGIN RSA PUBLIC KEY-----"
            },
            {
                "name": "Message",
                "type": "text",
                "value": ""
            },
            {
                "name": "Message Digest Algorithm",
                "type": "option",
                "value": [
                    "SHA-1",
                    "MD5",
                    "SHA-256",
                    "SHA-384",
                    "SHA-512"
                ]
            }
        ]
    },
    "Rabbit": {
        "module": "Ciphers",
        "description": "Rabbit is a high-speed stream cipher introduced in 2003 and defined in RFC 4503.<br><br>The cipher uses a 128-bit key and an optional 64-bit initialization vector (IV).<br><br>big-endian: based on RFC4503 and RFC3447<br>little-endian: compatible with Crypto++",
        "infoURL": "https://wikipedia.org/wiki/Rabbit_(cipher)",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Key",
                "type": "toggleString",
                "value": "",
                "toggleValues": [
                    "Hex",
                    "UTF8",
                    "Latin1",
                    "Base64"
                ]
            },
            {
                "name": "IV",
                "type": "toggleString",
                "value": "",
                "toggleValues": [
                    "Hex",
                    "UTF8",
                    "Latin1",
                    "Base64"
                ]
            },
            {
                "name": "Endianness",
                "type": "option",
                "value": [
                    "Big",
                    "Little"
                ]
            },
            {
                "name": "Input",
                "type": "option",
                "value": [
                    "Raw",
                    "Hex"
                ]
            },
            {
                "name": "Output",
                "type": "option",
                "value": [
                    "Raw",
                    "Hex"
                ]
            }
        ]
    },
    "Rail Fence Cipher Decode": {
        "module": "Ciphers",
        "description": "Decodes Strings that were created using the Rail fence Cipher provided a key and an offset",
        "infoURL": "https://wikipedia.org/wiki/Rail_fence_cipher",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Key",
                "type": "number",
                "value": 2
            },
            {
                "name": "Offset",
                "type": "number",
                "value": 0
            }
        ]
    },
    "Rail Fence Cipher Encode": {
        "module": "Ciphers",
        "description": "Encodes Strings using the Rail fence Cipher provided a key and an offset",
        "infoURL": "https://wikipedia.org/wiki/Rail_fence_cipher",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Key",
                "type": "number",
                "value": 2
            },
            {
                "name": "Offset",
                "type": "number",
                "value": 0
            }
        ]
    },
    "Randomize Colour Palette": {
        "module": "Image",
        "description": "Randomizes each colour in an image's colour palette. This can often reveal text or symbols that were previously a very similar colour to their surroundings, a technique sometimes used in Steganography.",
        "infoURL": "https://wikipedia.org/wiki/Indexed_color",
        "inputType": "ArrayBuffer",
        "outputType": "html",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Seed",
                "type": "string",
                "value": ""
            }
        ]
    },
    "Raw Deflate": {
        "module": "Compression",
        "description": "Compresses data using the deflate algorithm with no headers.",
        "infoURL": "https://wikipedia.org/wiki/DEFLATE",
        "inputType": "ArrayBuffer",
        "outputType": "ArrayBuffer",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Compression type",
                "type": "option",
                "value": [
                    "Dynamic Huffman Coding",
                    "Fixed Huffman Coding",
                    "None (Store)"
                ]
            }
        ]
    },
    "Raw Inflate": {
        "module": "Compression",
        "description": "Decompresses data which has been compressed using the deflate algorithm with no headers.",
        "infoURL": "https://wikipedia.org/wiki/DEFLATE",
        "inputType": "ArrayBuffer",
        "outputType": "ArrayBuffer",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Start index",
                "type": "number",
                "value": 0
            },
            {
                "name": "Initial output buffer size",
                "type": "number",
                "value": 0
            },
            {
                "name": "Buffer expansion type",
                "type": "option",
                "value": [
                    "Adaptive",
                    "Block"
                ]
            },
            {
                "name": "Resize buffer after decompression",
                "type": "boolean",
                "value": false
            },
            {
                "name": "Verify result",
                "type": "boolean",
                "value": false
            }
        ],
        "checks": [
            {
                "entropyRange": [
                    7.5,
                    8
                ],
                "args": [
                    0,
                    0,
                    [
                        "Adaptive",
                        "Block"
                    ],
                    false,
                    false
                ]
            }
        ]
    },
    "Register": {
        "module": "Regex",
        "description": "Extract data from the input and store it in registers which can then be passed into subsequent operations as arguments. Regular expression capture groups are used to select the data to extract.<br><br>To use registers in arguments, refer to them using the notation <code>$Rn</code> where n is the register number, starting at 0.<br><br>For example:<br>Input: <code>Test</code><br>Extractor: <code>(.*)</code><br>Argument: <code>$R0</code> becomes <code>Test</code><br><br>Registers can be escaped in arguments using a backslash. e.g. <code>\\$R0</code> would become <code>$R0</code> rather than <code>Test</code>.",
        "infoURL": "https://wikipedia.org/wiki/Regular_expression#Syntax",
        "inputType": "string",
        "outputType": "string",
        "flowControl": true,
        "manualBake": false,
        "args": [
            {
                "name": "Extractor",
                "type": "binaryString",
                "value": "([\\s\\S]*)"
            },
            {
                "name": "Case insensitive",
                "type": "boolean",
                "value": true
            },
            {
                "name": "Multiline matching",
                "type": "boolean",
                "value": false
            },
            {
                "name": "Dot matches all",
                "type": "boolean",
                "value": false
            }
        ]
    },
    "Regular expression": {
        "module": "Regex",
        "description": "Define your own regular expression (regex) to search the input data with, optionally choosing from a list of pre-defined patterns.<br><br>Supports extended regex syntax including the 'dot matches all' flag, named capture groups, full unicode coverage (including <code>\\p{}</code> categories and scripts as well as astral codes) and recursive matching.",
        "infoURL": "https://wikipedia.org/wiki/Regular_expression",
        "inputType": "string",
        "outputType": "html",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Built in regexes",
                "type": "populateOption",
                "value": [
                    {
                        "name": "User defined",
                        "value": ""
                    },
                    {
                        "name": "IPv4 address",
                        "value": "(?:(?:\\d|[01]?\\d\\d|2[0-4]\\d|25[0-5])\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d|\\d)(?:\\/\\d{1,2})?"
                    },
                    {
                        "name": "IPv6 address",
                        "value": "((?=.*::)(?!.*::.+::)(::)?([\\dA-Fa-f]{1,4}:(:|\\b)|){5}|([\\dA-Fa-f]{1,4}:){6})((([\\dA-Fa-f]{1,4}((?!\\3)::|:\\b|(?![\\dA-Fa-f])))|(?!\\2\\3)){2}|(((2[0-4]|1\\d|[1-9])?\\d|25[0-5])\\.?\\b){4})"
                    },
                    {
                        "name": "Email address",
                        "value": "(?:[\\u00A0-\\uD7FF\\uE000-\\uFFFFa-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[\\u00A0-\\uD7FF\\uE000-\\uFFFFa-z0-9!#$%&'*+/=?^_`{|}~-]+)*|\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\x7f]|\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*\")@(?:(?:[\\u00A0-\\uD7FF\\uE000-\\uFFFFa-z0-9](?:[\\u00A0-\\uD7FF\\uE000-\\uFFFF-a-z0-9-]*[\\u00A0-\\uD7FF\\uE000-\\uFFFFa-z0-9])?\\.)+[\\u00A0-\\uD7FF\\uE000-\\uFFFFa-z0-9](?:[\\u00A0-\\uD7FF\\uE000-\\uFFFFa-z0-9-]*[\\u00A0-\\uD7FF\\uE000-\\uFFFFa-z0-9])?|\\[(?:(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9]))\\.){3}\\])"
                    },
                    {
                        "name": "URL",
                        "value": "([A-Za-z]+://)([-\\w]+(?:\\.\\w[-\\w]*)+)(:\\d+)?(/[^.!,?\"<>\\[\\]{}\\s\\x7F-\\xFF]*(?:[.!,?]+[^.!,?\"<>\\[\\]{}\\s\\x7F-\\xFF]+)*)?"
                    },
                    {
                        "name": "Domain",
                        "value": "\\b((?=[a-z0-9-]{1,63}\\.)(xn--)?[a-z0-9]+(-[a-z0-9]+)*\\.)+[a-z]{2,63}\\b"
                    },
                    {
                        "name": "Windows file path",
                        "value": "([A-Za-z]):\\\\((?:[A-Za-z\\d][A-Za-z\\d\\- \\x27_\\(\\)~]{0,61}\\\\?)*[A-Za-z\\d][A-Za-z\\d\\- \\x27_\\(\\)]{0,61})(\\.[A-Za-z\\d]{1,6})?"
                    },
                    {
                        "name": "UNIX file path",
                        "value": "(?:/[A-Za-z\\d.][A-Za-z\\d\\-.]{0,61})+"
                    },
                    {
                        "name": "MAC address",
                        "value": "[A-Fa-f\\d]{2}(?:[:-][A-Fa-f\\d]{2}){5}"
                    },
                    {
                        "name": "Date (yyyy-mm-dd)",
                        "value": "((?:19|20)\\d\\d)[- /.](0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])"
                    },
                    {
                        "name": "Date (dd/mm/yyyy)",
                        "value": "(0[1-9]|[12][0-9]|3[01])[- /.](0[1-9]|1[012])[- /.]((?:19|20)\\d\\d)"
                    },
                    {
                        "name": "Date (mm/dd/yyyy)",
                        "value": "(0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])[- /.]((?:19|20)\\d\\d)"
                    },
                    {
                        "name": "Strings",
                        "value": "[A-Za-z\\d/\\-:.,_$%\\x27\"()<>= !\\[\\]{}@]{4,}"
                    }
                ],
                "target": 1
            },
            {
                "name": "Regex",
                "type": "text",
                "value": ""
            },
            {
                "name": "Case insensitive",
                "type": "boolean",
                "value": true
            },
            {
                "name": "^ and $ match at newlines",
                "type": "boolean",
                "value": true
            },
            {
                "name": "Dot matches all",
                "type": "boolean",
                "value": false
            },
            {
                "name": "Unicode support",
                "type": "boolean",
                "value": false
            },
            {
                "name": "Astral support",
                "type": "boolean",
                "value": false
            },
            {
                "name": "Display total",
                "type": "boolean",
                "value": false
            },
            {
                "name": "Output format",
                "type": "option",
                "value": [
                    "Highlight matches",
                    "List matches",
                    "List capture groups",
                    "List matches with capture groups"
                ]
            }
        ]
    },
    "Remove Diacritics": {
        "module": "Default",
        "description": "Replaces accented characters with their latin character equivalent. Accented characters are made up of Unicode combining characters, so unicode text formatting such as strikethroughs and underlines will also be removed.",
        "infoURL": "https://wikipedia.org/wiki/Diacritic",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": []
    },
    "Remove EXIF": {
        "module": "Image",
        "description": "Removes EXIF data from a JPEG image.\n<br><br>\nEXIF data embedded in photos usually contains information about the image file itself as well as the device used to create it.",
        "infoURL": "https://wikipedia.org/wiki/Exif",
        "inputType": "ArrayBuffer",
        "outputType": "byteArray",
        "flowControl": false,
        "manualBake": false,
        "args": []
    },
    "Remove line numbers": {
        "module": "Default",
        "description": "Removes line numbers from the output if they can be trivially detected.",
        "infoURL": null,
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": []
    },
    "Remove null bytes": {
        "module": "Default",
        "description": "Removes all null bytes (<code>0x00</code>) from the input.",
        "infoURL": null,
        "inputType": "ArrayBuffer",
        "outputType": "byteArray",
        "flowControl": false,
        "manualBake": false,
        "args": []
    },
    "Remove whitespace": {
        "module": "Default",
        "description": "Optionally removes all spaces, carriage returns, line feeds, tabs and form feeds from the input data.<br><br>This operation also supports the removal of full stops which are sometimes used to represent non-printable bytes in ASCII output.",
        "infoURL": null,
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Spaces",
                "type": "boolean",
                "value": true
            },
            {
                "name": "Carriage returns (\\r)",
                "type": "boolean",
                "value": true
            },
            {
                "name": "Line feeds (\\n)",
                "type": "boolean",
                "value": true
            },
            {
                "name": "Tabs",
                "type": "boolean",
                "value": true
            },
            {
                "name": "Form feeds (\\f)",
                "type": "boolean",
                "value": true
            },
            {
                "name": "Full stops",
                "type": "boolean",
                "value": false
            }
        ]
    },
    "Render Image": {
        "module": "Image",
        "description": "Displays the input as an image. Supports the following formats:<br><br><ul><li>jpg/jpeg</li><li>png</li><li>gif</li><li>webp</li><li>bmp</li><li>ico</li></ul>",
        "infoURL": null,
        "inputType": "string",
        "outputType": "html",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Input format",
                "type": "option",
                "value": [
                    "Raw",
                    "Base64",
                    "Hex"
                ]
            }
        ],
        "checks": [
            {
                "pattern": "^(?:\\xff\\xd8\\xff|\\x89\\x50\\x4e\\x47|\\x47\\x49\\x46|.{8}\\x57\\x45\\x42\\x50|\\x42\\x4d)",
                "flags": "",
                "args": [
                    "Raw"
                ],
                "useful": true,
                "output": {
                    "mime": "image"
                }
            }
        ]
    },
    "Render Markdown": {
        "module": "Code",
        "description": "Renders input Markdown as HTML. HTML rendering is disabled to avoid XSS.",
        "infoURL": "https://wikipedia.org/wiki/Markdown",
        "inputType": "string",
        "outputType": "html",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Autoconvert URLs to links",
                "type": "boolean",
                "value": false
            },
            {
                "name": "Enable syntax highlighting",
                "type": "boolean",
                "value": true
            }
        ]
    },
    "Resize Image": {
        "module": "Image",
        "description": "Resizes an image to the specified width and height values.",
        "infoURL": "https://wikipedia.org/wiki/Image_scaling",
        "inputType": "ArrayBuffer",
        "outputType": "html",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Width",
                "type": "number",
                "value": 100,
                "min": 1
            },
            {
                "name": "Height",
                "type": "number",
                "value": 100,
                "min": 1
            },
            {
                "name": "Unit type",
                "type": "option",
                "value": [
                    "Pixels",
                    "Percent"
                ]
            },
            {
                "name": "Maintain aspect ratio",
                "type": "boolean",
                "value": false
            },
            {
                "name": "Resizing algorithm",
                "type": "option",
                "value": [
                    "Nearest Neighbour",
                    "Bilinear",
                    "Bicubic",
                    "Hermite",
                    "Bezier"
                ],
                "defaultIndex": 1
            }
        ]
    },
    "Return": {
        "module": "Default",
        "description": "End execution of operations at this point in the recipe.",
        "infoURL": null,
        "inputType": "string",
        "outputType": "string",
        "flowControl": true,
        "manualBake": false,
        "args": []
    },
    "Reverse": {
        "module": "Default",
        "description": "Reverses the input string.",
        "infoURL": null,
        "inputType": "byteArray",
        "outputType": "byteArray",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "By",
                "type": "option",
                "value": [
                    "Byte",
                    "Character",
                    "Line"
                ],
                "defaultIndex": 1
            }
        ]
    },
    "Rotate Image": {
        "module": "Image",
        "description": "Rotates an image by the specified number of degrees.",
        "infoURL": "",
        "inputType": "ArrayBuffer",
        "outputType": "html",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Rotation amount (degrees)",
                "type": "number",
                "value": 90
            }
        ]
    },
    "Rotate left": {
        "module": "Default",
        "description": "Rotates each byte to the left by the number of bits specified, optionally carrying the excess bits over to the next byte. Currently only supports 8-bit values.",
        "infoURL": "https://wikipedia.org/wiki/Bitwise_operation#Bit_shifts",
        "inputType": "byteArray",
        "outputType": "byteArray",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Amount",
                "type": "number",
                "value": 1
            },
            {
                "name": "Carry through",
                "type": "boolean",
                "value": false
            }
        ]
    },
    "Rotate right": {
        "module": "Default",
        "description": "Rotates each byte to the right by the number of bits specified, optionally carrying the excess bits over to the next byte. Currently only supports 8-bit values.",
        "infoURL": "https://wikipedia.org/wiki/Bitwise_operation#Bit_shifts",
        "inputType": "byteArray",
        "outputType": "byteArray",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Amount",
                "type": "number",
                "value": 1
            },
            {
                "name": "Carry through",
                "type": "boolean",
                "value": false
            }
        ]
    },
    "SHA0": {
        "module": "Crypto",
        "description": "SHA-0 is a retronym applied to the original version of the 160-bit hash function published in 1993 under the name 'SHA'. It was withdrawn shortly after publication due to an undisclosed 'significant flaw' and replaced by the slightly revised version SHA-1. The message digest algorithm consists, by default, of 80 rounds.",
        "infoURL": "https://wikipedia.org/wiki/SHA-1#SHA-0",
        "inputType": "ArrayBuffer",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Rounds",
                "type": "number",
                "value": 80,
                "min": 16
            }
        ]
    },
    "SHA1": {
        "module": "Crypto",
        "description": "The SHA (Secure Hash Algorithm) hash functions were designed by the NSA. SHA-1 is the most established of the existing SHA hash functions and it is used in a variety of security applications and protocols.<br><br>However, SHA-1's collision resistance has been weakening as new attacks are discovered or improved. The message digest algorithm consists, by default, of 80 rounds.",
        "infoURL": "https://wikipedia.org/wiki/SHA-1",
        "inputType": "ArrayBuffer",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Rounds",
                "type": "number",
                "value": 80,
                "min": 16
            }
        ]
    },
    "SHA2": {
        "module": "Crypto",
        "description": "The SHA-2 (Secure Hash Algorithm 2) hash functions were designed by the NSA. SHA-2 includes significant changes from its predecessor, SHA-1. The SHA-2 family consists of hash functions with digests (hash values) that are 224, 256, 384 or 512 bits: SHA224, SHA256, SHA384, SHA512.<br><br><ul><li>SHA-512 operates on 64-bit words.</li><li>SHA-256 operates on 32-bit words.</li><li>SHA-384 is largely identical to SHA-512 but is truncated to 384 bytes.</li><li>SHA-224 is largely identical to SHA-256 but is truncated to 224 bytes.</li><li>SHA-512/224 and SHA-512/256 are truncated versions of SHA-512, but the initial values are generated using the method described in Federal Information Processing Standards (FIPS) PUB 180-4.</li></ul> The message digest algorithm for SHA256 variants consists, by default, of 64 rounds, and for SHA512 variants, it is, by default, 160.",
        "infoURL": "https://wikipedia.org/wiki/SHA-2",
        "inputType": "ArrayBuffer",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Size",
                "type": "argSelector",
                "value": [
                    {
                        "name": "512",
                        "on": [
                            2
                        ],
                        "off": [
                            1
                        ]
                    },
                    {
                        "name": "384",
                        "on": [
                            2
                        ],
                        "off": [
                            1
                        ]
                    },
                    {
                        "name": "256",
                        "on": [
                            1
                        ],
                        "off": [
                            2
                        ]
                    },
                    {
                        "name": "224",
                        "on": [
                            1
                        ],
                        "off": [
                            2
                        ]
                    },
                    {
                        "name": "512/256",
                        "on": [
                            2
                        ],
                        "off": [
                            1
                        ]
                    },
                    {
                        "name": "512/224",
                        "on": [
                            2
                        ],
                        "off": [
                            1
                        ]
                    }
                ]
            },
            {
                "name": "Rounds",
                "type": "number",
                "value": 64,
                "min": 16
            },
            {
                "name": "Rounds",
                "type": "number",
                "value": 160,
                "min": 32
            }
        ]
    },
    "SHA3": {
        "module": "Crypto",
        "description": "The SHA-3 (Secure Hash Algorithm 3) hash functions were released by NIST on August 5, 2015. Although part of the same series of standards, SHA-3 is internally quite different from the MD5-like structure of SHA-1 and SHA-2.<br><br>SHA-3 is a subset of the broader cryptographic primitive family Keccak designed by Guido Bertoni, Joan Daemen, Michaël Peeters, and Gilles Van Assche, building upon RadioGatún.",
        "infoURL": "https://wikipedia.org/wiki/SHA-3",
        "inputType": "ArrayBuffer",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Size",
                "type": "option",
                "value": [
                    "512",
                    "384",
                    "256",
                    "224"
                ]
            }
        ]
    },
    "SIGABA": {
        "module": "Bletchley",
        "description": "Encipher/decipher with the WW2 SIGABA machine. <br><br>SIGABA, otherwise known as ECM Mark II, was used by the United States for message encryption during WW2 up to the 1950s. It was developed in the 1930s by the US Army and Navy, and has up to this day never been broken. Consisting of 15 rotors: 5 cipher rotors and 10 rotors (5 control rotors and 5 index rotors) controlling the stepping of the cipher rotors, the rotor stepping for SIGABA is much more complex than other rotor machines of its time, such as Enigma. All example rotor wirings are random example sets.<br><br>To configure rotor wirings, for the cipher and control rotors enter a string of letters which map from A to Z, and for the index rotors enter a sequence of numbers which map from 0 to 9. Note that encryption is not the same as decryption, so first choose the desired mode. <br><br> Note: Whilst this has been tested against other software emulators, it has not been tested against hardware.",
        "infoURL": "https://wikipedia.org/wiki/SIGABA",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "1st (left-hand) cipher rotor",
                "type": "editableOption",
                "value": [
                    {
                        "name": "Example 1",
                        "value": "SRGWANHPJZFXVIDQCEUKBYOLMT"
                    },
                    {
                        "name": "Example 2",
                        "value": "THQEFSAZVKJYULBODCPXNIMWRG"
                    },
                    {
                        "name": "Example 3",
                        "value": "XDTUYLEVFNQZBPOGIRCSMHWKAJ"
                    },
                    {
                        "name": "Example 4",
                        "value": "LOHDMCWUPSTNGVXYFJREQIKBZA"
                    },
                    {
                        "name": "Example 5",
                        "value": "ERXWNZQIJYLVOFUMSGHTCKPBDA"
                    },
                    {
                        "name": "Example 6",
                        "value": "FQECYHJIOUMDZVPSLKRTGWXBAN"
                    },
                    {
                        "name": "Example 7",
                        "value": "TBYIUMKZDJSOPEWXVANHLCFQGR"
                    },
                    {
                        "name": "Example 8",
                        "value": "QZUPDTFNYIAOMLEBWJXCGHKRSV"
                    },
                    {
                        "name": "Example 9",
                        "value": "CZWNHEMPOVXLKRSIDGJFYBTQAU"
                    },
                    {
                        "name": "Example 10",
                        "value": "ENPXJVKYQBFZTICAGMOHWRLDUS"
                    }
                ]
            },
            {
                "name": "1st cipher rotor reversed",
                "type": "boolean",
                "value": false
            },
            {
                "name": "1st cipher rotor intial value",
                "type": "option",
                "value": [
                    "A",
                    "B",
                    "C",
                    "D",
                    "E",
                    "F",
                    "G",
                    "H",
                    "I",
                    "J",
                    "K",
                    "L",
                    "M",
                    "N",
                    "O",
                    "P",
                    "Q",
                    "R",
                    "S",
                    "T",
                    "U",
                    "V",
                    "W",
                    "X",
                    "Y",
                    "Z"
                ]
            },
            {
                "name": "2nd cipher rotor",
                "type": "editableOption",
                "value": [
                    {
                        "name": "Example 1",
                        "value": "SRGWANHPJZFXVIDQCEUKBYOLMT"
                    },
                    {
                        "name": "Example 2",
                        "value": "THQEFSAZVKJYULBODCPXNIMWRG"
                    },
                    {
                        "name": "Example 3",
                        "value": "XDTUYLEVFNQZBPOGIRCSMHWKAJ"
                    },
                    {
                        "name": "Example 4",
                        "value": "LOHDMCWUPSTNGVXYFJREQIKBZA"
                    },
                    {
                        "name": "Example 5",
                        "value": "ERXWNZQIJYLVOFUMSGHTCKPBDA"
                    },
                    {
                        "name": "Example 6",
                        "value": "FQECYHJIOUMDZVPSLKRTGWXBAN"
                    },
                    {
                        "name": "Example 7",
                        "value": "TBYIUMKZDJSOPEWXVANHLCFQGR"
                    },
                    {
                        "name": "Example 8",
                        "value": "QZUPDTFNYIAOMLEBWJXCGHKRSV"
                    },
                    {
                        "name": "Example 9",
                        "value": "CZWNHEMPOVXLKRSIDGJFYBTQAU"
                    },
                    {
                        "name": "Example 10",
                        "value": "ENPXJVKYQBFZTICAGMOHWRLDUS"
                    }
                ]
            },
            {
                "name": "2nd cipher rotor reversed",
                "type": "boolean",
                "value": false
            },
            {
                "name": "2nd cipher rotor intial value",
                "type": "option",
                "value": [
                    "A",
                    "B",
                    "C",
                    "D",
                    "E",
                    "F",
                    "G",
                    "H",
                    "I",
                    "J",
                    "K",
                    "L",
                    "M",
                    "N",
                    "O",
                    "P",
                    "Q",
                    "R",
                    "S",
                    "T",
                    "U",
                    "V",
                    "W",
                    "X",
                    "Y",
                    "Z"
                ]
            },
            {
                "name": "3rd (middle) cipher rotor",
                "type": "editableOption",
                "value": [
                    {
                        "name": "Example 1",
                        "value": "SRGWANHPJZFXVIDQCEUKBYOLMT"
                    },
                    {
                        "name": "Example 2",
                        "value": "THQEFSAZVKJYULBODCPXNIMWRG"
                    },
                    {
                        "name": "Example 3",
                        "value": "XDTUYLEVFNQZBPOGIRCSMHWKAJ"
                    },
                    {
                        "name": "Example 4",
                        "value": "LOHDMCWUPSTNGVXYFJREQIKBZA"
                    },
                    {
                        "name": "Example 5",
                        "value": "ERXWNZQIJYLVOFUMSGHTCKPBDA"
                    },
                    {
                        "name": "Example 6",
                        "value": "FQECYHJIOUMDZVPSLKRTGWXBAN"
                    },
                    {
                        "name": "Example 7",
                        "value": "TBYIUMKZDJSOPEWXVANHLCFQGR"
                    },
                    {
                        "name": "Example 8",
                        "value": "QZUPDTFNYIAOMLEBWJXCGHKRSV"
                    },
                    {
                        "name": "Example 9",
                        "value": "CZWNHEMPOVXLKRSIDGJFYBTQAU"
                    },
                    {
                        "name": "Example 10",
                        "value": "ENPXJVKYQBFZTICAGMOHWRLDUS"
                    }
                ]
            },
            {
                "name": "3rd cipher rotor reversed",
                "type": "boolean",
                "value": false
            },
            {
                "name": "3rd cipher rotor intial value",
                "type": "option",
                "value": [
                    "A",
                    "B",
                    "C",
                    "D",
                    "E",
                    "F",
                    "G",
                    "H",
                    "I",
                    "J",
                    "K",
                    "L",
                    "M",
                    "N",
                    "O",
                    "P",
                    "Q",
                    "R",
                    "S",
                    "T",
                    "U",
                    "V",
                    "W",
                    "X",
                    "Y",
                    "Z"
                ]
            },
            {
                "name": "4th cipher rotor",
                "type": "editableOption",
                "value": [
                    {
                        "name": "Example 1",
                        "value": "SRGWANHPJZFXVIDQCEUKBYOLMT"
                    },
                    {
                        "name": "Example 2",
                        "value": "THQEFSAZVKJYULBODCPXNIMWRG"
                    },
                    {
                        "name": "Example 3",
                        "value": "XDTUYLEVFNQZBPOGIRCSMHWKAJ"
                    },
                    {
                        "name": "Example 4",
                        "value": "LOHDMCWUPSTNGVXYFJREQIKBZA"
                    },
                    {
                        "name": "Example 5",
                        "value": "ERXWNZQIJYLVOFUMSGHTCKPBDA"
                    },
                    {
                        "name": "Example 6",
                        "value": "FQECYHJIOUMDZVPSLKRTGWXBAN"
                    },
                    {
                        "name": "Example 7",
                        "value": "TBYIUMKZDJSOPEWXVANHLCFQGR"
                    },
                    {
                        "name": "Example 8",
                        "value": "QZUPDTFNYIAOMLEBWJXCGHKRSV"
                    },
                    {
                        "name": "Example 9",
                        "value": "CZWNHEMPOVXLKRSIDGJFYBTQAU"
                    },
                    {
                        "name": "Example 10",
                        "value": "ENPXJVKYQBFZTICAGMOHWRLDUS"
                    }
                ]
            },
            {
                "name": "4th cipher rotor reversed",
                "type": "boolean",
                "value": false
            },
            {
                "name": "4th cipher rotor intial value",
                "type": "option",
                "value": [
                    "A",
                    "B",
                    "C",
                    "D",
                    "E",
                    "F",
                    "G",
                    "H",
                    "I",
                    "J",
                    "K",
                    "L",
                    "M",
                    "N",
                    "O",
                    "P",
                    "Q",
                    "R",
                    "S",
                    "T",
                    "U",
                    "V",
                    "W",
                    "X",
                    "Y",
                    "Z"
                ]
            },
            {
                "name": "5th (right-hand) cipher rotor",
                "type": "editableOption",
                "value": [
                    {
                        "name": "Example 1",
                        "value": "SRGWANHPJZFXVIDQCEUKBYOLMT"
                    },
                    {
                        "name": "Example 2",
                        "value": "THQEFSAZVKJYULBODCPXNIMWRG"
                    },
                    {
                        "name": "Example 3",
                        "value": "XDTUYLEVFNQZBPOGIRCSMHWKAJ"
                    },
                    {
                        "name": "Example 4",
                        "value": "LOHDMCWUPSTNGVXYFJREQIKBZA"
                    },
                    {
                        "name": "Example 5",
                        "value": "ERXWNZQIJYLVOFUMSGHTCKPBDA"
                    },
                    {
                        "name": "Example 6",
                        "value": "FQECYHJIOUMDZVPSLKRTGWXBAN"
                    },
                    {
                        "name": "Example 7",
                        "value": "TBYIUMKZDJSOPEWXVANHLCFQGR"
                    },
                    {
                        "name": "Example 8",
                        "value": "QZUPDTFNYIAOMLEBWJXCGHKRSV"
                    },
                    {
                        "name": "Example 9",
                        "value": "CZWNHEMPOVXLKRSIDGJFYBTQAU"
                    },
                    {
                        "name": "Example 10",
                        "value": "ENPXJVKYQBFZTICAGMOHWRLDUS"
                    }
                ]
            },
            {
                "name": "5th cipher rotor reversed",
                "type": "boolean",
                "value": false
            },
            {
                "name": "5th cipher rotor intial value",
                "type": "option",
                "value": [
                    "A",
                    "B",
                    "C",
                    "D",
                    "E",
                    "F",
                    "G",
                    "H",
                    "I",
                    "J",
                    "K",
                    "L",
                    "M",
                    "N",
                    "O",
                    "P",
                    "Q",
                    "R",
                    "S",
                    "T",
                    "U",
                    "V",
                    "W",
                    "X",
                    "Y",
                    "Z"
                ]
            },
            {
                "name": "1st (left-hand) control rotor",
                "type": "editableOption",
                "value": [
                    {
                        "name": "Example 1",
                        "value": "SRGWANHPJZFXVIDQCEUKBYOLMT"
                    },
                    {
                        "name": "Example 2",
                        "value": "THQEFSAZVKJYULBODCPXNIMWRG"
                    },
                    {
                        "name": "Example 3",
                        "value": "XDTUYLEVFNQZBPOGIRCSMHWKAJ"
                    },
                    {
                        "name": "Example 4",
                        "value": "LOHDMCWUPSTNGVXYFJREQIKBZA"
                    },
                    {
                        "name": "Example 5",
                        "value": "ERXWNZQIJYLVOFUMSGHTCKPBDA"
                    },
                    {
                        "name": "Example 6",
                        "value": "FQECYHJIOUMDZVPSLKRTGWXBAN"
                    },
                    {
                        "name": "Example 7",
                        "value": "TBYIUMKZDJSOPEWXVANHLCFQGR"
                    },
                    {
                        "name": "Example 8",
                        "value": "QZUPDTFNYIAOMLEBWJXCGHKRSV"
                    },
                    {
                        "name": "Example 9",
                        "value": "CZWNHEMPOVXLKRSIDGJFYBTQAU"
                    },
                    {
                        "name": "Example 10",
                        "value": "ENPXJVKYQBFZTICAGMOHWRLDUS"
                    }
                ]
            },
            {
                "name": "1st control rotor reversed",
                "type": "boolean",
                "value": false
            },
            {
                "name": "1st control rotor intial value",
                "type": "option",
                "value": [
                    "A",
                    "B",
                    "C",
                    "D",
                    "E",
                    "F",
                    "G",
                    "H",
                    "I",
                    "J",
                    "K",
                    "L",
                    "M",
                    "N",
                    "O",
                    "P",
                    "Q",
                    "R",
                    "S",
                    "T",
                    "U",
                    "V",
                    "W",
                    "X",
                    "Y",
                    "Z"
                ]
            },
            {
                "name": "2nd control rotor",
                "type": "editableOption",
                "value": [
                    {
                        "name": "Example 1",
                        "value": "SRGWANHPJZFXVIDQCEUKBYOLMT"
                    },
                    {
                        "name": "Example 2",
                        "value": "THQEFSAZVKJYULBODCPXNIMWRG"
                    },
                    {
                        "name": "Example 3",
                        "value": "XDTUYLEVFNQZBPOGIRCSMHWKAJ"
                    },
                    {
                        "name": "Example 4",
                        "value": "LOHDMCWUPSTNGVXYFJREQIKBZA"
                    },
                    {
                        "name": "Example 5",
                        "value": "ERXWNZQIJYLVOFUMSGHTCKPBDA"
                    },
                    {
                        "name": "Example 6",
                        "value": "FQECYHJIOUMDZVPSLKRTGWXBAN"
                    },
                    {
                        "name": "Example 7",
                        "value": "TBYIUMKZDJSOPEWXVANHLCFQGR"
                    },
                    {
                        "name": "Example 8",
                        "value": "QZUPDTFNYIAOMLEBWJXCGHKRSV"
                    },
                    {
                        "name": "Example 9",
                        "value": "CZWNHEMPOVXLKRSIDGJFYBTQAU"
                    },
                    {
                        "name": "Example 10",
                        "value": "ENPXJVKYQBFZTICAGMOHWRLDUS"
                    }
                ]
            },
            {
                "name": "2nd control rotor reversed",
                "type": "boolean",
                "value": false
            },
            {
                "name": "2nd control rotor intial value",
                "type": "option",
                "value": [
                    "A",
                    "B",
                    "C",
                    "D",
                    "E",
                    "F",
                    "G",
                    "H",
                    "I",
                    "J",
                    "K",
                    "L",
                    "M",
                    "N",
                    "O",
                    "P",
                    "Q",
                    "R",
                    "S",
                    "T",
                    "U",
                    "V",
                    "W",
                    "X",
                    "Y",
                    "Z"
                ]
            },
            {
                "name": "3rd (middle) control rotor",
                "type": "editableOption",
                "value": [
                    {
                        "name": "Example 1",
                        "value": "SRGWANHPJZFXVIDQCEUKBYOLMT"
                    },
                    {
                        "name": "Example 2",
                        "value": "THQEFSAZVKJYULBODCPXNIMWRG"
                    },
                    {
                        "name": "Example 3",
                        "value": "XDTUYLEVFNQZBPOGIRCSMHWKAJ"
                    },
                    {
                        "name": "Example 4",
                        "value": "LOHDMCWUPSTNGVXYFJREQIKBZA"
                    },
                    {
                        "name": "Example 5",
                        "value": "ERXWNZQIJYLVOFUMSGHTCKPBDA"
                    },
                    {
                        "name": "Example 6",
                        "value": "FQECYHJIOUMDZVPSLKRTGWXBAN"
                    },
                    {
                        "name": "Example 7",
                        "value": "TBYIUMKZDJSOPEWXVANHLCFQGR"
                    },
                    {
                        "name": "Example 8",
                        "value": "QZUPDTFNYIAOMLEBWJXCGHKRSV"
                    },
                    {
                        "name": "Example 9",
                        "value": "CZWNHEMPOVXLKRSIDGJFYBTQAU"
                    },
                    {
                        "name": "Example 10",
                        "value": "ENPXJVKYQBFZTICAGMOHWRLDUS"
                    }
                ]
            },
            {
                "name": "3rd control rotor reversed",
                "type": "boolean",
                "value": false
            },
            {
                "name": "3rd control rotor intial value",
                "type": "option",
                "value": [
                    "A",
                    "B",
                    "C",
                    "D",
                    "E",
                    "F",
                    "G",
                    "H",
                    "I",
                    "J",
                    "K",
                    "L",
                    "M",
                    "N",
                    "O",
                    "P",
                    "Q",
                    "R",
                    "S",
                    "T",
                    "U",
                    "V",
                    "W",
                    "X",
                    "Y",
                    "Z"
                ]
            },
            {
                "name": "4th control rotor",
                "type": "editableOption",
                "value": [
                    {
                        "name": "Example 1",
                        "value": "SRGWANHPJZFXVIDQCEUKBYOLMT"
                    },
                    {
                        "name": "Example 2",
                        "value": "THQEFSAZVKJYULBODCPXNIMWRG"
                    },
                    {
                        "name": "Example 3",
                        "value": "XDTUYLEVFNQZBPOGIRCSMHWKAJ"
                    },
                    {
                        "name": "Example 4",
                        "value": "LOHDMCWUPSTNGVXYFJREQIKBZA"
                    },
                    {
                        "name": "Example 5",
                        "value": "ERXWNZQIJYLVOFUMSGHTCKPBDA"
                    },
                    {
                        "name": "Example 6",
                        "value": "FQECYHJIOUMDZVPSLKRTGWXBAN"
                    },
                    {
                        "name": "Example 7",
                        "value": "TBYIUMKZDJSOPEWXVANHLCFQGR"
                    },
                    {
                        "name": "Example 8",
                        "value": "QZUPDTFNYIAOMLEBWJXCGHKRSV"
                    },
                    {
                        "name": "Example 9",
                        "value": "CZWNHEMPOVXLKRSIDGJFYBTQAU"
                    },
                    {
                        "name": "Example 10",
                        "value": "ENPXJVKYQBFZTICAGMOHWRLDUS"
                    }
                ]
            },
            {
                "name": "4th control rotor reversed",
                "type": "boolean",
                "value": false
            },
            {
                "name": "4th control rotor intial value",
                "type": "option",
                "value": [
                    "A",
                    "B",
                    "C",
                    "D",
                    "E",
                    "F",
                    "G",
                    "H",
                    "I",
                    "J",
                    "K",
                    "L",
                    "M",
                    "N",
                    "O",
                    "P",
                    "Q",
                    "R",
                    "S",
                    "T",
                    "U",
                    "V",
                    "W",
                    "X",
                    "Y",
                    "Z"
                ]
            },
            {
                "name": "5th (right-hand) control rotor",
                "type": "editableOption",
                "value": [
                    {
                        "name": "Example 1",
                        "value": "SRGWANHPJZFXVIDQCEUKBYOLMT"
                    },
                    {
                        "name": "Example 2",
                        "value": "THQEFSAZVKJYULBODCPXNIMWRG"
                    },
                    {
                        "name": "Example 3",
                        "value": "XDTUYLEVFNQZBPOGIRCSMHWKAJ"
                    },
                    {
                        "name": "Example 4",
                        "value": "LOHDMCWUPSTNGVXYFJREQIKBZA"
                    },
                    {
                        "name": "Example 5",
                        "value": "ERXWNZQIJYLVOFUMSGHTCKPBDA"
                    },
                    {
                        "name": "Example 6",
                        "value": "FQECYHJIOUMDZVPSLKRTGWXBAN"
                    },
                    {
                        "name": "Example 7",
                        "value": "TBYIUMKZDJSOPEWXVANHLCFQGR"
                    },
                    {
                        "name": "Example 8",
                        "value": "QZUPDTFNYIAOMLEBWJXCGHKRSV"
                    },
                    {
                        "name": "Example 9",
                        "value": "CZWNHEMPOVXLKRSIDGJFYBTQAU"
                    },
                    {
                        "name": "Example 10",
                        "value": "ENPXJVKYQBFZTICAGMOHWRLDUS"
                    }
                ]
            },
            {
                "name": "5th control rotor reversed",
                "type": "boolean",
                "value": false
            },
            {
                "name": "5th control rotor intial value",
                "type": "option",
                "value": [
                    "A",
                    "B",
                    "C",
                    "D",
                    "E",
                    "F",
                    "G",
                    "H",
                    "I",
                    "J",
                    "K",
                    "L",
                    "M",
                    "N",
                    "O",
                    "P",
                    "Q",
                    "R",
                    "S",
                    "T",
                    "U",
                    "V",
                    "W",
                    "X",
                    "Y",
                    "Z"
                ]
            },
            {
                "name": "1st (left-hand) index rotor",
                "type": "editableOption",
                "value": [
                    {
                        "name": "Example 1",
                        "value": "6201348957"
                    },
                    {
                        "name": "Example 2",
                        "value": "6147253089"
                    },
                    {
                        "name": "Example 3",
                        "value": "8239647510"
                    },
                    {
                        "name": "Example 4",
                        "value": "7194835260"
                    },
                    {
                        "name": "Example 5",
                        "value": "4873205916"
                    }
                ]
            },
            {
                "name": "1st index rotor intial value",
                "type": "option",
                "value": [
                    "0",
                    "1",
                    "2",
                    "3",
                    "4",
                    "5",
                    "6",
                    "7",
                    "8",
                    "9"
                ]
            },
            {
                "name": "2nd index rotor",
                "type": "editableOption",
                "value": [
                    {
                        "name": "Example 1",
                        "value": "6201348957"
                    },
                    {
                        "name": "Example 2",
                        "value": "6147253089"
                    },
                    {
                        "name": "Example 3",
                        "value": "8239647510"
                    },
                    {
                        "name": "Example 4",
                        "value": "7194835260"
                    },
                    {
                        "name": "Example 5",
                        "value": "4873205916"
                    }
                ]
            },
            {
                "name": "2nd index rotor intial value",
                "type": "option",
                "value": [
                    "0",
                    "1",
                    "2",
                    "3",
                    "4",
                    "5",
                    "6",
                    "7",
                    "8",
                    "9"
                ]
            },
            {
                "name": "3rd (middle) index rotor",
                "type": "editableOption",
                "value": [
                    {
                        "name": "Example 1",
                        "value": "6201348957"
                    },
                    {
                        "name": "Example 2",
                        "value": "6147253089"
                    },
                    {
                        "name": "Example 3",
                        "value": "8239647510"
                    },
                    {
                        "name": "Example 4",
                        "value": "7194835260"
                    },
                    {
                        "name": "Example 5",
                        "value": "4873205916"
                    }
                ]
            },
            {
                "name": "3rd index rotor intial value",
                "type": "option",
                "value": [
                    "0",
                    "1",
                    "2",
                    "3",
                    "4",
                    "5",
                    "6",
                    "7",
                    "8",
                    "9"
                ]
            },
            {
                "name": "4th index rotor",
                "type": "editableOption",
                "value": [
                    {
                        "name": "Example 1",
                        "value": "6201348957"
                    },
                    {
                        "name": "Example 2",
                        "value": "6147253089"
                    },
                    {
                        "name": "Example 3",
                        "value": "8239647510"
                    },
                    {
                        "name": "Example 4",
                        "value": "7194835260"
                    },
                    {
                        "name": "Example 5",
                        "value": "4873205916"
                    }
                ]
            },
            {
                "name": "4th index rotor intial value",
                "type": "option",
                "value": [
                    "0",
                    "1",
                    "2",
                    "3",
                    "4",
                    "5",
                    "6",
                    "7",
                    "8",
                    "9"
                ]
            },
            {
                "name": "5th (right-hand) index rotor",
                "type": "editableOption",
                "value": [
                    {
                        "name": "Example 1",
                        "value": "6201348957"
                    },
                    {
                        "name": "Example 2",
                        "value": "6147253089"
                    },
                    {
                        "name": "Example 3",
                        "value": "8239647510"
                    },
                    {
                        "name": "Example 4",
                        "value": "7194835260"
                    },
                    {
                        "name": "Example 5",
                        "value": "4873205916"
                    }
                ]
            },
            {
                "name": "5th index rotor intial value",
                "type": "option",
                "value": [
                    "0",
                    "1",
                    "2",
                    "3",
                    "4",
                    "5",
                    "6",
                    "7",
                    "8",
                    "9"
                ]
            },
            {
                "name": "SIGABA mode",
                "type": "option",
                "value": [
                    "Encrypt",
                    "Decrypt"
                ]
            }
        ]
    },
    "SM3": {
        "module": "Crypto",
        "description": "SM3 is a cryptographic hash function used in the Chinese National Standard. SM3 is mainly used in digital signatures, message authentication codes, and pseudorandom number generators. The message digest algorithm consists, by default, of 64 rounds and length of 256.",
        "infoURL": "https://wikipedia.org/wiki/SM3_(hash_function)",
        "inputType": "ArrayBuffer",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Length",
                "type": "number",
                "value": 256
            },
            {
                "name": "Rounds",
                "type": "number",
                "value": 64,
                "min": 16
            }
        ]
    },
    "SM4 Decrypt": {
        "module": "Ciphers",
        "description": "SM4 is a 128-bit block cipher, currently established as a national standard (GB/T 32907-2016) of China.",
        "infoURL": "https://wikipedia.org/wiki/SM4_(cipher)",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Key",
                "type": "toggleString",
                "value": "",
                "toggleValues": [
                    "Hex",
                    "UTF8",
                    "Latin1",
                    "Base64"
                ]
            },
            {
                "name": "IV",
                "type": "toggleString",
                "value": "",
                "toggleValues": [
                    "Hex",
                    "UTF8",
                    "Latin1",
                    "Base64"
                ]
            },
            {
                "name": "Mode",
                "type": "option",
                "value": [
                    "CBC",
                    "CFB",
                    "OFB",
                    "CTR",
                    "ECB",
                    "CBC/NoPadding",
                    "ECB/NoPadding"
                ]
            },
            {
                "name": "Input",
                "type": "option",
                "value": [
                    "Raw",
                    "Hex"
                ]
            },
            {
                "name": "Output",
                "type": "option",
                "value": [
                    "Hex",
                    "Raw"
                ]
            }
        ]
    },
    "SM4 Encrypt": {
        "module": "Ciphers",
        "description": "SM4 is a 128-bit block cipher, currently established as a national standard (GB/T 32907-2016) of China. Multiple block cipher modes are supported. When using CBC or ECB mode, the PKCS#7 padding scheme is used.",
        "infoURL": "https://wikipedia.org/wiki/SM4_(cipher)",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Key",
                "type": "toggleString",
                "value": "",
                "toggleValues": [
                    "Hex",
                    "UTF8",
                    "Latin1",
                    "Base64"
                ]
            },
            {
                "name": "IV",
                "type": "toggleString",
                "value": "",
                "toggleValues": [
                    "Hex",
                    "UTF8",
                    "Latin1",
                    "Base64"
                ]
            },
            {
                "name": "Mode",
                "type": "option",
                "value": [
                    "CBC",
                    "CFB",
                    "OFB",
                    "CTR",
                    "ECB"
                ]
            },
            {
                "name": "Input",
                "type": "option",
                "value": [
                    "Raw",
                    "Hex"
                ]
            },
            {
                "name": "Output",
                "type": "option",
                "value": [
                    "Hex",
                    "Raw"
                ]
            }
        ]
    },
    "SQL Beautify": {
        "module": "Code",
        "description": "Indents and prettifies Structured Query Language (SQL) code.",
        "infoURL": null,
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Indent string",
                "type": "binaryShortString",
                "value": "\\t"
            }
        ]
    },
    "SQL Minify": {
        "module": "Code",
        "description": "Compresses Structured Query Language (SQL) code.",
        "infoURL": null,
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": []
    },
    "SSDEEP": {
        "module": "Crypto",
        "description": "SSDEEP is a program for computing context triggered piecewise hashes (CTPH). Also called fuzzy hashes, CTPH can match inputs that have homologies. Such inputs have sequences of identical bytes in the same order, although bytes in between these sequences may be different in both content and length.<br><br>SSDEEP hashes are now widely used for simple identification purposes (e.g. the 'Basic Properties' section in VirusTotal). Although 'better' fuzzy hashes are available, SSDEEP is still one of the primary choices because of its speed and being a de facto standard.<br><br>This operation is fundamentally the same as the CTPH operation, however their outputs differ in format.",
        "infoURL": "https://forensicswiki.xyz/wiki/index.php?title=Ssdeep",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": []
    },
    "SUB": {
        "module": "Default",
        "description": "SUB the input with the given key (e.g. <code>fe023da5</code>), MOD 255",
        "infoURL": "https://wikipedia.org/wiki/Bitwise_operation#Bitwise_operators",
        "inputType": "byteArray",
        "outputType": "byteArray",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Key",
                "type": "toggleString",
                "value": "",
                "toggleValues": [
                    "Hex",
                    "Decimal",
                    "Binary",
                    "Base64",
                    "UTF8",
                    "Latin1"
                ]
            }
        ]
    },
    "Scan for Embedded Files": {
        "module": "Default",
        "description": "Scans the data for potential embedded files by looking for magic bytes at all offsets. This operation is prone to false positives.<br><br>WARNING: Files over about 100KB in size will take a VERY long time to process.",
        "infoURL": "https://wikipedia.org/wiki/List_of_file_signatures",
        "inputType": "ArrayBuffer",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Images",
                "type": "boolean",
                "value": true
            },
            {
                "name": "Video",
                "type": "boolean",
                "value": true
            },
            {
                "name": "Audio",
                "type": "boolean",
                "value": true
            },
            {
                "name": "Documents",
                "type": "boolean",
                "value": true
            },
            {
                "name": "Applications",
                "type": "boolean",
                "value": true
            },
            {
                "name": "Archives",
                "type": "boolean",
                "value": true
            },
            {
                "name": "Miscellaneous",
                "type": "boolean",
                "value": false
            }
        ]
    },
    "Scatter chart": {
        "module": "Charts",
        "description": "Plots two-variable data as single points on a graph.",
        "infoURL": "https://wikipedia.org/wiki/Scatter_plot",
        "inputType": "string",
        "outputType": "html",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Record delimiter",
                "type": "option",
                "value": [
                    "Line feed",
                    "CRLF"
                ]
            },
            {
                "name": "Field delimiter",
                "type": "option",
                "value": [
                    "Space",
                    "Comma",
                    "Semi-colon",
                    "Colon",
                    "Tab"
                ]
            },
            {
                "name": "Use column headers as labels",
                "type": "boolean",
                "value": true
            },
            {
                "name": "X label",
                "type": "string",
                "value": ""
            },
            {
                "name": "Y label",
                "type": "string",
                "value": ""
            },
            {
                "name": "Colour",
                "type": "string",
                "value": "black"
            },
            {
                "name": "Point radius",
                "type": "number",
                "value": 10
            },
            {
                "name": "Use colour from third column",
                "type": "boolean",
                "value": false
            }
        ]
    },
    "Scrypt": {
        "module": "Crypto",
        "description": "scrypt is a password-based key derivation function (PBKDF) created by Colin Percival. The algorithm was specifically designed to make it costly to perform large-scale custom hardware attacks by requiring large amounts of memory. In 2016, the scrypt algorithm was published by IETF as RFC 7914.<br><br>Enter the password in the input to generate its hash.",
        "infoURL": "https://wikipedia.org/wiki/Scrypt",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Salt",
                "type": "toggleString",
                "value": "",
                "toggleValues": [
                    "Hex",
                    "Base64",
                    "UTF8",
                    "Latin1"
                ]
            },
            {
                "name": "Iterations (N)",
                "type": "number",
                "value": 16384
            },
            {
                "name": "Memory factor (r)",
                "type": "number",
                "value": 8
            },
            {
                "name": "Parallelization factor (p)",
                "type": "number",
                "value": 1
            },
            {
                "name": "Key length",
                "type": "number",
                "value": 64
            }
        ]
    },
    "Series chart": {
        "module": "Charts",
        "description": "A time series graph is a line graph of repeated measurements taken over regular time intervals.",
        "infoURL": null,
        "inputType": "string",
        "outputType": "html",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Record delimiter",
                "type": "option",
                "value": [
                    "Line feed",
                    "CRLF"
                ]
            },
            {
                "name": "Field delimiter",
                "type": "option",
                "value": [
                    "Space",
                    "Comma",
                    "Semi-colon",
                    "Colon",
                    "Tab"
                ]
            },
            {
                "name": "X label",
                "type": "string",
                "value": ""
            },
            {
                "name": "Point radius",
                "type": "number",
                "value": 1
            },
            {
                "name": "Series colours",
                "type": "string",
                "value": "mediumseagreen, dodgerblue, tomato"
            }
        ]
    },
    "Set Difference": {
        "module": "Default",
        "description": "Calculates the difference, or relative complement, of two sets.",
        "infoURL": "https://wikipedia.org/wiki/Complement_(set_theory)#Relative_complement",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Sample delimiter",
                "type": "binaryString",
                "value": "\\n\\n"
            },
            {
                "name": "Item delimiter",
                "type": "binaryString",
                "value": ","
            }
        ]
    },
    "Set Intersection": {
        "module": "Default",
        "description": "Calculates the intersection of two sets.",
        "infoURL": "https://wikipedia.org/wiki/Intersection_(set_theory)",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Sample delimiter",
                "type": "binaryString",
                "value": "\\n\\n"
            },
            {
                "name": "Item delimiter",
                "type": "binaryString",
                "value": ","
            }
        ]
    },
    "Set Union": {
        "module": "Default",
        "description": "Calculates the union of two sets.",
        "infoURL": "https://wikipedia.org/wiki/Union_(set_theory)",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Sample delimiter",
                "type": "binaryString",
                "value": "\\n\\n"
            },
            {
                "name": "Item delimiter",
                "type": "binaryString",
                "value": ","
            }
        ]
    },
    "Shake": {
        "module": "Crypto",
        "description": "Shake is an Extendable Output Function (XOF) of the SHA-3 hash algorithm, part of the Keccak family, allowing for variable output length/size.",
        "infoURL": "https://wikipedia.org/wiki/SHA-3#Instances",
        "inputType": "ArrayBuffer",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Capacity",
                "type": "option",
                "value": [
                    "256",
                    "128"
                ]
            },
            {
                "name": "Size",
                "type": "number",
                "value": 512
            }
        ]
    },
    "Sharpen Image": {
        "module": "Image",
        "description": "Sharpens an image (Unsharp mask)",
        "infoURL": "https://wikipedia.org/wiki/Unsharp_masking",
        "inputType": "ArrayBuffer",
        "outputType": "html",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Radius",
                "type": "number",
                "value": 2,
                "min": 1
            },
            {
                "name": "Amount",
                "type": "number",
                "value": 1,
                "min": 0,
                "step": 0.1
            },
            {
                "name": "Threshold",
                "type": "number",
                "value": 10,
                "min": 0,
                "max": 100
            }
        ]
    },
    "Show Base64 offsets": {
        "module": "Default",
        "description": "When a string is within a block of data and the whole block is Base64'd, the string itself could be represented in Base64 in three distinct ways depending on its offset within the block.<br><br>This operation shows all possible offsets for a given string so that each possible encoding can be considered.",
        "infoURL": "https://wikipedia.org/wiki/Base64#Output_padding",
        "inputType": "byteArray",
        "outputType": "html",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Alphabet",
                "type": "binaryString",
                "value": "A-Za-z0-9+/="
            },
            {
                "name": "Show variable chars and padding",
                "type": "boolean",
                "value": true
            },
            {
                "name": "Input format",
                "type": "option",
                "value": [
                    "Raw",
                    "Base64"
                ]
            }
        ]
    },
    "Show on map": {
        "module": "Hashing",
        "description": "Displays co-ordinates on a slippy map.<br><br>Co-ordinates will be converted to decimal degrees before being shown on the map.<br><br>Supported formats:<ul><li>Degrees Minutes Seconds (DMS)</li><li>Degrees Decimal Minutes (DDM)</li><li>Decimal Degrees (DD)</li><li>Geohash</li><li>Military Grid Reference System (MGRS)</li><li>Ordnance Survey National Grid (OSNG)</li><li>Universal Transverse Mercator (UTM)</li></ul><br>This operation will not work offline.",
        "infoURL": "https://foundation.wikimedia.org/wiki/Maps_Terms_of_Use",
        "inputType": "string",
        "outputType": "html",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Zoom Level",
                "type": "number",
                "value": 13
            },
            {
                "name": "Input Format",
                "type": "option",
                "value": [
                    "Auto",
                    "Degrees Minutes Seconds",
                    "Degrees Decimal Minutes",
                    "Decimal Degrees",
                    "Geohash",
                    "Military Grid Reference System",
                    "Ordnance Survey National Grid",
                    "Universal Transverse Mercator"
                ]
            },
            {
                "name": "Input Delimiter",
                "type": "option",
                "value": [
                    "Auto",
                    "Direction Preceding",
                    "Direction Following",
                    "\\n",
                    "Comma",
                    "Semi-colon",
                    "Colon"
                ]
            }
        ]
    },
    "Shuffle": {
        "module": "Default",
        "description": "Randomly reorders input elements.",
        "infoURL": "https://wikipedia.org/wiki/Shuffling",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Delimiter",
                "type": "option",
                "value": [
                    "Line feed",
                    "CRLF",
                    "Space",
                    "Comma",
                    "Semi-colon",
                    "Colon",
                    "Nothing (separate chars)"
                ]
            }
        ]
    },
    "Sleep": {
        "module": "Default",
        "description": "Sleep causes the recipe to wait for a specified number of milliseconds before continuing execution.",
        "infoURL": null,
        "inputType": "ArrayBuffer",
        "outputType": "ArrayBuffer",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Time (ms)",
                "type": "number",
                "value": 1000
            }
        ]
    },
    "Snefru": {
        "module": "Crypto",
        "description": "Snefru is a cryptographic hash function invented by Ralph Merkle in 1990 while working at Xerox PARC. The function supports 128-bit and 256-bit output. It was named after the Egyptian Pharaoh Sneferu, continuing the tradition of the Khufu and Khafre block ciphers.<br><br>The original design of Snefru was shown to be insecure by Eli Biham and Adi Shamir who were able to use differential cryptanalysis to find hash collisions. The design was then modified by increasing the number of iterations of the main pass of the algorithm from two to eight.",
        "infoURL": "https://wikipedia.org/wiki/Snefru",
        "inputType": "ArrayBuffer",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Size",
                "type": "number",
                "value": 128,
                "min": 32,
                "max": 480,
                "step": 32
            },
            {
                "name": "Rounds",
                "type": "option",
                "value": [
                    "8",
                    "4",
                    "2"
                ]
            }
        ]
    },
    "Sort": {
        "module": "Default",
        "description": "Alphabetically sorts strings separated by the specified delimiter.<br><br>The IP address option supports IPv4 only.",
        "infoURL": null,
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Delimiter",
                "type": "option",
                "value": [
                    "Line feed",
                    "CRLF",
                    "Space",
                    "Comma",
                    "Semi-colon",
                    "Colon",
                    "Nothing (separate chars)"
                ]
            },
            {
                "name": "Reverse",
                "type": "boolean",
                "value": false
            },
            {
                "name": "Order",
                "type": "option",
                "value": [
                    "Alphabetical (case sensitive)",
                    "Alphabetical (case insensitive)",
                    "IP address",
                    "Numeric",
                    "Numeric (hexadecimal)",
                    "Length"
                ]
            }
        ]
    },
    "Split": {
        "module": "Default",
        "description": "Splits a string into sections around a given delimiter.",
        "infoURL": null,
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Split delimiter",
                "type": "editableOptionShort",
                "value": [
                    {
                        "name": "Comma",
                        "value": ","
                    },
                    {
                        "name": "Space",
                        "value": " "
                    },
                    {
                        "name": "Line feed",
                        "value": "\\n"
                    },
                    {
                        "name": "CRLF",
                        "value": "\\r\\n"
                    },
                    {
                        "name": "Semi-colon",
                        "value": ";"
                    },
                    {
                        "name": "Colon",
                        "value": ":"
                    },
                    {
                        "name": "Nothing (separate chars)",
                        "value": ""
                    }
                ]
            },
            {
                "name": "Join delimiter",
                "type": "editableOptionShort",
                "value": [
                    {
                        "name": "Line feed",
                        "value": "\\n"
                    },
                    {
                        "name": "CRLF",
                        "value": "\\r\\n"
                    },
                    {
                        "name": "Space",
                        "value": " "
                    },
                    {
                        "name": "Comma",
                        "value": ","
                    },
                    {
                        "name": "Semi-colon",
                        "value": ";"
                    },
                    {
                        "name": "Colon",
                        "value": ":"
                    },
                    {
                        "name": "Nothing (join chars)",
                        "value": ""
                    }
                ]
            }
        ]
    },
    "Split Colour Channels": {
        "module": "Image",
        "description": "Splits the given image into its red, green and blue colour channels.",
        "infoURL": "https://wikipedia.org/wiki/Channel_(digital_image)",
        "inputType": "ArrayBuffer",
        "outputType": "html",
        "flowControl": false,
        "manualBake": false,
        "args": []
    },
    "Standard Deviation": {
        "module": "Default",
        "description": "Computes the standard deviation of a number list. If an item in the string is not a number it is excluded from the list.<br><br>e.g. <code>0x0a 8 .5</code> becomes <code>4.089281382128433</code>",
        "infoURL": "https://wikipedia.org/wiki/Standard_deviation",
        "inputType": "string",
        "outputType": "BigNumber",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Delimiter",
                "type": "option",
                "value": [
                    "Line feed",
                    "Space",
                    "Comma",
                    "Semi-colon",
                    "Colon",
                    "CRLF"
                ]
            }
        ]
    },
    "Streebog": {
        "module": "Hashing",
        "description": "Streebog is a cryptographic hash function defined in the Russian national standard GOST R 34.11-2012 <i>Information Technology – Cryptographic Information Security – Hash Function</i>. It was created to replace an obsolete GOST hash function defined in the old standard GOST R 34.11-94, and as an asymmetric reply to SHA-3 competition by the US National Institute of Standards and Technology.",
        "infoURL": "https://wikipedia.org/wiki/Streebog",
        "inputType": "ArrayBuffer",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Size",
                "type": "option",
                "value": [
                    "256",
                    "512"
                ]
            }
        ]
    },
    "Strings": {
        "module": "Regex",
        "description": "Extracts all strings from the input.",
        "infoURL": "https://wikipedia.org/wiki/Strings_(Unix)",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Encoding",
                "type": "option",
                "value": [
                    "Single byte",
                    "16-bit littleendian",
                    "16-bit bigendian",
                    "All"
                ]
            },
            {
                "name": "Minimum length",
                "type": "number",
                "value": 4
            },
            {
                "name": "Match",
                "type": "option",
                "value": [
                    "[ASCII]",
                    "Alphanumeric + punctuation (A)",
                    "All printable chars (A)",
                    "Null-terminated strings (A)",
                    "[Unicode]",
                    "Alphanumeric + punctuation (U)",
                    "All printable chars (U)",
                    "Null-terminated strings (U)"
                ]
            },
            {
                "name": "Display total",
                "type": "boolean",
                "value": false
            },
            {
                "name": "Sort",
                "type": "boolean",
                "value": false
            },
            {
                "name": "Unique",
                "type": "boolean",
                "value": false
            }
        ]
    },
    "Strip HTML tags": {
        "module": "Default",
        "description": "Removes all HTML tags from the input.",
        "infoURL": null,
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Remove indentation",
                "type": "boolean",
                "value": true
            },
            {
                "name": "Remove excess line breaks",
                "type": "boolean",
                "value": true
            }
        ],
        "checks": [
            {
                "pattern": "(</html>|</div>|</body>)",
                "flags": "i",
                "args": [
                    true,
                    true
                ]
            }
        ]
    },
    "Strip HTTP headers": {
        "module": "Default",
        "description": "Removes HTTP headers from a request or response by looking for the first instance of a double newline.",
        "infoURL": "https://wikipedia.org/wiki/Hypertext_Transfer_Protocol#Message_format",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [],
        "checks": [
            {
                "pattern": "^HTTP(.|\\s)+?(\\r?\\n){2}",
                "flags": "",
                "args": []
            }
        ]
    },
    "Subsection": {
        "module": "Default",
        "description": "Select a part of the input data using a regular expression (regex), and run all subsequent operations on each match separately.<br><br>You can use up to one capture group, where the recipe will only be run on the data in the capture group. If there's more than one capture group, only the first one will be operated on.<br><br>Use the Merge operation to reset the effects of subsection.",
        "infoURL": "",
        "inputType": "string",
        "outputType": "string",
        "flowControl": true,
        "manualBake": false,
        "args": [
            {
                "name": "Section (regex)",
                "type": "string",
                "value": ""
            },
            {
                "name": "Case sensitive matching",
                "type": "boolean",
                "value": true
            },
            {
                "name": "Global matching",
                "type": "boolean",
                "value": true
            },
            {
                "name": "Ignore errors",
                "type": "boolean",
                "value": false
            }
        ]
    },
    "Substitute": {
        "module": "Default",
        "description": "A substitution cipher allowing you to specify bytes to replace with other byte values. This can be used to create Caesar ciphers but is more powerful as any byte value can be substituted, not just letters, and the substitution values need not be in order.<br><br>Enter the bytes you want to replace in the Plaintext field and the bytes to replace them with in the Ciphertext field.<br><br>Non-printable bytes can be specified using string escape notation. For example, a line feed character can be written as either <code>\\n</code> or <code>\\x0a</code>.<br><br>Byte ranges can be specified using a hyphen. For example, the sequence <code>0123456789</code> can be written as <code>0-9</code>.<br><br>Note that blackslash characters are used to escape special characters, so will need to be escaped themselves if you want to use them on their own (e.g.<code>\\\\</code>).",
        "infoURL": "https://wikipedia.org/wiki/Substitution_cipher",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Plaintext",
                "type": "binaryString",
                "value": "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
            },
            {
                "name": "Ciphertext",
                "type": "binaryString",
                "value": "XYZABCDEFGHIJKLMNOPQRSTUVW"
            },
            {
                "name": "Ignore case",
                "type": "boolean",
                "value": false
            }
        ]
    },
    "Subtract": {
        "module": "Default",
        "description": "Subtracts a list of numbers. If an item in the string is not a number it is excluded from the list.<br><br>e.g. <code>0x0a 8 .5</code> becomes <code>1.5</code>",
        "infoURL": "https://wikipedia.org/wiki/Subtraction",
        "inputType": "string",
        "outputType": "BigNumber",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Delimiter",
                "type": "option",
                "value": [
                    "Line feed",
                    "Space",
                    "Comma",
                    "Semi-colon",
                    "Colon",
                    "CRLF"
                ]
            }
        ]
    },
    "Sum": {
        "module": "Default",
        "description": "Adds together a list of numbers. If an item in the string is not a number it is excluded from the list.<br><br>e.g. <code>0x0a 8 .5</code> becomes <code>18.5</code>",
        "infoURL": "https://wikipedia.org/wiki/Summation",
        "inputType": "string",
        "outputType": "BigNumber",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Delimiter",
                "type": "option",
                "value": [
                    "Line feed",
                    "Space",
                    "Comma",
                    "Semi-colon",
                    "Colon",
                    "CRLF"
                ]
            }
        ]
    },
    "Swap endianness": {
        "module": "Default",
        "description": "Switches the data from big-endian to little-endian or vice-versa. Data can be read in as hexadecimal or raw bytes. It will be returned in the same format as it is entered.",
        "infoURL": "https://wikipedia.org/wiki/Endianness",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Data format",
                "type": "option",
                "value": [
                    "Hex",
                    "Raw"
                ]
            },
            {
                "name": "Word length (bytes)",
                "type": "number",
                "value": 4
            },
            {
                "name": "Pad incomplete words",
                "type": "boolean",
                "value": true
            }
        ]
    },
    "Symmetric Difference": {
        "module": "Default",
        "description": "Calculates the symmetric difference of two sets.",
        "infoURL": "https://wikipedia.org/wiki/Symmetric_difference",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Sample delimiter",
                "type": "binaryString",
                "value": "\\n\\n"
            },
            {
                "name": "Item delimiter",
                "type": "binaryString",
                "value": ","
            }
        ]
    },
    "Syntax highlighter": {
        "module": "Code",
        "description": "Adds syntax highlighting to a range of source code languages. Note that this will not indent the code. Use one of the 'Beautify' operations for that.",
        "infoURL": "https://wikipedia.org/wiki/Syntax_highlighting",
        "inputType": "string",
        "outputType": "html",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Language",
                "type": "option",
                "value": [
                    "auto detect",
                    "1c",
                    "abnf",
                    "accesslog",
                    "actionscript",
                    "ada",
                    "angelscript",
                    "apache",
                    "applescript",
                    "arcade",
                    "arduino",
                    "armasm",
                    "xml",
                    "asciidoc",
                    "aspectj",
                    "autohotkey",
                    "autoit",
                    "avrasm",
                    "awk",
                    "axapta",
                    "bash",
                    "basic",
                    "bnf",
                    "brainfuck",
                    "c",
                    "cal",
                    "capnproto",
                    "ceylon",
                    "clean",
                    "clojure",
                    "clojure-repl",
                    "cmake",
                    "coffeescript",
                    "coq",
                    "cos",
                    "cpp",
                    "crmsh",
                    "crystal",
                    "csharp",
                    "csp",
                    "css",
                    "d",
                    "markdown",
                    "dart",
                    "delphi",
                    "diff",
                    "django",
                    "dns",
                    "dockerfile",
                    "dos",
                    "dsconfig",
                    "dts",
                    "dust",
                    "ebnf",
                    "elixir",
                    "elm",
                    "ruby",
                    "erb",
                    "erlang-repl",
                    "erlang",
                    "excel",
                    "fix",
                    "flix",
                    "fortran",
                    "fsharp",
                    "gams",
                    "gauss",
                    "gcode",
                    "gherkin",
                    "glsl",
                    "gml",
                    "go",
                    "golo",
                    "gradle",
                    "graphql",
                    "groovy",
                    "haml",
                    "handlebars",
                    "haskell",
                    "haxe",
                    "hsp",
                    "http",
                    "hy",
                    "inform7",
                    "ini",
                    "irpf90",
                    "isbl",
                    "java",
                    "javascript",
                    "jboss-cli",
                    "json",
                    "julia",
                    "julia-repl",
                    "kotlin",
                    "lasso",
                    "latex",
                    "ldif",
                    "leaf",
                    "less",
                    "lisp",
                    "livecodeserver",
                    "livescript",
                    "llvm",
                    "lsl",
                    "lua",
                    "makefile",
                    "mathematica",
                    "matlab",
                    "maxima",
                    "mel",
                    "mercury",
                    "mipsasm",
                    "mizar",
                    "perl",
                    "mojolicious",
                    "monkey",
                    "moonscript",
                    "n1ql",
                    "nestedtext",
                    "nginx",
                    "nim",
                    "nix",
                    "node-repl",
                    "nsis",
                    "objectivec",
                    "ocaml",
                    "openscad",
                    "oxygene",
                    "parser3",
                    "pf",
                    "pgsql",
                    "php",
                    "php-template",
                    "plaintext",
                    "pony",
                    "powershell",
                    "processing",
                    "profile",
                    "prolog",
                    "properties",
                    "protobuf",
                    "puppet",
                    "purebasic",
                    "python",
                    "python-repl",
                    "q",
                    "qml",
                    "r",
                    "reasonml",
                    "rib",
                    "roboconf",
                    "routeros",
                    "rsl",
                    "ruleslanguage",
                    "rust",
                    "sas",
                    "scala",
                    "scheme",
                    "scilab",
                    "scss",
                    "shell",
                    "smali",
                    "smalltalk",
                    "sml",
                    "sqf",
                    "sql",
                    "stan",
                    "stata",
                    "step21",
                    "stylus",
                    "subunit",
                    "swift",
                    "taggerscript",
                    "yaml",
                    "tap",
                    "tcl",
                    "thrift",
                    "tp",
                    "twig",
                    "typescript",
                    "vala",
                    "vbnet",
                    "vbscript",
                    "vbscript-html",
                    "verilog",
                    "vhdl",
                    "vim",
                    "wasm",
                    "wren",
                    "x86asm",
                    "xl",
                    "xquery",
                    "zephir"
                ]
            }
        ]
    },
    "TCP/IP Checksum": {
        "module": "Crypto",
        "description": "Calculates the checksum for a TCP (Transport Control Protocol) or IP (Internet Protocol) header from an input of raw bytes.",
        "infoURL": "https://wikipedia.org/wiki/IPv4_header_checksum",
        "inputType": "ArrayBuffer",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": []
    },
    "Tail": {
        "module": "Default",
        "description": "Like the UNIX tail utility.<br>Gets the last n lines.<br>Optionally you can select all lines after line n by entering a negative value for n.<br>The delimiter can be changed so that instead of lines, fields (i.e. commas) are selected instead.",
        "infoURL": "https://wikipedia.org/wiki/Tail_(Unix)",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Delimiter",
                "type": "option",
                "value": [
                    "Line feed",
                    "CRLF",
                    "Space",
                    "Comma",
                    "Semi-colon",
                    "Colon",
                    "Nothing (separate chars)"
                ]
            },
            {
                "name": "Number",
                "type": "number",
                "value": 10
            }
        ]
    },
    "Take bytes": {
        "module": "Default",
        "description": "Takes a slice of the specified number of bytes from the data. Negative values are allowed.",
        "infoURL": null,
        "inputType": "ArrayBuffer",
        "outputType": "ArrayBuffer",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Start",
                "type": "number",
                "value": 0
            },
            {
                "name": "Length",
                "type": "number",
                "value": 5
            },
            {
                "name": "Apply to each line",
                "type": "boolean",
                "value": false
            }
        ]
    },
    "Tar": {
        "module": "Compression",
        "description": "Packs the input into a tarball.<br><br>No support for multiple files at this time.",
        "infoURL": "https://wikipedia.org/wiki/Tar_(computing)",
        "inputType": "ArrayBuffer",
        "outputType": "File",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Filename",
                "type": "string",
                "value": "file.txt"
            }
        ]
    },
    "Text Encoding Brute Force": {
        "module": "Encodings",
        "description": "Enumerates all supported text encodings for the input, allowing you to quickly spot the correct one.\n<br><br>\nSupported charsets are:\n<ul>\n<li>UTF-8 (65001)</li>\n<li>UTF-7 (65000)</li>\n<li>UTF-16LE (1200)</li>\n<li>UTF-16BE (1201)</li>\n<li>UTF-32LE (12000)</li>\n<li>UTF-32BE (12001)</li>\n<li>IBM EBCDIC International (500)</li>\n<li>IBM EBCDIC US-Canada (37)</li>\n<li>IBM EBCDIC Multilingual/ROECE (Latin 2) (870)</li>\n<li>IBM EBCDIC Greek Modern (875)</li>\n<li>IBM EBCDIC French (1010)</li>\n<li>IBM EBCDIC Turkish (Latin 5) (1026)</li>\n<li>IBM EBCDIC Latin 1/Open System (1047)</li>\n<li>IBM EBCDIC Lao (1132/1133/1341)</li>\n<li>IBM EBCDIC US-Canada (037 + Euro symbol) (1140)</li>\n<li>IBM EBCDIC Germany (20273 + Euro symbol) (1141)</li>\n<li>IBM EBCDIC Denmark-Norway (20277 + Euro symbol) (1142)</li>\n<li>IBM EBCDIC Finland-Sweden (20278 + Euro symbol) (1143)</li>\n<li>IBM EBCDIC Italy (20280 + Euro symbol) (1144)</li>\n<li>IBM EBCDIC Latin America-Spain (20284 + Euro symbol) (1145)</li>\n<li>IBM EBCDIC United Kingdom (20285 + Euro symbol) (1146)</li>\n<li>IBM EBCDIC France (20297 + Euro symbol) (1147)</li>\n<li>IBM EBCDIC International (500 + Euro symbol) (1148)</li>\n<li>IBM EBCDIC Icelandic (20871 + Euro symbol) (1149)</li>\n<li>IBM EBCDIC Germany (20273)</li>\n<li>IBM EBCDIC Denmark-Norway (20277)</li>\n<li>IBM EBCDIC Finland-Sweden (20278)</li>\n<li>IBM EBCDIC Italy (20280)</li>\n<li>IBM EBCDIC Latin America-Spain (20284)</li>\n<li>IBM EBCDIC United Kingdom (20285)</li>\n<li>IBM EBCDIC Japanese Katakana Extended (20290)</li>\n<li>IBM EBCDIC France (20297)</li>\n<li>IBM EBCDIC Arabic (20420)</li>\n<li>IBM EBCDIC Greek (20423)</li>\n<li>IBM EBCDIC Hebrew (20424)</li>\n<li>IBM EBCDIC Korean Extended (20833)</li>\n<li>IBM EBCDIC Thai (20838)</li>\n<li>IBM EBCDIC Icelandic (20871)</li>\n<li>IBM EBCDIC Cyrillic Russian (20880)</li>\n<li>IBM EBCDIC Turkish (20905)</li>\n<li>IBM EBCDIC Latin 1/Open System (1047 + Euro symbol) (20924)</li>\n<li>IBM EBCDIC Cyrillic Serbian-Bulgarian (21025)</li>\n<li>OEM United States (437)</li>\n<li>OEM Greek (formerly 437G); Greek (DOS) (737)</li>\n<li>OEM Baltic; Baltic (DOS) (775)</li>\n<li>OEM Russian; Cyrillic + Euro symbol (808)</li>\n<li>OEM Multilingual Latin 1; Western European (DOS) (850)</li>\n<li>OEM Latin 2; Central European (DOS) (852)</li>\n<li>OEM Cyrillic (primarily Russian) (855)</li>\n<li>OEM Turkish; Turkish (DOS) (857)</li>\n<li>OEM Multilingual Latin 1 + Euro symbol (858)</li>\n<li>OEM Portuguese; Portuguese (DOS) (860)</li>\n<li>OEM Icelandic; Icelandic (DOS) (861)</li>\n<li>OEM Hebrew; Hebrew (DOS) (862)</li>\n<li>OEM French Canadian; French Canadian (DOS) (863)</li>\n<li>OEM Arabic; Arabic (864) (864)</li>\n<li>OEM Nordic; Nordic (DOS) (865)</li>\n<li>OEM Russian; Cyrillic (DOS) (866)</li>\n<li>OEM Modern Greek; Greek, Modern (DOS) (869)</li>\n<li>OEM Cyrillic (primarily Russian) + Euro Symbol (872)</li>\n<li>Windows-874 Thai (874)</li>\n<li>Windows-1250 Central European (1250)</li>\n<li>Windows-1251 Cyrillic (1251)</li>\n<li>Windows-1252 Latin (1252)</li>\n<li>Windows-1253 Greek (1253)</li>\n<li>Windows-1254 Turkish (1254)</li>\n<li>Windows-1255 Hebrew (1255)</li>\n<li>Windows-1256 Arabic (1256)</li>\n<li>Windows-1257 Baltic (1257)</li>\n<li>Windows-1258 Vietnam (1258)</li>\n<li>ISO-8859-1 Latin 1 Western European (28591)</li>\n<li>ISO-8859-2 Latin 2 Central European (28592)</li>\n<li>ISO-8859-3 Latin 3 South European (28593)</li>\n<li>ISO-8859-4 Latin 4 North European (28594)</li>\n<li>ISO-8859-5 Latin/Cyrillic (28595)</li>\n<li>ISO-8859-6 Latin/Arabic (28596)</li>\n<li>ISO-8859-7 Latin/Greek (28597)</li>\n<li>ISO-8859-8 Latin/Hebrew (28598)</li>\n<li>ISO 8859-8 Hebrew (ISO-Logical) (38598)</li>\n<li>ISO-8859-9 Latin 5 Turkish (28599)</li>\n<li>ISO-8859-10 Latin 6 Nordic (28600)</li>\n<li>ISO-8859-11 Latin/Thai (28601)</li>\n<li>ISO-8859-13 Latin 7 Baltic Rim (28603)</li>\n<li>ISO-8859-14 Latin 8 Celtic (28604)</li>\n<li>ISO-8859-15 Latin 9 (28605)</li>\n<li>ISO-8859-16 Latin 10 (28606)</li>\n<li>ISO 2022 JIS Japanese with no halfwidth Katakana (50220)</li>\n<li>ISO 2022 JIS Japanese with halfwidth Katakana (50221)</li>\n<li>ISO 2022 Japanese JIS X 0201-1989 (1 byte Kana-SO/SI) (50222)</li>\n<li>ISO 2022 Korean (50225)</li>\n<li>ISO 2022 Simplified Chinese (50227)</li>\n<li>ISO 6937 Non-Spacing Accent (20269)</li>\n<li>EUC Japanese (51932)</li>\n<li>EUC Simplified Chinese (51936)</li>\n<li>EUC Korean (51949)</li>\n<li>ISCII Devanagari (57002)</li>\n<li>ISCII Bengali (57003)</li>\n<li>ISCII Tamil (57004)</li>\n<li>ISCII Telugu (57005)</li>\n<li>ISCII Assamese (57006)</li>\n<li>ISCII Oriya (57007)</li>\n<li>ISCII Kannada (57008)</li>\n<li>ISCII Malayalam (57009)</li>\n<li>ISCII Gujarati (57010)</li>\n<li>ISCII Punjabi (57011)</li>\n<li>Japanese Shift-JIS (932)</li>\n<li>Simplified Chinese GBK (936)</li>\n<li>Korean (949)</li>\n<li>Traditional Chinese Big5 (950)</li>\n<li>US-ASCII (7-bit) (20127)</li>\n<li>Simplified Chinese GB2312 (20936)</li>\n<li>KOI8-R Russian Cyrillic (20866)</li>\n<li>KOI8-U Ukrainian Cyrillic (21866)</li>\n<li>Mazovia (Polish) MS-DOS (620)</li>\n<li>Arabic (ASMO 708) (708)</li>\n<li>Arabic (Transparent ASMO); Arabic (DOS) (720)</li>\n<li>Kamenický (Czech) MS-DOS (895)</li>\n<li>Korean (Johab) (1361)</li>\n<li>MAC Roman (10000)</li>\n<li>Japanese (Mac) (10001)</li>\n<li>MAC Traditional Chinese (Big5) (10002)</li>\n<li>Korean (Mac) (10003)</li>\n<li>Arabic (Mac) (10004)</li>\n<li>Hebrew (Mac) (10005)</li>\n<li>Greek (Mac) (10006)</li>\n<li>Cyrillic (Mac) (10007)</li>\n<li>MAC Simplified Chinese (GB 2312) (10008)</li>\n<li>Romanian (Mac) (10010)</li>\n<li>Ukrainian (Mac) (10017)</li>\n<li>Thai (Mac) (10021)</li>\n<li>MAC Latin 2 (Central European) (10029)</li>\n<li>Icelandic (Mac) (10079)</li>\n<li>Turkish (Mac) (10081)</li>\n<li>Croatian (Mac) (10082)</li>\n<li>CNS Taiwan (Chinese Traditional) (20000)</li>\n<li>TCA Taiwan (20001)</li>\n<li>ETEN Taiwan (Chinese Traditional) (20002)</li>\n<li>IBM5550 Taiwan (20003)</li>\n<li>TeleText Taiwan (20004)</li>\n<li>Wang Taiwan (20005)</li>\n<li>Western European IA5 (IRV International Alphabet 5) (20105)</li>\n<li>IA5 German (7-bit) (20106)</li>\n<li>IA5 Swedish (7-bit) (20107)</li>\n<li>IA5 Norwegian (7-bit) (20108)</li>\n<li>T.61 (20261)</li>\n<li>Japanese (JIS 0208-1990 and 0212-1990) (20932)</li>\n<li>Korean Wansung (20949)</li>\n<li>Extended/Ext Alpha Lowercase (21027)</li>\n<li>Europa 3 (29001)</li>\n<li>Atari ST/TT (47451)</li>\n<li>HZ-GB2312 Simplified Chinese (52936)</li>\n<li>Simplified Chinese GB18030 (54936)</li>\n</ul>",
        "infoURL": "https://wikipedia.org/wiki/Character_encoding",
        "inputType": "string",
        "outputType": "html",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Mode",
                "type": "option",
                "value": [
                    "Encode",
                    "Decode"
                ]
            }
        ]
    },
    "To BCD": {
        "module": "Default",
        "description": "Binary-Coded Decimal (BCD) is a class of binary encodings of decimal numbers where each decimal digit is represented by a fixed number of bits, usually four or eight. Special bit patterns are sometimes used for a sign",
        "infoURL": "https://wikipedia.org/wiki/Binary-coded_decimal",
        "inputType": "BigNumber",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Scheme",
                "type": "option",
                "value": [
                    "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"
                ]
            },
            {
                "name": "Packed",
                "type": "boolean",
                "value": true
            },
            {
                "name": "Signed",
                "type": "boolean",
                "value": false
            },
            {
                "name": "Output format",
                "type": "option",
                "value": [
                    "Nibbles",
                    "Bytes",
                    "Raw"
                ]
            }
        ]
    },
    "To Base": {
        "module": "Default",
        "description": "Converts a decimal number to a given numerical base.",
        "infoURL": "https://wikipedia.org/wiki/Radix",
        "inputType": "BigNumber",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Radix",
                "type": "number",
                "value": 36
            }
        ]
    },
    "To Base32": {
        "module": "Default",
        "description": "Base32 is a notation for encoding arbitrary byte data using a restricted set of symbols that can be conveniently used by humans and processed by computers. It uses a smaller set of characters than Base64, usually the uppercase alphabet and the numbers 2 to 7.",
        "infoURL": "https://wikipedia.org/wiki/Base32",
        "inputType": "ArrayBuffer",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Alphabet",
                "type": "binaryString",
                "value": "A-Z2-7="
            }
        ]
    },
    "To Base45": {
        "module": "Default",
        "description": "Base45 is a notation for encoding arbitrary byte data using a restricted set of symbols that can be conveniently used by humans and processed by computers. The high number base results in shorter strings than with the decimal or hexadecimal system. Base45 is optimized for usage with QR codes.",
        "infoURL": "https://wikipedia.org/wiki/List_of_numeral_systems",
        "inputType": "ArrayBuffer",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Alphabet",
                "type": "string",
                "value": "0-9A-Z $%*+\\-./:"
            }
        ]
    },
    "To Base58": {
        "module": "Default",
        "description": "Base58 (similar to Base64) is a notation for encoding arbitrary byte data. It differs from Base64 by removing easily misread characters (i.e. l, I, 0 and O) to improve human readability.<br><br>This operation encodes data in an ASCII string (with an alphabet of your choosing, presets included).<br><br>e.g. <code>hello world</code> becomes <code>StV1DL6CwTryKyV</code><br><br>Base58 is commonly used in cryptocurrencies (Bitcoin, Ripple, etc).",
        "infoURL": "https://wikipedia.org/wiki/Base58",
        "inputType": "ArrayBuffer",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Alphabet",
                "type": "editableOption",
                "value": [
                    {
                        "name": "Bitcoin",
                        "value": "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"
                    },
                    {
                        "name": "Ripple",
                        "value": "rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz"
                    }
                ]
            }
        ]
    },
    "To Base62": {
        "module": "Default",
        "description": "Base62 is a notation for encoding arbitrary byte data using a restricted set of symbols that can be conveniently used by humans and processed by computers. The high number base results in shorter strings than with the decimal or hexadecimal system.",
        "infoURL": "https://wikipedia.org/wiki/List_of_numeral_systems",
        "inputType": "ArrayBuffer",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Alphabet",
                "type": "string",
                "value": "0-9A-Za-z"
            }
        ]
    },
    "To Base64": {
        "module": "Default",
        "description": "Base64 is a notation for encoding arbitrary byte data using a restricted set of symbols that can be conveniently used by humans and processed by computers.<br><br>This operation encodes raw data into an ASCII Base64 string.<br><br>e.g. <code>hello</code> becomes <code>aGVsbG8=</code>",
        "infoURL": "https://wikipedia.org/wiki/Base64",
        "inputType": "ArrayBuffer",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Alphabet",
                "type": "editableOption",
                "value": [
                    {
                        "name": "Standard (RFC 4648): A-Za-z0-9+/=",
                        "value": "A-Za-z0-9+/="
                    },
                    {
                        "name": "URL safe (RFC 4648 §5): A-Za-z0-9-_",
                        "value": "A-Za-z0-9-_"
                    },
                    {
                        "name": "Filename safe: A-Za-z0-9+-=",
                        "value": "A-Za-z0-9+\\-="
                    },
                    {
                        "name": "itoa64: ./0-9A-Za-z=",
                        "value": "./0-9A-Za-z="
                    },
                    {
                        "name": "XML: A-Za-z0-9_.",
                        "value": "A-Za-z0-9_."
                    },
                    {
                        "name": "y64: A-Za-z0-9._-",
                        "value": "A-Za-z0-9._-"
                    },
                    {
                        "name": "z64: 0-9a-zA-Z+/=",
                        "value": "0-9a-zA-Z+/="
                    },
                    {
                        "name": "Radix-64 (RFC 4880): 0-9A-Za-z+/=",
                        "value": "0-9A-Za-z+/="
                    },
                    {
                        "name": "Uuencoding: [space]-_",
                        "value": " -_"
                    },
                    {
                        "name": "Xxencoding: +-0-9A-Za-z",
                        "value": "+\\-0-9A-Za-z"
                    },
                    {
                        "name": "BinHex: !-,-0-689@A-NP-VX-Z[`a-fh-mp-r",
                        "value": "!-,-0-689@A-NP-VX-Z[`a-fh-mp-r"
                    },
                    {
                        "name": "ROT13: N-ZA-Mn-za-m0-9+/=",
                        "value": "N-ZA-Mn-za-m0-9+/="
                    },
                    {
                        "name": "UNIX crypt: ./0-9A-Za-z",
                        "value": "./0-9A-Za-z"
                    },
                    {
                        "name": "Atom128: /128GhIoPQROSTeUbADfgHijKLM+n0pFWXY456xyzB7=39VaqrstJklmNuZvwcdEC",
                        "value": "/128GhIoPQROSTeUbADfgHijKLM+n0pFWXY456xyzB7=39VaqrstJklmNuZvwcdEC"
                    },
                    {
                        "name": "Megan35: 3GHIJKLMNOPQRSTUb=cdefghijklmnopWXYZ/12+406789VaqrstuvwxyzABCDEF5",
                        "value": "3GHIJKLMNOPQRSTUb=cdefghijklmnopWXYZ/12+406789VaqrstuvwxyzABCDEF5"
                    },
                    {
                        "name": "Zong22: ZKj9n+yf0wDVX1s/5YbdxSo=ILaUpPBCHg8uvNO4klm6iJGhQ7eFrWczAMEq3RTt2",
                        "value": "ZKj9n+yf0wDVX1s/5YbdxSo=ILaUpPBCHg8uvNO4klm6iJGhQ7eFrWczAMEq3RTt2"
                    },
                    {
                        "name": "Hazz15: HNO4klm6ij9n+J2hyf0gzA8uvwDEq3X1Q7ZKeFrWcVTts/MRGYbdxSo=ILaUpPBC5",
                        "value": "HNO4klm6ij9n+J2hyf0gzA8uvwDEq3X1Q7ZKeFrWcVTts/MRGYbdxSo=ILaUpPBC5"
                    }
                ]
            }
        ]
    },
    "To Base85": {
        "module": "Default",
        "description": "Base85 (also called Ascii85) is a notation for encoding arbitrary byte data. It is usually more efficient that Base64.<br><br>This operation encodes data in an ASCII string (with an alphabet of your choosing, presets included).<br><br>e.g. <code>hello world</code> becomes <code>BOu!rD]j7BEbo7</code><br><br>Base85 is commonly used in Adobe's PostScript and PDF file formats.<br><br><strong>Options</strong><br><u>Alphabet</u><ul><li>Standard - The standard alphabet, referred to as Ascii85</li><li>Z85 (ZeroMQ) - A string-safe variant of Base85, which avoids quote marks and backslash characters</li><li>IPv6 - A variant of Base85 suitable for encoding IPv6 addresses (RFC 1924)</li></ul><u>Include delimiter</u><br>Adds a '<~' and '~>' delimiter to the start and end of the data. This is standard for Adobe's implementation of Base85.",
        "infoURL": "https://wikipedia.org/wiki/Ascii85",
        "inputType": "ArrayBuffer",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Alphabet",
                "type": "editableOption",
                "value": [
                    {
                        "name": "Standard",
                        "value": "!-u"
                    },
                    {
                        "name": "Z85 (ZeroMQ)",
                        "value": "0-9a-zA-Z.\\-:+=^!/*?&<>()[]{}@%$#"
                    },
                    {
                        "name": "IPv6",
                        "value": "0-9A-Za-z!#$%&()*+\\-;<=>?@^_`{|}~"
                    }
                ]
            },
            {
                "name": "Include delimeter",
                "type": "boolean",
                "value": false
            }
        ]
    },
    "To Binary": {
        "module": "Default",
        "description": "Displays the input data as a binary string.<br><br>e.g. <code>Hi</code> becomes <code>01001000 01101001</code>",
        "infoURL": "https://wikipedia.org/wiki/Binary_code",
        "inputType": "ArrayBuffer",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Delimiter",
                "type": "option",
                "value": [
                    "Space",
                    "Comma",
                    "Semi-colon",
                    "Colon",
                    "Line feed",
                    "CRLF",
                    "None"
                ]
            },
            {
                "name": "Byte Length",
                "type": "number",
                "value": 8
            }
        ]
    },
    "To Braille": {
        "module": "Default",
        "description": "Converts text to six-dot braille symbols.",
        "infoURL": "https://wikipedia.org/wiki/Braille",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": []
    },
    "To Camel case": {
        "module": "Code",
        "description": "Converts the input string to camel case.\n<br><br>\nCamel case is all lower case except letters after word boundaries which are uppercase.\n<br><br>\ne.g. thisIsCamelCase\n<br><br>\n'Attempt to be context aware' will make the operation attempt to nicely transform variable and function names.",
        "infoURL": "https://wikipedia.org/wiki/Camel_case",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Attempt to be context aware",
                "type": "boolean",
                "value": false
            }
        ]
    },
    "To Case Insensitive Regex": {
        "module": "Default",
        "description": "Converts a case-sensitive regex string into a case-insensitive regex string in case the i flag is unavailable to you.<br><br>e.g. <code>Mozilla/[0-9].[0-9] .*</code> becomes <code>[mM][oO][zZ][iI][lL][lL][aA]/[0-9].[0-9] .*</code>",
        "infoURL": "https://wikipedia.org/wiki/Regular_expression",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": []
    },
    "To Charcode": {
        "module": "Default",
        "description": "Converts text to its unicode character code equivalent.<br><br>e.g. <code>Γειά σου</code> becomes <code>0393 03b5 03b9 03ac 20 03c3 03bf 03c5</code>",
        "infoURL": "https://wikipedia.org/wiki/Plane_(Unicode)",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Delimiter",
                "type": "option",
                "value": [
                    "Space",
                    "Comma",
                    "Semi-colon",
                    "Colon",
                    "Line feed",
                    "CRLF"
                ]
            },
            {
                "name": "Base",
                "type": "number",
                "value": 16
            }
        ]
    },
    "To Decimal": {
        "module": "Default",
        "description": "Converts the input data to an ordinal integer array.<br><br>e.g. <code>Hello</code> becomes <code>72 101 108 108 111</code>",
        "infoURL": null,
        "inputType": "ArrayBuffer",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Delimiter",
                "type": "option",
                "value": [
                    "Space",
                    "Comma",
                    "Semi-colon",
                    "Colon",
                    "Line feed",
                    "CRLF"
                ]
            },
            {
                "name": "Support signed values",
                "type": "boolean",
                "value": false
            }
        ]
    },
    "To HTML Entity": {
        "module": "Encodings",
        "description": "Converts characters to HTML entities<br><br>e.g. <code>&amp;</code> becomes <code>&amp;<span>amp;</span></code>",
        "infoURL": "https://wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Convert all characters",
                "type": "boolean",
                "value": false
            },
            {
                "name": "Convert to",
                "type": "option",
                "value": [
                    "Named entities",
                    "Numeric entities",
                    "Hex entities"
                ]
            }
        ]
    },
    "To Hex": {
        "module": "Default",
        "description": "Converts the input string to hexadecimal bytes separated by the specified delimiter.<br><br>e.g. The UTF-8 encoded string <code>Γειά σου</code> becomes <code>ce 93 ce b5 ce b9 ce ac 20 cf 83 ce bf cf 85 0a</code>",
        "infoURL": "https://wikipedia.org/wiki/Hexadecimal",
        "inputType": "ArrayBuffer",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Delimiter",
                "type": "option",
                "value": [
                    "Space",
                    "Percent",
                    "Comma",
                    "Semi-colon",
                    "Colon",
                    "Line feed",
                    "CRLF",
                    "0x",
                    "0x with comma",
                    "\\x",
                    "None"
                ]
            },
            {
                "name": "Bytes per line",
                "type": "number",
                "value": 0
            }
        ]
    },
    "To Hex Content": {
        "module": "Default",
        "description": "Converts special characters in a string to hexadecimal. This format is used by SNORT for representing hex within ASCII text.<br><br>e.g. <code>foo=bar</code> becomes <code>foo|3d|bar</code>.",
        "infoURL": "http://manual-snort-org.s3-website-us-east-1.amazonaws.com/node32.html#SECTION00451000000000000000",
        "inputType": "ArrayBuffer",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Convert",
                "type": "option",
                "value": [
                    "Only special chars",
                    "Only special chars including spaces",
                    "All chars"
                ]
            },
            {
                "name": "Print spaces between bytes",
                "type": "boolean",
                "value": false
            }
        ]
    },
    "To Hexdump": {
        "module": "Default",
        "description": "Creates a hexdump of the input data, displaying both the hexadecimal values of each byte and an ASCII representation alongside.<br><br>The 'UNIX format' argument defines which subset of printable characters are displayed in the preview column.",
        "infoURL": "https://wikipedia.org/wiki/Hex_dump",
        "inputType": "ArrayBuffer",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Width",
                "type": "number",
                "value": 16,
                "min": 1
            },
            {
                "name": "Upper case hex",
                "type": "boolean",
                "value": false
            },
            {
                "name": "Include final length",
                "type": "boolean",
                "value": false
            },
            {
                "name": "UNIX format",
                "type": "boolean",
                "value": false
            }
        ]
    },
    "To Kebab case": {
        "module": "Code",
        "description": "Converts the input string to kebab case.\n<br><br>\nKebab case is all lower case with dashes as word boundaries.\n<br><br>\ne.g. this-is-kebab-case\n<br><br>\n'Attempt to be context aware' will make the operation attempt to nicely transform variable and function names.",
        "infoURL": "https://wikipedia.org/wiki/Kebab_case",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Attempt to be context aware",
                "type": "boolean",
                "value": false
            }
        ]
    },
    "To Lower case": {
        "module": "Default",
        "description": "Converts every character in the input to lower case.",
        "infoURL": null,
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": []
    },
    "To MessagePack": {
        "module": "Code",
        "description": "Converts JSON to MessagePack encoded byte buffer. MessagePack is a computer data interchange format. It is a binary form for representing simple data structures like arrays and associative arrays.",
        "infoURL": "https://wikipedia.org/wiki/MessagePack",
        "inputType": "JSON",
        "outputType": "ArrayBuffer",
        "flowControl": false,
        "manualBake": false,
        "args": []
    },
    "To Morse Code": {
        "module": "Default",
        "description": "Translates alphanumeric characters into International Morse Code.<br><br>Ignores non-Morse characters.<br><br>e.g. <code>SOS</code> becomes <code>... --- ...</code>",
        "infoURL": "https://wikipedia.org/wiki/Morse_code",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Format options",
                "type": "option",
                "value": [
                    "-/.",
                    "_/.",
                    "Dash/Dot",
                    "DASH/DOT",
                    "dash/dot"
                ]
            },
            {
                "name": "Letter delimiter",
                "type": "option",
                "value": [
                    "Space",
                    "Line feed",
                    "CRLF",
                    "Forward slash",
                    "Backslash",
                    "Comma",
                    "Semi-colon",
                    "Colon"
                ]
            },
            {
                "name": "Word delimiter",
                "type": "option",
                "value": [
                    "Line feed",
                    "CRLF",
                    "Forward slash",
                    "Backslash",
                    "Comma",
                    "Semi-colon",
                    "Colon"
                ]
            }
        ]
    },
    "To Octal": {
        "module": "Default",
        "description": "Converts the input string to octal bytes separated by the specified delimiter.<br><br>e.g. The UTF-8 encoded string <code>Γειά σου</code> becomes <code>316 223 316 265 316 271 316 254 40 317 203 316 277 317 205</code>",
        "infoURL": "https://wikipedia.org/wiki/Octal",
        "inputType": "byteArray",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Delimiter",
                "type": "option",
                "value": [
                    "Space",
                    "Comma",
                    "Semi-colon",
                    "Colon",
                    "Line feed",
                    "CRLF"
                ]
            }
        ]
    },
    "To Punycode": {
        "module": "Encodings",
        "description": "Punycode is a way to represent Unicode with the limited character subset of ASCII supported by the Domain Name System.<br><br>e.g. <code>münchen</code> encodes to <code>mnchen-3ya</code>",
        "infoURL": "https://wikipedia.org/wiki/Punycode",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Internationalised domain name",
                "type": "boolean",
                "value": false
            }
        ]
    },
    "To Quoted Printable": {
        "module": "Default",
        "description": "Quoted-Printable, or QP encoding, is an encoding using printable ASCII characters (alphanumeric and the equals sign '=') to transmit 8-bit data over a 7-bit data path or, generally, over a medium which is not 8-bit clean. It is defined as a MIME content transfer encoding for use in e-mail.<br><br>QP works by using the equals sign '=' as an escape character. It also limits line length to 76, as some software has limits on line length.",
        "infoURL": "https://wikipedia.org/wiki/Quoted-printable",
        "inputType": "ArrayBuffer",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": []
    },
    "To Snake case": {
        "module": "Code",
        "description": "Converts the input string to snake case.\n<br><br>\nSnake case is all lower case with underscores as word boundaries.\n<br><br>\ne.g. this_is_snake_case\n<br><br>\n'Attempt to be context aware' will make the operation attempt to nicely transform variable and function names.",
        "infoURL": "https://wikipedia.org/wiki/Snake_case",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Attempt to be context aware",
                "type": "boolean",
                "value": false
            }
        ]
    },
    "To Table": {
        "module": "Default",
        "description": "Data can be split on different characters and rendered as an HTML, ASCII or Markdown table with an optional header row.<br><br>Supports the CSV (Comma Separated Values) file format by default. Change the cell delimiter argument to <code>\\t</code> to support TSV (Tab Separated Values) or <code>|</code> for PSV (Pipe Separated Values).<br><br>You can enter as many delimiters as you like. Each character will be treat as a separate possible delimiter.",
        "infoURL": "https://wikipedia.org/wiki/Comma-separated_values",
        "inputType": "string",
        "outputType": "html",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Cell delimiters",
                "type": "binaryShortString",
                "value": ","
            },
            {
                "name": "Row delimiters",
                "type": "binaryShortString",
                "value": "\\r\\n"
            },
            {
                "name": "Make first row header",
                "type": "boolean",
                "value": false
            },
            {
                "name": "Format",
                "type": "option",
                "value": [
                    "ASCII",
                    "HTML",
                    "Markdown"
                ]
            }
        ]
    },
    "To UNIX Timestamp": {
        "module": "Default",
        "description": "Parses a datetime string in UTC and returns the corresponding UNIX timestamp.<br><br>e.g. <code>Mon 1 January 2001 11:00:00</code> becomes <code>978346800</code><br><br>A UNIX timestamp is a 32-bit value representing the number of seconds since January 1, 1970 UTC (the UNIX epoch).",
        "infoURL": "https://wikipedia.org/wiki/Unix_time",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Units",
                "type": "option",
                "value": [
                    "Seconds (s)",
                    "Milliseconds (ms)",
                    "Microseconds (μs)",
                    "Nanoseconds (ns)"
                ]
            },
            {
                "name": "Treat as UTC",
                "type": "boolean",
                "value": true
            },
            {
                "name": "Show parsed datetime",
                "type": "boolean",
                "value": true
            }
        ]
    },
    "To Upper case": {
        "module": "Default",
        "description": "Converts the input string to upper case, optionally limiting scope to only the first character in each word, sentence or paragraph.",
        "infoURL": null,
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Scope",
                "type": "option",
                "value": [
                    "All",
                    "Word",
                    "Sentence",
                    "Paragraph"
                ]
            }
        ]
    },
    "Translate DateTime Format": {
        "module": "Default",
        "description": "Parses a datetime string in one format and re-writes it in another.<br><br>Run with no input to see the relevant format string examples.",
        "infoURL": "https://momentjs.com/docs/#/parsing/string-format/",
        "inputType": "string",
        "outputType": "html",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Built in formats",
                "type": "populateOption",
                "value": [
                    {
                        "name": "Standard date and time",
                        "value": "DD/MM/YYYY HH:mm:ss"
                    },
                    {
                        "name": "American-style date and time",
                        "value": "MM/DD/YYYY HH:mm:ss"
                    },
                    {
                        "name": "International date and time",
                        "value": "YYYY-MM-DD HH:mm:ss"
                    },
                    {
                        "name": "Verbose date and time",
                        "value": "dddd Do MMMM YYYY HH:mm:ss Z z"
                    },
                    {
                        "name": "UNIX timestamp (seconds)",
                        "value": "X"
                    },
                    {
                        "name": "UNIX timestamp offset (milliseconds)",
                        "value": "x"
                    },
                    {
                        "name": "Automatic",
                        "value": ""
                    }
                ],
                "target": 1
            },
            {
                "name": "Input format string",
                "type": "binaryString",
                "value": "DD/MM/YYYY HH:mm:ss"
            },
            {
                "name": "Input timezone",
                "type": "option",
                "value": [
                    "UTC",
                    "Africa/Abidjan",
                    "Africa/Accra",
                    "Africa/Addis_Ababa",
                    "Africa/Algiers",
                    "Africa/Asmara",
                    "Africa/Asmera",
                    "Africa/Bamako",
                    "Africa/Bangui",
                    "Africa/Banjul",
                    "Africa/Bissau",
                    "Africa/Blantyre",
                    "Africa/Brazzaville",
                    "Africa/Bujumbura",
                    "Africa/Cairo",
                    "Africa/Casablanca",
                    "Africa/Ceuta",
                    "Africa/Conakry",
                    "Africa/Dakar",
                    "Africa/Dar_es_Salaam",
                    "Africa/Djibouti",
                    "Africa/Douala",
                    "Africa/El_Aaiun",
                    "Africa/Freetown",
                    "Africa/Gaborone",
                    "Africa/Harare",
                    "Africa/Johannesburg",
                    "Africa/Juba",
                    "Africa/Kampala",
                    "Africa/Khartoum",
                    "Africa/Kigali",
                    "Africa/Kinshasa",
                    "Africa/Lagos",
                    "Africa/Libreville",
                    "Africa/Lome",
                    "Africa/Luanda",
                    "Africa/Lubumbashi",
                    "Africa/Lusaka",
                    "Africa/Malabo",
                    "Africa/Maputo",
                    "Africa/Maseru",
                    "Africa/Mbabane",
                    "Africa/Mogadishu",
                    "Africa/Monrovia",
                    "Africa/Nairobi",
                    "Africa/Ndjamena",
                    "Africa/Niamey",
                    "Africa/Nouakchott",
                    "Africa/Ouagadougou",
                    "Africa/Porto-Novo",
                    "Africa/Sao_Tome",
                    "Africa/Timbuktu",
                    "Africa/Tripoli",
                    "Africa/Tunis",
                    "Africa/Windhoek",
                    "America/Adak",
                    "America/Anchorage",
                    "America/Anguilla",
                    "America/Antigua",
                    "America/Araguaina",
                    "America/Argentina/Buenos_Aires",
                    "America/Argentina/Catamarca",
                    "America/Argentina/ComodRivadavia",
                    "America/Argentina/Cordoba",
                    "America/Argentina/Jujuy",
                    "America/Argentina/La_Rioja",
                    "America/Argentina/Mendoza",
                    "America/Argentina/Rio_Gallegos",
                    "America/Argentina/Salta",
                    "America/Argentina/San_Juan",
                    "America/Argentina/San_Luis",
                    "America/Argentina/Tucuman",
                    "America/Argentina/Ushuaia",
                    "America/Aruba",
                    "America/Asuncion",
                    "America/Atikokan",
                    "America/Atka",
                    "America/Bahia",
                    "America/Bahia_Banderas",
                    "America/Barbados",
                    "America/Belem",
                    "America/Belize",
                    "America/Blanc-Sablon",
                    "America/Boa_Vista",
                    "America/Bogota",
                    "America/Boise",
                    "America/Buenos_Aires",
                    "America/Cambridge_Bay",
                    "America/Campo_Grande",
                    "America/Cancun",
                    "America/Caracas",
                    "America/Catamarca",
                    "America/Cayenne",
                    "America/Cayman",
                    "America/Chicago",
                    "America/Chihuahua",
                    "America/Coral_Harbour",
                    "America/Cordoba",
                    "America/Costa_Rica",
                    "America/Creston",
                    "America/Cuiaba",
                    "America/Curacao",
                    "America/Danmarkshavn",
                    "America/Dawson",
                    "America/Dawson_Creek",
                    "America/Denver",
                    "America/Detroit",
                    "America/Dominica",
                    "America/Edmonton",
                    "America/Eirunepe",
                    "America/El_Salvador",
                    "America/Ensenada",
                    "America/Fort_Nelson",
                    "America/Fort_Wayne",
                    "America/Fortaleza",
                    "America/Glace_Bay",
                    "America/Godthab",
                    "America/Goose_Bay",
                    "America/Grand_Turk",
                    "America/Grenada",
                    "America/Guadeloupe",
                    "America/Guatemala",
                    "America/Guayaquil",
                    "America/Guyana",
                    "America/Halifax",
                    "America/Havana",
                    "America/Hermosillo",
                    "America/Indiana/Indianapolis",
                    "America/Indiana/Knox",
                    "America/Indiana/Marengo",
                    "America/Indiana/Petersburg",
                    "America/Indiana/Tell_City",
                    "America/Indiana/Vevay",
                    "America/Indiana/Vincennes",
                    "America/Indiana/Winamac",
                    "America/Indianapolis",
                    "America/Inuvik",
                    "America/Iqaluit",
                    "America/Jamaica",
                    "America/Jujuy",
                    "America/Juneau",
                    "America/Kentucky/Louisville",
                    "America/Kentucky/Monticello",
                    "America/Knox_IN",
                    "America/Kralendijk",
                    "America/La_Paz",
                    "America/Lima",
                    "America/Los_Angeles",
                    "America/Louisville",
                    "America/Lower_Princes",
                    "America/Maceio",
                    "America/Managua",
                    "America/Manaus",
                    "America/Marigot",
                    "America/Martinique",
                    "America/Matamoros",
                    "America/Mazatlan",
                    "America/Mendoza",
                    "America/Menominee",
                    "America/Merida",
                    "America/Metlakatla",
                    "America/Mexico_City",
                    "America/Miquelon",
                    "America/Moncton",
                    "America/Monterrey",
                    "America/Montevideo",
                    "America/Montreal",
                    "America/Montserrat",
                    "America/Nassau",
                    "America/New_York",
                    "America/Nipigon",
                    "America/Nome",
                    "America/Noronha",
                    "America/North_Dakota/Beulah",
                    "America/North_Dakota/Center",
                    "America/North_Dakota/New_Salem",
                    "America/Nuuk",
                    "America/Ojinaga",
                    "America/Panama",
                    "America/Pangnirtung",
                    "America/Paramaribo",
                    "America/Phoenix",
                    "America/Port-au-Prince",
                    "America/Port_of_Spain",
                    "America/Porto_Acre",
                    "America/Porto_Velho",
                    "America/Puerto_Rico",
                    "America/Punta_Arenas",
                    "America/Rainy_River",
                    "America/Rankin_Inlet",
                    "America/Recife",
                    "America/Regina",
                    "America/Resolute",
                    "America/Rio_Branco",
                    "America/Rosario",
                    "America/Santa_Isabel",
                    "America/Santarem",
                    "America/Santiago",
                    "America/Santo_Domingo",
                    "America/Sao_Paulo",
                    "America/Scoresbysund",
                    "America/Shiprock",
                    "America/Sitka",
                    "America/St_Barthelemy",
                    "America/St_Johns",
                    "America/St_Kitts",
                    "America/St_Lucia",
                    "America/St_Thomas",
                    "America/St_Vincent",
                    "America/Swift_Current",
                    "America/Tegucigalpa",
                    "America/Thule",
                    "America/Thunder_Bay",
                    "America/Tijuana",
                    "America/Toronto",
                    "America/Tortola",
                    "America/Vancouver",
                    "America/Virgin",
                    "America/Whitehorse",
                    "America/Winnipeg",
                    "America/Yakutat",
                    "America/Yellowknife",
                    "Antarctica/Casey",
                    "Antarctica/Davis",
                    "Antarctica/DumontDUrville",
                    "Antarctica/Macquarie",
                    "Antarctica/Mawson",
                    "Antarctica/McMurdo",
                    "Antarctica/Palmer",
                    "Antarctica/Rothera",
                    "Antarctica/South_Pole",
                    "Antarctica/Syowa",
                    "Antarctica/Troll",
                    "Antarctica/Vostok",
                    "Arctic/Longyearbyen",
                    "Asia/Aden",
                    "Asia/Almaty",
                    "Asia/Amman",
                    "Asia/Anadyr",
                    "Asia/Aqtau",
                    "Asia/Aqtobe",
                    "Asia/Ashgabat",
                    "Asia/Ashkhabad",
                    "Asia/Atyrau",
                    "Asia/Baghdad",
                    "Asia/Bahrain",
                    "Asia/Baku",
                    "Asia/Bangkok",
                    "Asia/Barnaul",
                    "Asia/Beirut",
                    "Asia/Bishkek",
                    "Asia/Brunei",
                    "Asia/Calcutta",
                    "Asia/Chita",
                    "Asia/Choibalsan",
                    "Asia/Chongqing",
                    "Asia/Chungking",
                    "Asia/Colombo",
                    "Asia/Dacca",
                    "Asia/Damascus",
                    "Asia/Dhaka",
                    "Asia/Dili",
                    "Asia/Dubai",
                    "Asia/Dushanbe",
                    "Asia/Famagusta",
                    "Asia/Gaza",
                    "Asia/Harbin",
                    "Asia/Hebron",
                    "Asia/Ho_Chi_Minh",
                    "Asia/Hong_Kong",
                    "Asia/Hovd",
                    "Asia/Irkutsk",
                    "Asia/Istanbul",
                    "Asia/Jakarta",
                    "Asia/Jayapura",
                    "Asia/Jerusalem",
                    "Asia/Kabul",
                    "Asia/Kamchatka",
                    "Asia/Karachi",
                    "Asia/Kashgar",
                    "Asia/Kathmandu",
                    "Asia/Katmandu",
                    "Asia/Khandyga",
                    "Asia/Kolkata",
                    "Asia/Krasnoyarsk",
                    "Asia/Kuala_Lumpur",
                    "Asia/Kuching",
                    "Asia/Kuwait",
                    "Asia/Macao",
                    "Asia/Macau",
                    "Asia/Magadan",
                    "Asia/Makassar",
                    "Asia/Manila",
                    "Asia/Muscat",
                    "Asia/Nicosia",
                    "Asia/Novokuznetsk",
                    "Asia/Novosibirsk",
                    "Asia/Omsk",
                    "Asia/Oral",
                    "Asia/Phnom_Penh",
                    "Asia/Pontianak",
                    "Asia/Pyongyang",
                    "Asia/Qatar",
                    "Asia/Qostanay",
                    "Asia/Qyzylorda",
                    "Asia/Rangoon",
                    "Asia/Riyadh",
                    "Asia/Saigon",
                    "Asia/Sakhalin",
                    "Asia/Samarkand",
                    "Asia/Seoul",
                    "Asia/Shanghai",
                    "Asia/Singapore",
                    "Asia/Srednekolymsk",
                    "Asia/Taipei",
                    "Asia/Tashkent",
                    "Asia/Tbilisi",
                    "Asia/Tehran",
                    "Asia/Tel_Aviv",
                    "Asia/Thimbu",
                    "Asia/Thimphu",
                    "Asia/Tokyo",
                    "Asia/Tomsk",
                    "Asia/Ujung_Pandang",
                    "Asia/Ulaanbaatar",
                    "Asia/Ulan_Bator",
                    "Asia/Urumqi",
                    "Asia/Ust-Nera",
                    "Asia/Vientiane",
                    "Asia/Vladivostok",
                    "Asia/Yakutsk",
                    "Asia/Yangon",
                    "Asia/Yekaterinburg",
                    "Asia/Yerevan",
                    "Atlantic/Azores",
                    "Atlantic/Bermuda",
                    "Atlantic/Canary",
                    "Atlantic/Cape_Verde",
                    "Atlantic/Faeroe",
                    "Atlantic/Faroe",
                    "Atlantic/Jan_Mayen",
                    "Atlantic/Madeira",
                    "Atlantic/Reykjavik",
                    "Atlantic/South_Georgia",
                    "Atlantic/St_Helena",
                    "Atlantic/Stanley",
                    "Australia/ACT",
                    "Australia/Adelaide",
                    "Australia/Brisbane",
                    "Australia/Broken_Hill",
                    "Australia/Canberra",
                    "Australia/Currie",
                    "Australia/Darwin",
                    "Australia/Eucla",
                    "Australia/Hobart",
                    "Australia/LHI",
                    "Australia/Lindeman",
                    "Australia/Lord_Howe",
                    "Australia/Melbourne",
                    "Australia/NSW",
                    "Australia/North",
                    "Australia/Perth",
                    "Australia/Queensland",
                    "Australia/South",
                    "Australia/Sydney",
                    "Australia/Tasmania",
                    "Australia/Victoria",
                    "Australia/West",
                    "Australia/Yancowinna",
                    "Brazil/Acre",
                    "Brazil/DeNoronha",
                    "Brazil/East",
                    "Brazil/West",
                    "CET",
                    "CST6CDT",
                    "Canada/Atlantic",
                    "Canada/Central",
                    "Canada/Eastern",
                    "Canada/Mountain",
                    "Canada/Newfoundland",
                    "Canada/Pacific",
                    "Canada/Saskatchewan",
                    "Canada/Yukon",
                    "Chile/Continental",
                    "Chile/EasterIsland",
                    "Cuba",
                    "EET",
                    "EST",
                    "EST5EDT",
                    "Egypt",
                    "Eire",
                    "Etc/GMT",
                    "Etc/GMT+0",
                    "Etc/GMT+1",
                    "Etc/GMT+10",
                    "Etc/GMT+11",
                    "Etc/GMT+12",
                    "Etc/GMT+2",
                    "Etc/GMT+3",
                    "Etc/GMT+4",
                    "Etc/GMT+5",
                    "Etc/GMT+6",
                    "Etc/GMT+7",
                    "Etc/GMT+8",
                    "Etc/GMT+9",
                    "Etc/GMT-0",
                    "Etc/GMT-1",
                    "Etc/GMT-10",
                    "Etc/GMT-11",
                    "Etc/GMT-12",
                    "Etc/GMT-13",
                    "Etc/GMT-14",
                    "Etc/GMT-2",
                    "Etc/GMT-3",
                    "Etc/GMT-4",
                    "Etc/GMT-5",
                    "Etc/GMT-6",
                    "Etc/GMT-7",
                    "Etc/GMT-8",
                    "Etc/GMT-9",
                    "Etc/GMT0",
                    "Etc/Greenwich",
                    "Etc/UCT",
                    "Etc/UTC",
                    "Etc/Universal",
                    "Etc/Zulu",
                    "Europe/Amsterdam",
                    "Europe/Andorra",
                    "Europe/Astrakhan",
                    "Europe/Athens",
                    "Europe/Belfast",
                    "Europe/Belgrade",
                    "Europe/Berlin",
                    "Europe/Bratislava",
                    "Europe/Brussels",
                    "Europe/Bucharest",
                    "Europe/Budapest",
                    "Europe/Busingen",
                    "Europe/Chisinau",
                    "Europe/Copenhagen",
                    "Europe/Dublin",
                    "Europe/Gibraltar",
                    "Europe/Guernsey",
                    "Europe/Helsinki",
                    "Europe/Isle_of_Man",
                    "Europe/Istanbul",
                    "Europe/Jersey",
                    "Europe/Kaliningrad",
                    "Europe/Kiev",
                    "Europe/Kirov",
                    "Europe/Kyiv",
                    "Europe/Lisbon",
                    "Europe/Ljubljana",
                    "Europe/London",
                    "Europe/Luxembourg",
                    "Europe/Madrid",
                    "Europe/Malta",
                    "Europe/Mariehamn",
                    "Europe/Minsk",
                    "Europe/Monaco",
                    "Europe/Moscow",
                    "Europe/Nicosia",
                    "Europe/Oslo",
                    "Europe/Paris",
                    "Europe/Podgorica",
                    "Europe/Prague",
                    "Europe/Riga",
                    "Europe/Rome",
                    "Europe/Samara",
                    "Europe/San_Marino",
                    "Europe/Sarajevo",
                    "Europe/Saratov",
                    "Europe/Simferopol",
                    "Europe/Skopje",
                    "Europe/Sofia",
                    "Europe/Stockholm",
                    "Europe/Tallinn",
                    "Europe/Tirane",
                    "Europe/Tiraspol",
                    "Europe/Ulyanovsk",
                    "Europe/Uzhgorod",
                    "Europe/Vaduz",
                    "Europe/Vatican",
                    "Europe/Vienna",
                    "Europe/Vilnius",
                    "Europe/Volgograd",
                    "Europe/Warsaw",
                    "Europe/Zagreb",
                    "Europe/Zaporozhye",
                    "Europe/Zurich",
                    "GB",
                    "GB-Eire",
                    "GMT",
                    "GMT+0",
                    "GMT-0",
                    "GMT0",
                    "Greenwich",
                    "HST",
                    "Hongkong",
                    "Iceland",
                    "Indian/Antananarivo",
                    "Indian/Chagos",
                    "Indian/Christmas",
                    "Indian/Cocos",
                    "Indian/Comoro",
                    "Indian/Kerguelen",
                    "Indian/Mahe",
                    "Indian/Maldives",
                    "Indian/Mauritius",
                    "Indian/Mayotte",
                    "Indian/Reunion",
                    "Iran",
                    "Israel",
                    "Jamaica",
                    "Japan",
                    "Kwajalein",
                    "Libya",
                    "MET",
                    "MST",
                    "MST7MDT",
                    "Mexico/BajaNorte",
                    "Mexico/BajaSur",
                    "Mexico/General",
                    "NZ",
                    "NZ-CHAT",
                    "Navajo",
                    "PRC",
                    "PST8PDT",
                    "Pacific/Apia",
                    "Pacific/Auckland",
                    "Pacific/Bougainville",
                    "Pacific/Chatham",
                    "Pacific/Chuuk",
                    "Pacific/Easter",
                    "Pacific/Efate",
                    "Pacific/Enderbury",
                    "Pacific/Fakaofo",
                    "Pacific/Fiji",
                    "Pacific/Funafuti",
                    "Pacific/Galapagos",
                    "Pacific/Gambier",
                    "Pacific/Guadalcanal",
                    "Pacific/Guam",
                    "Pacific/Honolulu",
                    "Pacific/Johnston",
                    "Pacific/Kanton",
                    "Pacific/Kiritimati",
                    "Pacific/Kosrae",
                    "Pacific/Kwajalein",
                    "Pacific/Majuro",
                    "Pacific/Marquesas",
                    "Pacific/Midway",
                    "Pacific/Nauru",
                    "Pacific/Niue",
                    "Pacific/Norfolk",
                    "Pacific/Noumea",
                    "Pacific/Pago_Pago",
                    "Pacific/Palau",
                    "Pacific/Pitcairn",
                    "Pacific/Pohnpei",
                    "Pacific/Ponape",
                    "Pacific/Port_Moresby",
                    "Pacific/Rarotonga",
                    "Pacific/Saipan",
                    "Pacific/Samoa",
                    "Pacific/Tahiti",
                    "Pacific/Tarawa",
                    "Pacific/Tongatapu",
                    "Pacific/Truk",
                    "Pacific/Wake",
                    "Pacific/Wallis",
                    "Pacific/Yap",
                    "Poland",
                    "Portugal",
                    "ROC",
                    "ROK",
                    "Singapore",
                    "Turkey",
                    "UCT",
                    "US/Alaska",
                    "US/Aleutian",
                    "US/Arizona",
                    "US/Central",
                    "US/East-Indiana",
                    "US/Eastern",
                    "US/Hawaii",
                    "US/Indiana-Starke",
                    "US/Michigan",
                    "US/Mountain",
                    "US/Pacific",
                    "US/Samoa",
                    "UTC",
                    "Universal",
                    "W-SU",
                    "WET",
                    "Zulu"
                ]
            },
            {
                "name": "Output format string",
                "type": "binaryString",
                "value": "dddd Do MMMM YYYY HH:mm:ss Z z"
            },
            {
                "name": "Output timezone",
                "type": "option",
                "value": [
                    "UTC",
                    "Africa/Abidjan",
                    "Africa/Accra",
                    "Africa/Addis_Ababa",
                    "Africa/Algiers",
                    "Africa/Asmara",
                    "Africa/Asmera",
                    "Africa/Bamako",
                    "Africa/Bangui",
                    "Africa/Banjul",
                    "Africa/Bissau",
                    "Africa/Blantyre",
                    "Africa/Brazzaville",
                    "Africa/Bujumbura",
                    "Africa/Cairo",
                    "Africa/Casablanca",
                    "Africa/Ceuta",
                    "Africa/Conakry",
                    "Africa/Dakar",
                    "Africa/Dar_es_Salaam",
                    "Africa/Djibouti",
                    "Africa/Douala",
                    "Africa/El_Aaiun",
                    "Africa/Freetown",
                    "Africa/Gaborone",
                    "Africa/Harare",
                    "Africa/Johannesburg",
                    "Africa/Juba",
                    "Africa/Kampala",
                    "Africa/Khartoum",
                    "Africa/Kigali",
                    "Africa/Kinshasa",
                    "Africa/Lagos",
                    "Africa/Libreville",
                    "Africa/Lome",
                    "Africa/Luanda",
                    "Africa/Lubumbashi",
                    "Africa/Lusaka",
                    "Africa/Malabo",
                    "Africa/Maputo",
                    "Africa/Maseru",
                    "Africa/Mbabane",
                    "Africa/Mogadishu",
                    "Africa/Monrovia",
                    "Africa/Nairobi",
                    "Africa/Ndjamena",
                    "Africa/Niamey",
                    "Africa/Nouakchott",
                    "Africa/Ouagadougou",
                    "Africa/Porto-Novo",
                    "Africa/Sao_Tome",
                    "Africa/Timbuktu",
                    "Africa/Tripoli",
                    "Africa/Tunis",
                    "Africa/Windhoek",
                    "America/Adak",
                    "America/Anchorage",
                    "America/Anguilla",
                    "America/Antigua",
                    "America/Araguaina",
                    "America/Argentina/Buenos_Aires",
                    "America/Argentina/Catamarca",
                    "America/Argentina/ComodRivadavia",
                    "America/Argentina/Cordoba",
                    "America/Argentina/Jujuy",
                    "America/Argentina/La_Rioja",
                    "America/Argentina/Mendoza",
                    "America/Argentina/Rio_Gallegos",
                    "America/Argentina/Salta",
                    "America/Argentina/San_Juan",
                    "America/Argentina/San_Luis",
                    "America/Argentina/Tucuman",
                    "America/Argentina/Ushuaia",
                    "America/Aruba",
                    "America/Asuncion",
                    "America/Atikokan",
                    "America/Atka",
                    "America/Bahia",
                    "America/Bahia_Banderas",
                    "America/Barbados",
                    "America/Belem",
                    "America/Belize",
                    "America/Blanc-Sablon",
                    "America/Boa_Vista",
                    "America/Bogota",
                    "America/Boise",
                    "America/Buenos_Aires",
                    "America/Cambridge_Bay",
                    "America/Campo_Grande",
                    "America/Cancun",
                    "America/Caracas",
                    "America/Catamarca",
                    "America/Cayenne",
                    "America/Cayman",
                    "America/Chicago",
                    "America/Chihuahua",
                    "America/Coral_Harbour",
                    "America/Cordoba",
                    "America/Costa_Rica",
                    "America/Creston",
                    "America/Cuiaba",
                    "America/Curacao",
                    "America/Danmarkshavn",
                    "America/Dawson",
                    "America/Dawson_Creek",
                    "America/Denver",
                    "America/Detroit",
                    "America/Dominica",
                    "America/Edmonton",
                    "America/Eirunepe",
                    "America/El_Salvador",
                    "America/Ensenada",
                    "America/Fort_Nelson",
                    "America/Fort_Wayne",
                    "America/Fortaleza",
                    "America/Glace_Bay",
                    "America/Godthab",
                    "America/Goose_Bay",
                    "America/Grand_Turk",
                    "America/Grenada",
                    "America/Guadeloupe",
                    "America/Guatemala",
                    "America/Guayaquil",
                    "America/Guyana",
                    "America/Halifax",
                    "America/Havana",
                    "America/Hermosillo",
                    "America/Indiana/Indianapolis",
                    "America/Indiana/Knox",
                    "America/Indiana/Marengo",
                    "America/Indiana/Petersburg",
                    "America/Indiana/Tell_City",
                    "America/Indiana/Vevay",
                    "America/Indiana/Vincennes",
                    "America/Indiana/Winamac",
                    "America/Indianapolis",
                    "America/Inuvik",
                    "America/Iqaluit",
                    "America/Jamaica",
                    "America/Jujuy",
                    "America/Juneau",
                    "America/Kentucky/Louisville",
                    "America/Kentucky/Monticello",
                    "America/Knox_IN",
                    "America/Kralendijk",
                    "America/La_Paz",
                    "America/Lima",
                    "America/Los_Angeles",
                    "America/Louisville",
                    "America/Lower_Princes",
                    "America/Maceio",
                    "America/Managua",
                    "America/Manaus",
                    "America/Marigot",
                    "America/Martinique",
                    "America/Matamoros",
                    "America/Mazatlan",
                    "America/Mendoza",
                    "America/Menominee",
                    "America/Merida",
                    "America/Metlakatla",
                    "America/Mexico_City",
                    "America/Miquelon",
                    "America/Moncton",
                    "America/Monterrey",
                    "America/Montevideo",
                    "America/Montreal",
                    "America/Montserrat",
                    "America/Nassau",
                    "America/New_York",
                    "America/Nipigon",
                    "America/Nome",
                    "America/Noronha",
                    "America/North_Dakota/Beulah",
                    "America/North_Dakota/Center",
                    "America/North_Dakota/New_Salem",
                    "America/Nuuk",
                    "America/Ojinaga",
                    "America/Panama",
                    "America/Pangnirtung",
                    "America/Paramaribo",
                    "America/Phoenix",
                    "America/Port-au-Prince",
                    "America/Port_of_Spain",
                    "America/Porto_Acre",
                    "America/Porto_Velho",
                    "America/Puerto_Rico",
                    "America/Punta_Arenas",
                    "America/Rainy_River",
                    "America/Rankin_Inlet",
                    "America/Recife",
                    "America/Regina",
                    "America/Resolute",
                    "America/Rio_Branco",
                    "America/Rosario",
                    "America/Santa_Isabel",
                    "America/Santarem",
                    "America/Santiago",
                    "America/Santo_Domingo",
                    "America/Sao_Paulo",
                    "America/Scoresbysund",
                    "America/Shiprock",
                    "America/Sitka",
                    "America/St_Barthelemy",
                    "America/St_Johns",
                    "America/St_Kitts",
                    "America/St_Lucia",
                    "America/St_Thomas",
                    "America/St_Vincent",
                    "America/Swift_Current",
                    "America/Tegucigalpa",
                    "America/Thule",
                    "America/Thunder_Bay",
                    "America/Tijuana",
                    "America/Toronto",
                    "America/Tortola",
                    "America/Vancouver",
                    "America/Virgin",
                    "America/Whitehorse",
                    "America/Winnipeg",
                    "America/Yakutat",
                    "America/Yellowknife",
                    "Antarctica/Casey",
                    "Antarctica/Davis",
                    "Antarctica/DumontDUrville",
                    "Antarctica/Macquarie",
                    "Antarctica/Mawson",
                    "Antarctica/McMurdo",
                    "Antarctica/Palmer",
                    "Antarctica/Rothera",
                    "Antarctica/South_Pole",
                    "Antarctica/Syowa",
                    "Antarctica/Troll",
                    "Antarctica/Vostok",
                    "Arctic/Longyearbyen",
                    "Asia/Aden",
                    "Asia/Almaty",
                    "Asia/Amman",
                    "Asia/Anadyr",
                    "Asia/Aqtau",
                    "Asia/Aqtobe",
                    "Asia/Ashgabat",
                    "Asia/Ashkhabad",
                    "Asia/Atyrau",
                    "Asia/Baghdad",
                    "Asia/Bahrain",
                    "Asia/Baku",
                    "Asia/Bangkok",
                    "Asia/Barnaul",
                    "Asia/Beirut",
                    "Asia/Bishkek",
                    "Asia/Brunei",
                    "Asia/Calcutta",
                    "Asia/Chita",
                    "Asia/Choibalsan",
                    "Asia/Chongqing",
                    "Asia/Chungking",
                    "Asia/Colombo",
                    "Asia/Dacca",
                    "Asia/Damascus",
                    "Asia/Dhaka",
                    "Asia/Dili",
                    "Asia/Dubai",
                    "Asia/Dushanbe",
                    "Asia/Famagusta",
                    "Asia/Gaza",
                    "Asia/Harbin",
                    "Asia/Hebron",
                    "Asia/Ho_Chi_Minh",
                    "Asia/Hong_Kong",
                    "Asia/Hovd",
                    "Asia/Irkutsk",
                    "Asia/Istanbul",
                    "Asia/Jakarta",
                    "Asia/Jayapura",
                    "Asia/Jerusalem",
                    "Asia/Kabul",
                    "Asia/Kamchatka",
                    "Asia/Karachi",
                    "Asia/Kashgar",
                    "Asia/Kathmandu",
                    "Asia/Katmandu",
                    "Asia/Khandyga",
                    "Asia/Kolkata",
                    "Asia/Krasnoyarsk",
                    "Asia/Kuala_Lumpur",
                    "Asia/Kuching",
                    "Asia/Kuwait",
                    "Asia/Macao",
                    "Asia/Macau",
                    "Asia/Magadan",
                    "Asia/Makassar",
                    "Asia/Manila",
                    "Asia/Muscat",
                    "Asia/Nicosia",
                    "Asia/Novokuznetsk",
                    "Asia/Novosibirsk",
                    "Asia/Omsk",
                    "Asia/Oral",
                    "Asia/Phnom_Penh",
                    "Asia/Pontianak",
                    "Asia/Pyongyang",
                    "Asia/Qatar",
                    "Asia/Qostanay",
                    "Asia/Qyzylorda",
                    "Asia/Rangoon",
                    "Asia/Riyadh",
                    "Asia/Saigon",
                    "Asia/Sakhalin",
                    "Asia/Samarkand",
                    "Asia/Seoul",
                    "Asia/Shanghai",
                    "Asia/Singapore",
                    "Asia/Srednekolymsk",
                    "Asia/Taipei",
                    "Asia/Tashkent",
                    "Asia/Tbilisi",
                    "Asia/Tehran",
                    "Asia/Tel_Aviv",
                    "Asia/Thimbu",
                    "Asia/Thimphu",
                    "Asia/Tokyo",
                    "Asia/Tomsk",
                    "Asia/Ujung_Pandang",
                    "Asia/Ulaanbaatar",
                    "Asia/Ulan_Bator",
                    "Asia/Urumqi",
                    "Asia/Ust-Nera",
                    "Asia/Vientiane",
                    "Asia/Vladivostok",
                    "Asia/Yakutsk",
                    "Asia/Yangon",
                    "Asia/Yekaterinburg",
                    "Asia/Yerevan",
                    "Atlantic/Azores",
                    "Atlantic/Bermuda",
                    "Atlantic/Canary",
                    "Atlantic/Cape_Verde",
                    "Atlantic/Faeroe",
                    "Atlantic/Faroe",
                    "Atlantic/Jan_Mayen",
                    "Atlantic/Madeira",
                    "Atlantic/Reykjavik",
                    "Atlantic/South_Georgia",
                    "Atlantic/St_Helena",
                    "Atlantic/Stanley",
                    "Australia/ACT",
                    "Australia/Adelaide",
                    "Australia/Brisbane",
                    "Australia/Broken_Hill",
                    "Australia/Canberra",
                    "Australia/Currie",
                    "Australia/Darwin",
                    "Australia/Eucla",
                    "Australia/Hobart",
                    "Australia/LHI",
                    "Australia/Lindeman",
                    "Australia/Lord_Howe",
                    "Australia/Melbourne",
                    "Australia/NSW",
                    "Australia/North",
                    "Australia/Perth",
                    "Australia/Queensland",
                    "Australia/South",
                    "Australia/Sydney",
                    "Australia/Tasmania",
                    "Australia/Victoria",
                    "Australia/West",
                    "Australia/Yancowinna",
                    "Brazil/Acre",
                    "Brazil/DeNoronha",
                    "Brazil/East",
                    "Brazil/West",
                    "CET",
                    "CST6CDT",
                    "Canada/Atlantic",
                    "Canada/Central",
                    "Canada/Eastern",
                    "Canada/Mountain",
                    "Canada/Newfoundland",
                    "Canada/Pacific",
                    "Canada/Saskatchewan",
                    "Canada/Yukon",
                    "Chile/Continental",
                    "Chile/EasterIsland",
                    "Cuba",
                    "EET",
                    "EST",
                    "EST5EDT",
                    "Egypt",
                    "Eire",
                    "Etc/GMT",
                    "Etc/GMT+0",
                    "Etc/GMT+1",
                    "Etc/GMT+10",
                    "Etc/GMT+11",
                    "Etc/GMT+12",
                    "Etc/GMT+2",
                    "Etc/GMT+3",
                    "Etc/GMT+4",
                    "Etc/GMT+5",
                    "Etc/GMT+6",
                    "Etc/GMT+7",
                    "Etc/GMT+8",
                    "Etc/GMT+9",
                    "Etc/GMT-0",
                    "Etc/GMT-1",
                    "Etc/GMT-10",
                    "Etc/GMT-11",
                    "Etc/GMT-12",
                    "Etc/GMT-13",
                    "Etc/GMT-14",
                    "Etc/GMT-2",
                    "Etc/GMT-3",
                    "Etc/GMT-4",
                    "Etc/GMT-5",
                    "Etc/GMT-6",
                    "Etc/GMT-7",
                    "Etc/GMT-8",
                    "Etc/GMT-9",
                    "Etc/GMT0",
                    "Etc/Greenwich",
                    "Etc/UCT",
                    "Etc/UTC",
                    "Etc/Universal",
                    "Etc/Zulu",
                    "Europe/Amsterdam",
                    "Europe/Andorra",
                    "Europe/Astrakhan",
                    "Europe/Athens",
                    "Europe/Belfast",
                    "Europe/Belgrade",
                    "Europe/Berlin",
                    "Europe/Bratislava",
                    "Europe/Brussels",
                    "Europe/Bucharest",
                    "Europe/Budapest",
                    "Europe/Busingen",
                    "Europe/Chisinau",
                    "Europe/Copenhagen",
                    "Europe/Dublin",
                    "Europe/Gibraltar",
                    "Europe/Guernsey",
                    "Europe/Helsinki",
                    "Europe/Isle_of_Man",
                    "Europe/Istanbul",
                    "Europe/Jersey",
                    "Europe/Kaliningrad",
                    "Europe/Kiev",
                    "Europe/Kirov",
                    "Europe/Kyiv",
                    "Europe/Lisbon",
                    "Europe/Ljubljana",
                    "Europe/London",
                    "Europe/Luxembourg",
                    "Europe/Madrid",
                    "Europe/Malta",
                    "Europe/Mariehamn",
                    "Europe/Minsk",
                    "Europe/Monaco",
                    "Europe/Moscow",
                    "Europe/Nicosia",
                    "Europe/Oslo",
                    "Europe/Paris",
                    "Europe/Podgorica",
                    "Europe/Prague",
                    "Europe/Riga",
                    "Europe/Rome",
                    "Europe/Samara",
                    "Europe/San_Marino",
                    "Europe/Sarajevo",
                    "Europe/Saratov",
                    "Europe/Simferopol",
                    "Europe/Skopje",
                    "Europe/Sofia",
                    "Europe/Stockholm",
                    "Europe/Tallinn",
                    "Europe/Tirane",
                    "Europe/Tiraspol",
                    "Europe/Ulyanovsk",
                    "Europe/Uzhgorod",
                    "Europe/Vaduz",
                    "Europe/Vatican",
                    "Europe/Vienna",
                    "Europe/Vilnius",
                    "Europe/Volgograd",
                    "Europe/Warsaw",
                    "Europe/Zagreb",
                    "Europe/Zaporozhye",
                    "Europe/Zurich",
                    "GB",
                    "GB-Eire",
                    "GMT",
                    "GMT+0",
                    "GMT-0",
                    "GMT0",
                    "Greenwich",
                    "HST",
                    "Hongkong",
                    "Iceland",
                    "Indian/Antananarivo",
                    "Indian/Chagos",
                    "Indian/Christmas",
                    "Indian/Cocos",
                    "Indian/Comoro",
                    "Indian/Kerguelen",
                    "Indian/Mahe",
                    "Indian/Maldives",
                    "Indian/Mauritius",
                    "Indian/Mayotte",
                    "Indian/Reunion",
                    "Iran",
                    "Israel",
                    "Jamaica",
                    "Japan",
                    "Kwajalein",
                    "Libya",
                    "MET",
                    "MST",
                    "MST7MDT",
                    "Mexico/BajaNorte",
                    "Mexico/BajaSur",
                    "Mexico/General",
                    "NZ",
                    "NZ-CHAT",
                    "Navajo",
                    "PRC",
                    "PST8PDT",
                    "Pacific/Apia",
                    "Pacific/Auckland",
                    "Pacific/Bougainville",
                    "Pacific/Chatham",
                    "Pacific/Chuuk",
                    "Pacific/Easter",
                    "Pacific/Efate",
                    "Pacific/Enderbury",
                    "Pacific/Fakaofo",
                    "Pacific/Fiji",
                    "Pacific/Funafuti",
                    "Pacific/Galapagos",
                    "Pacific/Gambier",
                    "Pacific/Guadalcanal",
                    "Pacific/Guam",
                    "Pacific/Honolulu",
                    "Pacific/Johnston",
                    "Pacific/Kanton",
                    "Pacific/Kiritimati",
                    "Pacific/Kosrae",
                    "Pacific/Kwajalein",
                    "Pacific/Majuro",
                    "Pacific/Marquesas",
                    "Pacific/Midway",
                    "Pacific/Nauru",
                    "Pacific/Niue",
                    "Pacific/Norfolk",
                    "Pacific/Noumea",
                    "Pacific/Pago_Pago",
                    "Pacific/Palau",
                    "Pacific/Pitcairn",
                    "Pacific/Pohnpei",
                    "Pacific/Ponape",
                    "Pacific/Port_Moresby",
                    "Pacific/Rarotonga",
                    "Pacific/Saipan",
                    "Pacific/Samoa",
                    "Pacific/Tahiti",
                    "Pacific/Tarawa",
                    "Pacific/Tongatapu",
                    "Pacific/Truk",
                    "Pacific/Wake",
                    "Pacific/Wallis",
                    "Pacific/Yap",
                    "Poland",
                    "Portugal",
                    "ROC",
                    "ROK",
                    "Singapore",
                    "Turkey",
                    "UCT",
                    "US/Alaska",
                    "US/Aleutian",
                    "US/Arizona",
                    "US/Central",
                    "US/East-Indiana",
                    "US/Eastern",
                    "US/Hawaii",
                    "US/Indiana-Starke",
                    "US/Michigan",
                    "US/Mountain",
                    "US/Pacific",
                    "US/Samoa",
                    "UTC",
                    "Universal",
                    "W-SU",
                    "WET",
                    "Zulu"
                ]
            }
        ]
    },
    "Triple DES Decrypt": {
        "module": "Ciphers",
        "description": "Triple DES applies DES three times to each block to increase key size.<br><br><b>Key:</b> Triple DES uses a key length of 24 bytes (192 bits).<br>DES uses a key length of 8 bytes (64 bits).<br><br><b>IV:</b> The Initialization Vector should be 8 bytes long. If not entered, it will default to 8 null bytes.<br><br><b>Padding:</b> In CBC and ECB mode, PKCS#7 padding will be used as a default.",
        "infoURL": "https://wikipedia.org/wiki/Triple_DES",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Key",
                "type": "toggleString",
                "value": "",
                "toggleValues": [
                    "Hex",
                    "UTF8",
                    "Latin1",
                    "Base64"
                ]
            },
            {
                "name": "IV",
                "type": "toggleString",
                "value": "",
                "toggleValues": [
                    "Hex",
                    "UTF8",
                    "Latin1",
                    "Base64"
                ]
            },
            {
                "name": "Mode",
                "type": "option",
                "value": [
                    "CBC",
                    "CFB",
                    "OFB",
                    "CTR",
                    "ECB",
                    "CBC/NoPadding",
                    "ECB/NoPadding"
                ]
            },
            {
                "name": "Input",
                "type": "option",
                "value": [
                    "Hex",
                    "Raw"
                ]
            },
            {
                "name": "Output",
                "type": "option",
                "value": [
                    "Raw",
                    "Hex"
                ]
            }
        ]
    },
    "Triple DES Encrypt": {
        "module": "Ciphers",
        "description": "Triple DES applies DES three times to each block to increase key size.<br><br><b>Key:</b> Triple DES uses a key length of 24 bytes (192 bits).<br>DES uses a key length of 8 bytes (64 bits).<br><br>You can generate a password-based key using one of the KDF operations.<br><br><b>IV:</b> The Initialization Vector should be 8 bytes long. If not entered, it will default to 8 null bytes.<br><br><b>Padding:</b> In CBC and ECB mode, PKCS#7 padding will be used.",
        "infoURL": "https://wikipedia.org/wiki/Triple_DES",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Key",
                "type": "toggleString",
                "value": "",
                "toggleValues": [
                    "Hex",
                    "UTF8",
                    "Latin1",
                    "Base64"
                ]
            },
            {
                "name": "IV",
                "type": "toggleString",
                "value": "",
                "toggleValues": [
                    "Hex",
                    "UTF8",
                    "Latin1",
                    "Base64"
                ]
            },
            {
                "name": "Mode",
                "type": "option",
                "value": [
                    "CBC",
                    "CFB",
                    "OFB",
                    "CTR",
                    "ECB"
                ]
            },
            {
                "name": "Input",
                "type": "option",
                "value": [
                    "Raw",
                    "Hex"
                ]
            },
            {
                "name": "Output",
                "type": "option",
                "value": [
                    "Hex",
                    "Raw"
                ]
            }
        ]
    },
    "Typex": {
        "module": "Bletchley",
        "description": "Encipher/decipher with the WW2 Typex machine.<br><br>Typex was originally built by the British Royal Air Force prior to WW2, and is based on the Enigma machine with some improvements made, including using five rotors with more stepping points and interchangeable wiring cores. It was used across the British and Commonwealth militaries. A number of later variants were produced; here we simulate a WW2 era Mark 22 Typex with plugboards for the reflector and input. Typex rotors were changed regularly and none are public: a random example set are provided.<br><br>To configure the reflector plugboard, enter a string of connected pairs of letters in the reflector box, e.g. <code>AB CD EF</code> connects A to B, C to D, and E to F (you'll need to connect every letter). There is also an input plugboard: unlike Enigma's plugboard, it's not restricted to pairs, so it's entered like a rotor (without stepping). To create your own rotor, enter the letters that the rotor maps A to Z to, in order, optionally followed by <code>&lt;</code> then a list of stepping points.<br><br>More detailed descriptions of the Enigma, Typex and Bombe operations <a href='https://github.com/gchq/CyberChef/wiki/Enigma,-the-Bombe,-and-Typex'>can be found here</a>.",
        "infoURL": "https://wikipedia.org/wiki/Typex",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "1st (left-hand) rotor",
                "type": "editableOption",
                "value": [
                    {
                        "name": "Example 1",
                        "value": "MCYLPQUVRXGSAOWNBJEZDTFKHI<BFHNQUW"
                    },
                    {
                        "name": "Example 2",
                        "value": "KHWENRCBISXJQGOFMAPVYZDLTU<BFHNQUW"
                    },
                    {
                        "name": "Example 3",
                        "value": "BYPDZMGIKQCUSATREHOJNLFWXV<BFHNQUW"
                    },
                    {
                        "name": "Example 4",
                        "value": "ZANJCGDLVHIXOBRPMSWQUKFYET<BFHNQUW"
                    },
                    {
                        "name": "Example 5",
                        "value": "QXBGUTOVFCZPJIHSWERYNDAMLK<BFHNQUW"
                    },
                    {
                        "name": "Example 6",
                        "value": "BDCNWUEIQVFTSXALOGZJYMHKPR<BFHNQUW"
                    },
                    {
                        "name": "Example 7",
                        "value": "WJUKEIABMSGFTQZVCNPHORDXYL<BFHNQUW"
                    },
                    {
                        "name": "Example 8",
                        "value": "TNVCZXDIPFWQKHSJMAOYLEURGB<BFHNQUW"
                    }
                ]
            },
            {
                "name": "1st rotor reversed",
                "type": "boolean",
                "value": false
            },
            {
                "name": "1st rotor ring setting",
                "type": "option",
                "value": [
                    "A",
                    "B",
                    "C",
                    "D",
                    "E",
                    "F",
                    "G",
                    "H",
                    "I",
                    "J",
                    "K",
                    "L",
                    "M",
                    "N",
                    "O",
                    "P",
                    "Q",
                    "R",
                    "S",
                    "T",
                    "U",
                    "V",
                    "W",
                    "X",
                    "Y",
                    "Z"
                ]
            },
            {
                "name": "1st rotor initial value",
                "type": "option",
                "value": [
                    "A",
                    "B",
                    "C",
                    "D",
                    "E",
                    "F",
                    "G",
                    "H",
                    "I",
                    "J",
                    "K",
                    "L",
                    "M",
                    "N",
                    "O",
                    "P",
                    "Q",
                    "R",
                    "S",
                    "T",
                    "U",
                    "V",
                    "W",
                    "X",
                    "Y",
                    "Z"
                ]
            },
            {
                "name": "2nd rotor",
                "type": "editableOption",
                "value": [
                    {
                        "name": "Example 1",
                        "value": "MCYLPQUVRXGSAOWNBJEZDTFKHI<BFHNQUW"
                    },
                    {
                        "name": "Example 2",
                        "value": "KHWENRCBISXJQGOFMAPVYZDLTU<BFHNQUW"
                    },
                    {
                        "name": "Example 3",
                        "value": "BYPDZMGIKQCUSATREHOJNLFWXV<BFHNQUW"
                    },
                    {
                        "name": "Example 4",
                        "value": "ZANJCGDLVHIXOBRPMSWQUKFYET<BFHNQUW"
                    },
                    {
                        "name": "Example 5",
                        "value": "QXBGUTOVFCZPJIHSWERYNDAMLK<BFHNQUW"
                    },
                    {
                        "name": "Example 6",
                        "value": "BDCNWUEIQVFTSXALOGZJYMHKPR<BFHNQUW"
                    },
                    {
                        "name": "Example 7",
                        "value": "WJUKEIABMSGFTQZVCNPHORDXYL<BFHNQUW"
                    },
                    {
                        "name": "Example 8",
                        "value": "TNVCZXDIPFWQKHSJMAOYLEURGB<BFHNQUW"
                    }
                ],
                "defaultIndex": 1
            },
            {
                "name": "2nd rotor reversed",
                "type": "boolean",
                "value": false
            },
            {
                "name": "2nd rotor ring setting",
                "type": "option",
                "value": [
                    "A",
                    "B",
                    "C",
                    "D",
                    "E",
                    "F",
                    "G",
                    "H",
                    "I",
                    "J",
                    "K",
                    "L",
                    "M",
                    "N",
                    "O",
                    "P",
                    "Q",
                    "R",
                    "S",
                    "T",
                    "U",
                    "V",
                    "W",
                    "X",
                    "Y",
                    "Z"
                ]
            },
            {
                "name": "2nd rotor initial value",
                "type": "option",
                "value": [
                    "A",
                    "B",
                    "C",
                    "D",
                    "E",
                    "F",
                    "G",
                    "H",
                    "I",
                    "J",
                    "K",
                    "L",
                    "M",
                    "N",
                    "O",
                    "P",
                    "Q",
                    "R",
                    "S",
                    "T",
                    "U",
                    "V",
                    "W",
                    "X",
                    "Y",
                    "Z"
                ]
            },
            {
                "name": "3rd (middle) rotor",
                "type": "editableOption",
                "value": [
                    {
                        "name": "Example 1",
                        "value": "MCYLPQUVRXGSAOWNBJEZDTFKHI<BFHNQUW"
                    },
                    {
                        "name": "Example 2",
                        "value": "KHWENRCBISXJQGOFMAPVYZDLTU<BFHNQUW"
                    },
                    {
                        "name": "Example 3",
                        "value": "BYPDZMGIKQCUSATREHOJNLFWXV<BFHNQUW"
                    },
                    {
                        "name": "Example 4",
                        "value": "ZANJCGDLVHIXOBRPMSWQUKFYET<BFHNQUW"
                    },
                    {
                        "name": "Example 5",
                        "value": "QXBGUTOVFCZPJIHSWERYNDAMLK<BFHNQUW"
                    },
                    {
                        "name": "Example 6",
                        "value": "BDCNWUEIQVFTSXALOGZJYMHKPR<BFHNQUW"
                    },
                    {
                        "name": "Example 7",
                        "value": "WJUKEIABMSGFTQZVCNPHORDXYL<BFHNQUW"
                    },
                    {
                        "name": "Example 8",
                        "value": "TNVCZXDIPFWQKHSJMAOYLEURGB<BFHNQUW"
                    }
                ],
                "defaultIndex": 2
            },
            {
                "name": "3rd rotor reversed",
                "type": "boolean",
                "value": false
            },
            {
                "name": "3rd rotor ring setting",
                "type": "option",
                "value": [
                    "A",
                    "B",
                    "C",
                    "D",
                    "E",
                    "F",
                    "G",
                    "H",
                    "I",
                    "J",
                    "K",
                    "L",
                    "M",
                    "N",
                    "O",
                    "P",
                    "Q",
                    "R",
                    "S",
                    "T",
                    "U",
                    "V",
                    "W",
                    "X",
                    "Y",
                    "Z"
                ]
            },
            {
                "name": "3rd rotor initial value",
                "type": "option",
                "value": [
                    "A",
                    "B",
                    "C",
                    "D",
                    "E",
                    "F",
                    "G",
                    "H",
                    "I",
                    "J",
                    "K",
                    "L",
                    "M",
                    "N",
                    "O",
                    "P",
                    "Q",
                    "R",
                    "S",
                    "T",
                    "U",
                    "V",
                    "W",
                    "X",
                    "Y",
                    "Z"
                ]
            },
            {
                "name": "4th (static) rotor",
                "type": "editableOption",
                "value": [
                    {
                        "name": "Example 1",
                        "value": "MCYLPQUVRXGSAOWNBJEZDTFKHI<BFHNQUW"
                    },
                    {
                        "name": "Example 2",
                        "value": "KHWENRCBISXJQGOFMAPVYZDLTU<BFHNQUW"
                    },
                    {
                        "name": "Example 3",
                        "value": "BYPDZMGIKQCUSATREHOJNLFWXV<BFHNQUW"
                    },
                    {
                        "name": "Example 4",
                        "value": "ZANJCGDLVHIXOBRPMSWQUKFYET<BFHNQUW"
                    },
                    {
                        "name": "Example 5",
                        "value": "QXBGUTOVFCZPJIHSWERYNDAMLK<BFHNQUW"
                    },
                    {
                        "name": "Example 6",
                        "value": "BDCNWUEIQVFTSXALOGZJYMHKPR<BFHNQUW"
                    },
                    {
                        "name": "Example 7",
                        "value": "WJUKEIABMSGFTQZVCNPHORDXYL<BFHNQUW"
                    },
                    {
                        "name": "Example 8",
                        "value": "TNVCZXDIPFWQKHSJMAOYLEURGB<BFHNQUW"
                    }
                ],
                "defaultIndex": 3
            },
            {
                "name": "4th rotor reversed",
                "type": "boolean",
                "value": false
            },
            {
                "name": "4th rotor ring setting",
                "type": "option",
                "value": [
                    "A",
                    "B",
                    "C",
                    "D",
                    "E",
                    "F",
                    "G",
                    "H",
                    "I",
                    "J",
                    "K",
                    "L",
                    "M",
                    "N",
                    "O",
                    "P",
                    "Q",
                    "R",
                    "S",
                    "T",
                    "U",
                    "V",
                    "W",
                    "X",
                    "Y",
                    "Z"
                ]
            },
            {
                "name": "4th rotor initial value",
                "type": "option",
                "value": [
                    "A",
                    "B",
                    "C",
                    "D",
                    "E",
                    "F",
                    "G",
                    "H",
                    "I",
                    "J",
                    "K",
                    "L",
                    "M",
                    "N",
                    "O",
                    "P",
                    "Q",
                    "R",
                    "S",
                    "T",
                    "U",
                    "V",
                    "W",
                    "X",
                    "Y",
                    "Z"
                ]
            },
            {
                "name": "5th (right-hand, static) rotor",
                "type": "editableOption",
                "value": [
                    {
                        "name": "Example 1",
                        "value": "MCYLPQUVRXGSAOWNBJEZDTFKHI<BFHNQUW"
                    },
                    {
                        "name": "Example 2",
                        "value": "KHWENRCBISXJQGOFMAPVYZDLTU<BFHNQUW"
                    },
                    {
                        "name": "Example 3",
                        "value": "BYPDZMGIKQCUSATREHOJNLFWXV<BFHNQUW"
                    },
                    {
                        "name": "Example 4",
                        "value": "ZANJCGDLVHIXOBRPMSWQUKFYET<BFHNQUW"
                    },
                    {
                        "name": "Example 5",
                        "value": "QXBGUTOVFCZPJIHSWERYNDAMLK<BFHNQUW"
                    },
                    {
                        "name": "Example 6",
                        "value": "BDCNWUEIQVFTSXALOGZJYMHKPR<BFHNQUW"
                    },
                    {
                        "name": "Example 7",
                        "value": "WJUKEIABMSGFTQZVCNPHORDXYL<BFHNQUW"
                    },
                    {
                        "name": "Example 8",
                        "value": "TNVCZXDIPFWQKHSJMAOYLEURGB<BFHNQUW"
                    }
                ],
                "defaultIndex": 4
            },
            {
                "name": "5th rotor reversed",
                "type": "boolean",
                "value": false
            },
            {
                "name": "5th rotor ring setting",
                "type": "option",
                "value": [
                    "A",
                    "B",
                    "C",
                    "D",
                    "E",
                    "F",
                    "G",
                    "H",
                    "I",
                    "J",
                    "K",
                    "L",
                    "M",
                    "N",
                    "O",
                    "P",
                    "Q",
                    "R",
                    "S",
                    "T",
                    "U",
                    "V",
                    "W",
                    "X",
                    "Y",
                    "Z"
                ]
            },
            {
                "name": "5th rotor initial value",
                "type": "option",
                "value": [
                    "A",
                    "B",
                    "C",
                    "D",
                    "E",
                    "F",
                    "G",
                    "H",
                    "I",
                    "J",
                    "K",
                    "L",
                    "M",
                    "N",
                    "O",
                    "P",
                    "Q",
                    "R",
                    "S",
                    "T",
                    "U",
                    "V",
                    "W",
                    "X",
                    "Y",
                    "Z"
                ]
            },
            {
                "name": "Reflector",
                "type": "editableOption",
                "value": [
                    {
                        "name": "Example",
                        "value": "AN BC FG IE KD LU MH OR TS VZ WQ XJ YP"
                    }
                ]
            },
            {
                "name": "Plugboard",
                "type": "string",
                "value": ""
            },
            {
                "name": "Typex keyboard emulation",
                "type": "option",
                "value": [
                    "None",
                    "Encrypt",
                    "Decrypt"
                ]
            },
            {
                "name": "Strict output",
                "type": "boolean",
                "value": true,
                "hint": "Remove non-alphabet letters and group output"
            }
        ]
    },
    "UNIX Timestamp to Windows Filetime": {
        "module": "Default",
        "description": "Converts a UNIX timestamp to a Windows Filetime value.<br><br>A Windows Filetime is a 64-bit value representing the number of 100-nanosecond intervals since January 1, 1601 UTC.<br><br>A UNIX timestamp is a 32-bit value representing the number of seconds since January 1, 1970 UTC (the UNIX epoch).<br><br>This operation also supports UNIX timestamps in milliseconds, microseconds and nanoseconds.",
        "infoURL": "https://msdn.microsoft.com/en-us/library/windows/desktop/ms724284(v=vs.85).aspx",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Input units",
                "type": "option",
                "value": [
                    "Seconds (s)",
                    "Milliseconds (ms)",
                    "Microseconds (μs)",
                    "Nanoseconds (ns)"
                ]
            },
            {
                "name": "Output format",
                "type": "option",
                "value": [
                    "Decimal",
                    "Hex (big endian)",
                    "Hex (little endian)"
                ]
            }
        ]
    },
    "URL Decode": {
        "module": "URL",
        "description": "Converts URI/URL percent-encoded characters back to their raw values.<br><br>e.g. <code>%3d</code> becomes <code>=</code>",
        "infoURL": "https://wikipedia.org/wiki/Percent-encoding",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [],
        "checks": [
            {
                "pattern": ".*(?:%[\\da-f]{2}.*){4}",
                "flags": "i",
                "args": []
            }
        ]
    },
    "URL Encode": {
        "module": "URL",
        "description": "Encodes problematic characters into percent-encoding, a format supported by URIs/URLs.<br><br>e.g. <code>=</code> becomes <code>%3d</code>",
        "infoURL": "https://wikipedia.org/wiki/Percent-encoding",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Encode all special chars",
                "type": "boolean",
                "value": false
            }
        ]
    },
    "Unescape string": {
        "module": "Default",
        "description": "Unescapes characters in a string that have been escaped. For example, <code>Don\\'t stop me now</code> becomes <code>Don't stop me now</code>.<br><br>Supports the following escape sequences:<ul><li><code>\\n</code> (Line feed/newline)</li><li><code>\\r</code> (Carriage return)</li><li><code>\\t</code> (Horizontal tab)</li><li><code>\\b</code> (Backspace)</li><li><code>\\f</code> (Form feed)</li><li><code>\\nnn</code> (Octal, where n is 0-7)</li><li><code>\\xnn</code> (Hex, where n is 0-f)</li><li><code>\\\\</code> (Backslash)</li><li><code>\\'</code> (Single quote)</li><li><code>\\&quot;</code> (Double quote)</li><li><code>\\unnnn</code> (Unicode character)</li><li><code>\\u{nnnnnn}</code> (Unicode code point)</li></ul>",
        "infoURL": "https://wikipedia.org/wiki/Escape_sequence",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": []
    },
    "Unescape Unicode Characters": {
        "module": "Default",
        "description": "Converts unicode-escaped character notation back into raw characters.<br><br>Supports the prefixes:<ul><li><code>\\u</code></li><li><code>%u</code></li><li><code>U+</code></li></ul>e.g. <code>\\u03c3\\u03bf\\u03c5</code> becomes <code>σου</code>",
        "infoURL": null,
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Prefix",
                "type": "option",
                "value": [
                    "\\u",
                    "%u",
                    "U+"
                ]
            }
        ]
    },
    "Unicode Text Format": {
        "module": "Default",
        "description": "Adds Unicode combining characters to change formatting of plaintext.",
        "infoURL": "https://wikipedia.org/wiki/Combining_character",
        "inputType": "byteArray",
        "outputType": "byteArray",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Underline",
                "type": "boolean",
                "value": "false"
            },
            {
                "name": "Strikethrough",
                "type": "boolean",
                "value": "false"
            }
        ]
    },
    "Unique": {
        "module": "Default",
        "description": "Removes duplicate strings from the input.",
        "infoURL": null,
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Delimiter",
                "type": "option",
                "value": [
                    "Line feed",
                    "CRLF",
                    "Space",
                    "Comma",
                    "Semi-colon",
                    "Colon",
                    "Nothing (separate chars)"
                ]
            },
            {
                "name": "Display count",
                "type": "boolean",
                "value": false
            }
        ]
    },
    "Untar": {
        "module": "Compression",
        "description": "Unpacks a tarball and displays it per file.",
        "infoURL": "https://wikipedia.org/wiki/Tar_(computing)",
        "inputType": "ArrayBuffer",
        "outputType": "html",
        "flowControl": false,
        "manualBake": false,
        "args": [],
        "checks": [
            {
                "pattern": "^.{257}\\x75\\x73\\x74\\x61\\x72",
                "flags": "",
                "args": []
            }
        ]
    },
    "Unzip": {
        "module": "Compression",
        "description": "Decompresses data using the PKZIP algorithm and displays it per file, with support for passwords.",
        "infoURL": "https://wikipedia.org/wiki/Zip_(file_format)",
        "inputType": "ArrayBuffer",
        "outputType": "html",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Password",
                "type": "binaryString",
                "value": ""
            },
            {
                "name": "Verify result",
                "type": "boolean",
                "value": false
            }
        ],
        "checks": [
            {
                "pattern": "^\\x50\\x4b(?:\\x03|\\x05|\\x07)(?:\\x04|\\x06|\\x08)",
                "flags": "",
                "args": [
                    "",
                    false
                ]
            }
        ]
    },
    "VarInt Decode": {
        "module": "Default",
        "description": "Decodes a VarInt encoded integer. VarInt is an efficient way of encoding variable length integers and is commonly used with Protobuf.",
        "infoURL": "https://developers.google.com/protocol-buffers/docs/encoding#varints",
        "inputType": "byteArray",
        "outputType": "number",
        "flowControl": false,
        "manualBake": false,
        "args": []
    },
    "VarInt Encode": {
        "module": "Default",
        "description": "Encodes a Vn integer as a VarInt. VarInt is an efficient way of encoding variable length integers and is commonly used with Protobuf.",
        "infoURL": "https://developers.google.com/protocol-buffers/docs/encoding#varints",
        "inputType": "number",
        "outputType": "byteArray",
        "flowControl": false,
        "manualBake": false,
        "args": []
    },
    "View Bit Plane": {
        "module": "Image",
        "description": "Extracts and displays a bit plane of any given image. These show only a single bit from each pixel, and can be used to hide messages in Steganography.",
        "infoURL": "https://wikipedia.org/wiki/Bit_plane",
        "inputType": "ArrayBuffer",
        "outputType": "html",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Colour",
                "type": "option",
                "value": [
                    "Red",
                    "Green",
                    "Blue",
                    "Alpha"
                ]
            },
            {
                "name": "Bit",
                "type": "number",
                "value": 0
            }
        ]
    },
    "Vigenère Decode": {
        "module": "Ciphers",
        "description": "The Vigenere cipher is a method of encrypting alphabetic text by using a series of different Caesar ciphers based on the letters of a keyword. It is a simple form of polyalphabetic substitution.",
        "infoURL": "https://wikipedia.org/wiki/Vigenère_cipher",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Key",
                "type": "string",
                "value": ""
            }
        ]
    },
    "Vigenère Encode": {
        "module": "Ciphers",
        "description": "The Vigenere cipher is a method of encrypting alphabetic text by using a series of different Caesar ciphers based on the letters of a keyword. It is a simple form of polyalphabetic substitution.",
        "infoURL": "https://wikipedia.org/wiki/Vigenère_cipher",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Key",
                "type": "string",
                "value": ""
            }
        ]
    },
    "Whirlpool": {
        "module": "Crypto",
        "description": "Whirlpool is a cryptographic hash function designed by Vincent Rijmen (co-creator of AES) and Paulo S. L. M. Barreto, who first described it in 2000.<br><br>Several variants exist:<ul><li>Whirlpool-0 is the original version released in 2000.</li><li>Whirlpool-T is the first revision, released in 2001, improving the generation of the s-box.</li><li>Whirlpool is the latest revision, released in 2003, fixing a flaw in the diffusion matrix.</li></ul>",
        "infoURL": "https://wikipedia.org/wiki/Whirlpool_(cryptography)",
        "inputType": "ArrayBuffer",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Variant",
                "type": "option",
                "value": [
                    "Whirlpool",
                    "Whirlpool-T",
                    "Whirlpool-0"
                ]
            },
            {
                "name": "Rounds",
                "type": "number",
                "value": 10,
                "min": 1,
                "max": 10
            }
        ]
    },
    "Windows Filetime to UNIX Timestamp": {
        "module": "Default",
        "description": "Converts a Windows Filetime value to a UNIX timestamp.<br><br>A Windows Filetime is a 64-bit value representing the number of 100-nanosecond intervals since January 1, 1601 UTC.<br><br>A UNIX timestamp is a 32-bit value representing the number of seconds since January 1, 1970 UTC (the UNIX epoch).<br><br>This operation also supports UNIX timestamps in milliseconds, microseconds and nanoseconds.",
        "infoURL": "https://msdn.microsoft.com/en-us/library/windows/desktop/ms724284(v=vs.85).aspx",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Output units",
                "type": "option",
                "value": [
                    "Seconds (s)",
                    "Milliseconds (ms)",
                    "Microseconds (μs)",
                    "Nanoseconds (ns)"
                ]
            },
            {
                "name": "Input format",
                "type": "option",
                "value": [
                    "Decimal",
                    "Hex (big endian)",
                    "Hex (little endian)"
                ]
            }
        ]
    },
    "XKCD Random Number": {
        "module": "Default",
        "description": "RFC 1149.5 specifies 4 as the standard IEEE-vetted random number.",
        "infoURL": "https://xkcd.com/221/",
        "inputType": "string",
        "outputType": "number",
        "flowControl": false,
        "manualBake": false,
        "args": []
    },
    "XML Beautify": {
        "module": "Code",
        "description": "Indents and prettifies eXtensible Markup Language (XML) code.",
        "infoURL": null,
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Indent string",
                "type": "binaryShortString",
                "value": "\\t"
            }
        ]
    },
    "XML Minify": {
        "module": "Code",
        "description": "Compresses eXtensible Markup Language (XML) code.",
        "infoURL": null,
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Preserve comments",
                "type": "boolean",
                "value": false
            }
        ]
    },
    "XOR": {
        "module": "Default",
        "description": "XOR the input with the given key.<br>e.g. <code>fe023da5</code><br><br><strong>Options</strong><br><u>Null preserving:</u> If the current byte is 0x00 or the same as the key, skip it.<br><br><u>Scheme:</u><ul><li>Standard - key is unchanged after each round</li><li>Input differential - key is set to the value of the previous unprocessed byte</li><li>Output differential - key is set to the value of the previous processed byte</li><li>Cascade - key is set to the input byte shifted by one</li></ul>",
        "infoURL": "https://wikipedia.org/wiki/XOR",
        "inputType": "ArrayBuffer",
        "outputType": "byteArray",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Key",
                "type": "toggleString",
                "value": "",
                "toggleValues": [
                    "Hex",
                    "Decimal",
                    "Binary",
                    "Base64",
                    "UTF8",
                    "Latin1"
                ]
            },
            {
                "name": "Scheme",
                "type": "option",
                "value": [
                    "Standard",
                    "Input differential",
                    "Output differential",
                    "Cascade"
                ]
            },
            {
                "name": "Null preserving",
                "type": "boolean",
                "value": false
            }
        ]
    },
    "XOR Brute Force": {
        "module": "Default",
        "description": "Enumerate all possible XOR solutions. Current maximum key length is 2 due to browser performance.<br><br>Optionally enter a string that you expect to find in the plaintext to filter results (crib).",
        "infoURL": "https://wikipedia.org/wiki/Exclusive_or",
        "inputType": "ArrayBuffer",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Key length",
                "type": "number",
                "value": 1
            },
            {
                "name": "Sample length",
                "type": "number",
                "value": 100
            },
            {
                "name": "Sample offset",
                "type": "number",
                "value": 0
            },
            {
                "name": "Scheme",
                "type": "option",
                "value": [
                    "Standard",
                    "Input differential",
                    "Output differential"
                ]
            },
            {
                "name": "Null preserving",
                "type": "boolean",
                "value": false
            },
            {
                "name": "Print key",
                "type": "boolean",
                "value": true
            },
            {
                "name": "Output as hex",
                "type": "boolean",
                "value": false
            },
            {
                "name": "Crib (known plaintext string)",
                "type": "binaryString",
                "value": ""
            }
        ]
    },
    "XPath expression": {
        "module": "Code",
        "description": "Extract information from an XML document with an XPath query",
        "infoURL": "https://wikipedia.org/wiki/XPath",
        "inputType": "string",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "XPath",
                "type": "string",
                "value": ""
            },
            {
                "name": "Result delimiter",
                "type": "binaryShortString",
                "value": "\\n"
            }
        ]
    },
    "YARA Rules": {
        "module": "Yara",
        "description": "YARA is a tool developed at VirusTotal, primarily aimed at helping malware researchers to identify and classify malware samples. It matches based on rules specified by the user containing textual or binary patterns and a boolean expression. For help on writing rules, see the <a href='https://yara.readthedocs.io/en/latest/writingrules.html'>YARA documentation.</a>",
        "infoURL": "https://wikipedia.org/wiki/YARA",
        "inputType": "ArrayBuffer",
        "outputType": "string",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Rules",
                "type": "text",
                "value": "",
                "rows": 5
            },
            {
                "name": "Show strings",
                "type": "boolean",
                "value": false
            },
            {
                "name": "Show string lengths",
                "type": "boolean",
                "value": false
            },
            {
                "name": "Show metadata",
                "type": "boolean",
                "value": false
            },
            {
                "name": "Show counts",
                "type": "boolean",
                "value": true
            },
            {
                "name": "Show rule warnings",
                "type": "boolean",
                "value": true
            },
            {
                "name": "Show console module messages",
                "type": "boolean",
                "value": true
            }
        ]
    },
    "Zip": {
        "module": "Compression",
        "description": "Compresses data using the PKZIP algorithm with the given filename.<br><br>No support for multiple files at this time.",
        "infoURL": "https://wikipedia.org/wiki/Zip_(file_format)",
        "inputType": "ArrayBuffer",
        "outputType": "File",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Filename",
                "type": "string",
                "value": "file.txt"
            },
            {
                "name": "Comment",
                "type": "string",
                "value": ""
            },
            {
                "name": "Password",
                "type": "binaryString",
                "value": ""
            },
            {
                "name": "Compression method",
                "type": "option",
                "value": [
                    "Deflate",
                    "None (Store)"
                ]
            },
            {
                "name": "Operating system",
                "type": "option",
                "value": [
                    "MSDOS",
                    "Unix",
                    "Macintosh"
                ]
            },
            {
                "name": "Compression type",
                "type": "option",
                "value": [
                    "Dynamic Huffman Coding",
                    "Fixed Huffman Coding",
                    "None (Store)"
                ]
            }
        ]
    },
    "Zlib Deflate": {
        "module": "Compression",
        "description": "Compresses data using the deflate algorithm adding zlib headers.",
        "infoURL": "https://wikipedia.org/wiki/Zlib",
        "inputType": "ArrayBuffer",
        "outputType": "ArrayBuffer",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Compression type",
                "type": "option",
                "value": [
                    "Dynamic Huffman Coding",
                    "Fixed Huffman Coding",
                    "None (Store)"
                ]
            }
        ]
    },
    "Zlib Inflate": {
        "module": "Compression",
        "description": "Decompresses data which has been compressed using the deflate algorithm with zlib headers.",
        "infoURL": "https://wikipedia.org/wiki/Zlib",
        "inputType": "ArrayBuffer",
        "outputType": "ArrayBuffer",
        "flowControl": false,
        "manualBake": false,
        "args": [
            {
                "name": "Start index",
                "type": "number",
                "value": 0
            },
            {
                "name": "Initial output buffer size",
                "type": "number",
                "value": 0
            },
            {
                "name": "Buffer expansion type",
                "type": "option",
                "value": [
                    "Adaptive",
                    "Block"
                ]
            },
            {
                "name": "Resize buffer after decompression",
                "type": "boolean",
                "value": false
            },
            {
                "name": "Verify result",
                "type": "boolean",
                "value": false
            }
        ],
        "checks": [
            {
                "pattern": "^\\x78(\\x01|\\x9c|\\xda|\\x5e)",
                "flags": "",
                "args": [
                    0,
                    0,
                    "Adaptive",
                    false,
                    false
                ]
            }
        ]
    }
}