Ah>a     Safe;A four hexadecimal digits group representing a 16-Bit chunkAn all zeros 16-Bit chunk!A separator between 16-Bit chunksPA double-colon stands for a unique compression of many consecutive 16-Bit chunks=An embedded IPv4 address as representation of the last 32-Bit  Safe  Returns the  of an IPv6 address. Given an arbitrary list of , returns the corresponding .!Returns the corresponding  of an IPv6 address token."Returns # if a list of " constitutes a valid IPv6 Address.$(This is the main function which returns % the list of a tokenized IPv6 address text representation validated against RFC 4291 and canonized in conformation with RFC 5952, or &.'Returns %` the list of tokenized pure IPv6 address, always rewriting an embedded IPv4 address if present.( Tokenize a  into % a list of , or &.)+An embedded IPv4 address have to be rewritten to output a pure IPv6 Address text representation in hexadecimal digits. But some well-known prefixed IPv6 addresses have to keep visible in their text representation the fact that they deals with IPv4 to IPv6 transition process (RFC 5952 Section 5):-IPv4-compatible IPv6 address like "::1.2.3.4".IPv4-mapped IPv6 address like "::ffff:1.2.3.4"/IPv4-translated address like "::ffff:0:1.2.3.4"1IPv4-translatable address like "64:ff9b::1.2.3.4"(ISATAP address like "fe80::5efe:1.2.3.4"*Rewrites an embedded % into the corresponding list of pure  tokens. \ipv4AddrToIPv6AddrTokens (IPv4Addr "127.0.0.1") == [SixteenBits "7f0",Colon,SixteenBits "1"] !"+$'()*,-./01234567 "$'(*,-./01 !"+$'()*,-./01234567Safe Returns % a random ] token based on a mask "____", each underscore being replaced by a random hexadecimal digit. 4randIPv6AddrChunk "_f__" == Just (SixteenBit "bfd4") Generates a random partial  with n .Given a MAC address, returns % the corresponding  list, or &. wmacAddrToIPv6AddrTokens "fa:1d:58:cc:95:16" == Just [SixteenBit "fa1d",Colon,SixteenBit "58cc",Colon,SixteenBit "9516"]9Given a valid name of a local network interface, returns %9 the list of tokens of the interface's IPv6 address, or &. getTokIPv6AddrOf "eth0" == Just [SixteenBit "fe80",DoubleColon,SixteenBit "fa1d",Colon,SixteenBit "58cc",Colon,SixteenBit "9516"]:Given a valid name of a local network interface, returns % the corresponding list of % of the interface's MAC Address, or &. bgetTokMacAddrOf "eth0" == Just [SixteenBit "fa1d",Colon,SixteenBit "58cc",Colon,SixteenBit "9516"] 8   8None Returns %) the text representation of a canonized # in conformation with RFC 5952, or &. MmaybeIPv6Addr "0:0::FFFF:192.0.2.128" == Just (IPv6Addr "::ffff:192.0.2.128")Returns % a pure , or &. KmaybePureIPv6Addr "::ffff:192.0.2.128" == Just (IPv6Addr "::ffff:c000:280")Returns % a pure and fully expanded , or &. cmaybeFullIPv6Addr "::ffff:192.0.2.128" == Just (IPv6Addr "0000:0000:0000:0000:0000:ffff:c000:0280")Returns #E if arguments are two textual representations of a same IPv6 address.fReturns the reverse lookup domain name corresponding of the given IPv6 address (RFC 3596 Section 2.5). }toIP6ARPA (IPv6Addr "4321:0:1:2:3:4:567:89ab") == "b.a.9.8.7.6.5.0.4.0.0.0.3.0.0.0.2.0.0.0.1.0.0.0.0.0.0.0.1.2.3.4.IP6.ARPA."<Returns the Windows UNC path name of the given IPv6 Address. stoUNC (IPv6Addr "2001:0DB8:002a:1005:230:48ff:fe73:989d") == "2001-db8-2a-1005-230-48ff-fe73-989d.ipv6-literal.net" Given an , returns the corresponding 9. Given an IPv6addr, returns the corresponding : address.Returns % the canonized + of the given local network interface, or &. getIPv6AddrOf "eth0"Returns a random .Returns a random #, optionally with the given prefix. .randIPv6AddrWithPrefix (Just "4321:0:1:2:3:4")  ;       !"#$%&'()*+,-./-.0123456789:;<=>?@ABCDEFGHI%IPv6Addr-0.7.0-4zwWIWTLNdkKmC3uyMF2UFText.IPv6Addr.Types Text.IPv6AddrText.IPv6Addr.ManipText.IPv6Addr.Internal IPv6AddrToken SixteenBitAllZerosColon DoubleColonIPv4AddrIPv6Addr$fShowIPv6Addr$fEqIPv6AddrToken$fShowIPv6AddrToken fromIPv6AddrrandIPv6AddrChunkrandPartialIPv6AddrmacAddrToIPv6AddrTokensgetTokIPv6AddrOfgetTokMacAddrOf maybeIPv6AddrmaybePureIPv6AddrmaybeFullIPv6Addr sameIPv6Addr toIP6ARPAtoUNC toHostNametoIPv6 getIPv6AddrOf randIPv6AddrrandIPv6AddrWithPrefix$fFromJSONIPv6Addr$fToJSONIPv6Addr $fEqIPv6Addr#text-1.2.2.1-9Yh8rJoh8fO2JMLWffT3QsData.Text.InternalTextipv6TokensToTextipv6TokenToText isIPv6Addrghc-prim GHC.TypesTruemaybeTokIPv6AddrbaseGHC.BaseJustNothingmaybeTokPureIPv6AddrmaybeIPv6AddrTokensipv4AddrRewriteipv4AddrToIPv6AddrTokens countIPv4Addr expandTokensfromDoubleColon toDoubleColonipv6TokensToIPv6AddrnetworkInterfacesIPv6AddrListmacAddr sixteenBitipv4Addr doubleColoncolonipv6AddrFullChunkhexaChargetDigit&network-2.6.3.1-G4Up1CPKbp7DeFsnywOnGGNetwork.SocketHostName$iproute-1.7.1-9hsGfRvggCmFA0ueZi5Sd9 Data.IP.AddrIPv6