-- autogenerated from https://www.unicode.org/Public/14.0.0/ucd/intentional.txt
-- |
-- Module      : Unicode.Internal.Char.Security.IntentionalConfusables
-- Copyright   : (c) 2022 Composewell Technologies and Contributors
-- License     : Apache-2.0
-- Maintainer  : streamly@composewell.com
-- Stability   : experimental

{-# LANGUAGE LambdaCase #-}
{-# OPTIONS_HADDOCK hide #-}

module Unicode.Internal.Char.Security.IntentionalConfusables
(intentionalConfusables)
where

import Foreign.C.String (CString)
import GHC.Exts (Ptr(..))

-- | Returns the /intentional/ confusables of a character, if any.
--
-- The resulting 'CString' is null-terminated and encoded in UTF-8.
--
-- @since 0.1.0
intentionalConfusables :: Char -> Maybe CString
intentionalConfusables :: Char -> Maybe CString
intentionalConfusables = \case
    Char
'!' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\199\131\0"#)
    Char
'A' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\206\145\0"#)
    Char
'B' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\206\146\0"#)
    Char
'C' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\208\161\0"#)
    Char
'E' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\206\149\0"#)
    Char
'H' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\206\151\0"#)
    Char
'I' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\206\153\0"#)
    Char
'J' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\208\136\0"#)
    Char
'K' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\206\154\0"#)
    Char
'M' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\206\156\0"#)
    Char
'N' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\206\157\0"#)
    Char
'O' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\206\159\0"#)
    Char
'P' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\206\161\0"#)
    Char
'S' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\208\133\0"#)
    Char
'T' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\206\164\0"#)
    Char
'X' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\206\167\0"#)
    Char
'Y' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\206\165\0"#)
    Char
'Z' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\206\150\0"#)
    Char
'a' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\208\176\0"#)
    Char
'c' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\209\129\0"#)
    Char
'd' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\212\129\0"#)
    Char
'e' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\208\181\0"#)
    Char
'h' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\210\187\0"#)
    Char
'i' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\209\150\0"#)
    Char
'j' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\207\179\0"#)
    Char
'o' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\206\191\0"#)
    Char
'p' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\209\128\0"#)
    Char
's' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\209\149\0"#)
    Char
'x' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\209\133\0"#)
    Char
'y' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\209\131\0"#)
    Char
'\198' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\211\148\0"#)
    Char
'\208' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\196\144\0"#)
    Char
'\230' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\211\149\0"#)
    Char
'\272' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\195\144\0"#)
    Char
'\312' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\208\186\0"#)
    Char
'\386' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\208\145\0"#)
    Char
'\399' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\211\152\0"#)
    Char
'\415' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\211\168\0"#)
    Char
'\425' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\206\163\0"#)
    Char
'\451' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\33\0"#)
    Char
'\477' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\201\153\0"#)
    Char
'\581' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\206\155\0"#)
    Char
'\601' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\199\157\211\153\0"#)
    Char
'\603' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\206\181\0"#)
    Char
'\617' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\206\185\0"#)
    Char
'\618' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\211\143\0"#)
    Char
'\629' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\211\169\0"#)
    Char
'\658' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\211\161\0"#)
    Char
'\665' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\208\178\0"#)
    Char
'\668' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\208\189\0"#)
    Char
'\913' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\65\0"#)
    Char
'\914' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\66\0"#)
    Char
'\915' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\208\147\0"#)
    Char
'\917' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\69\0"#)
    Char
'\918' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\90\0"#)
    Char
'\919' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\72\0"#)
    Char
'\921' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\73\0"#)
    Char
'\922' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\75\0"#)
    Char
'\923' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\201\133\0"#)
    Char
'\924' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\77\0"#)
    Char
'\925' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\78\0"#)
    Char
'\927' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\79\0"#)
    Char
'\928' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\208\159\0"#)
    Char
'\929' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\80\0"#)
    Char
'\931' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\198\169\0"#)
    Char
'\932' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\84\0"#)
    Char
'\933' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\89\0"#)
    Char
'\935' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\88\0"#)
    Char
'\945' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\226\141\186\0"#)
    Char
'\949' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\201\155\0"#)
    Char
'\953' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\201\169\226\141\179\0"#)
    Char
'\959' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\111\0"#)
    Char
'\961' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\226\141\180\0"#)
    Char
'\969' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\226\141\181\0"#)
    Char
'\1011' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\106\0"#)
    Char
'\1029' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\83\0"#)
    Char
'\1032' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\74\0"#)
    Char
'\1041' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\198\130\0"#)
    Char
'\1043' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\206\147\0"#)
    Char
'\1055' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\206\160\0"#)
    Char
'\1057' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\67\0"#)
    Char
'\1072' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\97\0"#)
    Char
'\1074' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\202\153\0"#)
    Char
'\1075' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\225\180\166\0"#)
    Char
'\1077' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\101\0"#)
    Char
'\1082' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\196\184\0"#)
    Char
'\1083' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\225\180\171\0"#)
    Char
'\1084' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\225\180\141\0"#)
    Char
'\1085' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\202\156\0"#)
    Char
'\1087' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\225\180\168\0"#)
    Char
'\1088' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\112\0"#)
    Char
'\1089' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\99\0"#)
    Char
'\1090' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\225\180\155\0"#)
    Char
'\1091' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\121\0"#)
    Char
'\1093' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\120\0"#)
    Char
'\1109' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\115\0"#)
    Char
'\1110' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\105\0"#)
    Char
'\1178' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\226\177\169\0"#)
    Char
'\1186' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\226\177\167\0"#)
    Char
'\1211' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\104\0"#)
    Char
'\1231' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\201\170\0"#)
    Char
'\1236' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\195\134\0"#)
    Char
'\1237' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\195\166\0"#)
    Char
'\1240' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\198\143\0"#)
    Char
'\1241' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\201\153\0"#)
    Char
'\1249' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\202\146\0"#)
    Char
'\1256' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\198\159\0"#)
    Char
'\1257' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\201\181\0"#)
    Char
'\1281' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\100\0"#)
    Char
'\4125' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\225\129\128\0"#)
    Char
'\4160' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\225\128\157\0"#)
    Char
'\6050' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\225\158\163\0"#)
    Char
'\6051' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\225\158\162\0"#)
    Char
'\6197' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\225\161\149\0"#)
    Char
'\6229' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\225\160\181\0"#)
    Char
'\6558' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\225\167\144\0"#)
    Char
'\6577' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\225\167\145\0"#)
    Char
'\6608' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\225\166\158\0"#)
    Char
'\6609' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\225\166\177\0"#)
    Char
'\6725' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\225\170\128\225\170\144\0"#)
    Char
'\6784' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\225\169\133\0"#)
    Char
'\6800' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\225\169\133\0"#)
    Char
'\6925' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\225\173\146\0"#)
    Char
'\6929' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\225\173\147\0"#)
    Char
'\6952' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\225\173\152\0"#)
    Char
'\6992' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\225\173\156\0"#)
    Char
'\6994' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\225\172\141\0"#)
    Char
'\6995' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\225\172\145\0"#)
    Char
'\7000' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\225\172\168\0"#)
    Char
'\7004' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\225\173\144\0"#)
    Char
'\7437' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\208\188\0"#)
    Char
'\7448' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\225\180\169\0"#)
    Char
'\7451' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\209\130\0"#)
    Char
'\7462' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\208\179\0"#)
    Char
'\7464' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\208\191\0"#)
    Char
'\7465' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\225\180\152\0"#)
    Char
'\7467' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\208\187\0"#)
    Char
'\9075' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\206\185\0"#)
    Char
'\9076' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\207\129\0"#)
    Char
'\9077' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\207\137\0"#)
    Char
'\9082' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\206\177\0"#)
    Char
'\11367' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\210\162\0"#)
    Char
'\11369' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\210\154\0"#)
    Char
'\43462' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\234\167\144\0"#)
    Char
'\43472' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\234\167\134\0"#)
    Char
'\66434' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\240\144\143\145\0"#)
    Char
'\66451' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\240\144\143\147\0"#)
    Char
'\66458' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\240\146\128\184\0"#)
    Char
'\66513' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\240\144\142\130\0"#)
    Char
'\66515' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\240\144\142\147\0"#)
    Char
'\66694' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\240\144\146\160\0"#)
    Char
'\66720' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\240\144\146\134\0"#)
    Char
'\73784' -> forall a. a -> Maybe a
Just (forall a. Addr# -> Ptr a
Ptr Addr#
"\240\144\142\154\0"#)
    Char
_ -> forall a. Maybe a
Nothing