f^;      !"#$%&'()*+,-./0123456789:SafeIA data type to coordinate access to the local files, implemented with an ; (). When the unit is present, access is available. IO operations that need access to the store or settings file remove it from the ; before doing so, and then replace it when they're done. Then whenever two such operations might otherwise interfere, they will instead wait their turn to obtain the access. This functionality is implemented with  and .&Secondarily, it also contains another ; ()[ used to prevent premature program exit when a forked thread is running, implemented as  and . The qrand_ executable uses this to ensure that a concurrent operation to add data from ANU can finish.#Initiate the access control system.;Perform the supplied IO action only when access is granted.<^Perform the supplied IO action while preventing premature program exit in conjunction with .nPerform the supplied IO action in a new thread while preventing premature program exit in conjunction with .8Exit with this operation to ensure a thread forked with  can finish before main returns. =>?< =>?<=>?<Safe @ABCDEFGHIJKLAGHIJKL @ABCDEFGHIJKLSafe0Represents two possible error conditions that may be encountered: in interpreting data retrived from ANU, or while reading the local settings file.LPerform an IO computation that might encounter a problem corresponding to a M>. If so, throw the exception, if not just return the value.  None$5 rRepresents the supported methods for displaying binary data. All styles show data separated by byte except for .6Parse a string to one of the supported display styles.?Display a given list of bytes with the specified display style.$NO PQRSTUVWXYZ[\]^_`abcde   NO  PQRSTUVWXYZ[\]^_`abcdeNone5 fDCorresponds to the JSON object in which settings are stored locally.g6Corresponds to the JSON object returned by ANU, minus q prefixes. The h) function performs appropriate renamings.iDefault settings.j9Update the minimum store size field of a settings record.k8Update the target store size field of a settings record.lUpdate the default   of a settings record.hReplace instances of the words "data", "type", "length", with "qdata", "qtype", "qlength" respectively, to avoid clashes between record field names and keywords/Prelude.m:From a Bytestring, attempt to decode a response from ANU (g).n7From a Bytestring, attempt to decode a settings record.fopqrgstuvwijklhxyz{mn|}~fopqrgstuvwijklmnfopqrgstuvwijklhxyz{mn|}~NonetFetch quantum random data from ANU server as a linked list of bytes via HTTPS. Network problems may result in an  HttpException!. An invalid response triggers a .lFetch QRN data from ANU server as a linked list of booleans via HTTPS. Network problems may result in an  HttpException!. An invalid response triggers a .None =Get path of local store file set up by cabal on installation.@Get path of local settings file set up by cabal on installation.;Query the settings file for the minimum store size setting.:Query the settings file for the target store size setting.6Query the settings file for the default display style. ;Update the minimum store size setting in the settings file.!:Update the target store size setting in the settings file."Update the default   setting in the settings file.#Restore default settings.$Restore default settings and 3 the store.%BRetrieve quantum random data from local store as a raw bytestring.&SInsert data into local store as a raw bytestring, overwriting any current contents.'ARetrieve quantum random data from local store as a list of bytes.(RInsert data into local store as a list of bytes, overwriting any current contents.)+Compute the size of the current data store.*Save the data store to another file, specified by the provided path. Asks for overwrite confirmation if the file already exists.+Display status information: Current store size, minimum size setting, target size setting, default display style and data file path.,Remove all data from the store.-1Append the supplied bytestring to the store file..ERetrieve the specified number of QRN bytes and add them to the store./Like . , but uses H to ensure that file writing doesn't interfere with other operations.04Fork a thread to add data to the store concurrently.1GLoad binary data from specified file path, append it to the data store.2XCalculate the amount of data needed to reach target store size and retrieve it from ANU.3BRefill data store to target size, discarding data already present.4!Get the specified number of QRN bytes, either from the store and/or by obtaining more from ANU as needed. As the name implies, the obtained bytes are removed from the store. If the store is left with fewer than the minimum number of QRN bytes it is filled back to the target size.5Access-controlled version of 4.6Like  only taking a    as the first argument, where . signifies using the default display style.76Destructively view the specified number of bytes, via 4. The name connotes the irreversibility of quantum measurement. Measuring quantum data (analogously, viewing or using) expends them as a randomness resource. Thus they are discarded. Use 9) if instead you wish the data to be kept.86Destructively view the specified number of bytes, via 5". Access-controlled version of 7.95Non-destructively view the specified number of bytes.:-Non-destructively view all data in the store.# !"#$%&'()*+,-./0123456789:$ !"#$%&'()*+,-./0123456789:$%')*+&(-./0231,45789:6 !"#$# !"#$%&'()*+,-./0123456789:None4   !"#$%&'()*+,-./0123456789:      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFG HIJKLMNOPQRSTUVDWXYZ[\]^_`abcdefghijklmnopqrstuvwxyqz{|r}~[DD+quantum-random-0.6.0-H5Yglb5bb6d4nyJbmoWkXJQuantum.Random.StoreQuantum.Random.ExceptionsQuantum.Random.DisplayQuantum.Random.ANUQuantum.Random.MutexPaths_quantum_randomQuantum.Random.CodecQuantum.Random AccessControlinitAccessControl withAccess forkSafely exitSafely QRExceptionParseResponseErrorParseSettingsError throwLeft$fExceptionQRException$fShowQRException DisplayStyleColorsSpinsBitsHex ColorSpins ColorBitsColorHex parseStyledisplay$fToJSONDisplayStyle$fFromJSONDisplayStyle$fGenericDisplayStyle$fShowDisplayStyle$fEqDisplayStylefetchQR fetchQRBits getStoreFilegetMinStoreSizegetTargetStoreSizegetDefaultStylesetMinStoreSizesetTargetStoreSizesetDefaultStylerestoreDefaults reinitializegetStoreputStore getStoreBytes putStoreBytes storeSizesavestatus clearStore appendToStore addToStore addSafelyaddConcurrentlyloadfillrefillextract extractSafelydisplay_observe observeSafelypeekpeekAllbaseGHC.MVarMVar holdExitWhile accessControl exitControlcatchIOversionbindirlibdirdatadir libexecdir sysconfdir getBinDir getLibDir getDataDir getLibexecDir getSysconfDirgetDataFileName GHC.Exception ExceptionFourBits EightBitsw8boolsbyteBitssepBytecolor colorBlockbinCharspinCharbinStrspinStrhexStr binDisplay spinDisplay hexDisplaybinColorDisplayspinColorDisplayhexColorDisplay colorDisplay displayBytebyteSize insertEvery termWidth displayBytes QRSettings QRResponseprocessdefaults updateMinSize updateTarSizeupdateDefaultStyle parseResponse parseSettings minStoreSizetargetStoreSizedefaultDisplayStyleqtypeqlengthqdatasuccessrepDatarepType repLength replaceWord$fToJSONQRSettings$fFromJSONQRSettings$fToJSONQRResponse$fFromJSONQRResponseanuURLgetANUfetchQRResponsegetSettingsFileGHC.BaseMaybeNothing getSettings putSettings bitsNBytes