h*       !"#$%&'()*+,-./0123456789:;<=>?@ABCD E F G 0.1.3  Safe-Inferred\HIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  Safe-InferredP Safe-Inferred"pdf-toolbox-document8Check that the dictionary has the specified "Type" filedpdf-toolbox-document'Get dictionary type, name at key "Type" Safe-Inferredpdf-toolbox-documentFont dictionarypdf-toolbox-document Page tree pdf-toolbox-documentPdf document page pdf-toolbox-document-Page tree node, contains pages or other nodespdf-toolbox-documentInformation dictionarypdf-toolbox-documentDocument catalogpdf-toolbox-document PDF documentIt is a trailer under the hood     Safe-Inferred"7  pdf-toolbox-documentFile is enctyptedpdf-toolbox-document#Make Pdf with interface to pdf filepdf-toolbox-documentMake Pdf with seekable handlepdf-toolbox-documentMake Pdf from a ByteStringpdf-toolbox-documentGet PDF documentpdf-toolbox-documentFind object by it's referencepdf-toolbox-documentCache object for future lookupspdf-toolbox-document%Don't cache object for future lookups pdf-toolbox-document)Get stream content, decoded and decrypted7Note: length of the content may differ from the raw one!pdf-toolbox-document&Get stream content without decoding it"pdf-toolbox-document%Whether the PDF document it encrypted#pdf-toolbox-document*Set the password to be user for decryption(Returns False when the password is wrong !$"# !$"# Safe-Inferred" >'pdf-toolbox-document9Total number of child leaf nodes, including deep children(pdf-toolbox-documentParent page node)pdf-toolbox-documentReferencies to all kids*pdf-toolbox-document Load page tree node by reference+pdf-toolbox-documentFind page by it's numberNote: it is not efficient for PDF files with a lot of pages, because it performs traversal through the page tree each time. Use ', ) and * for efficient traversal.  '()*+  '()*+ Safe-Inferred" ,pdf-toolbox-documentDocument title-pdf-toolbox-document/The name of the person who created the document.pdf-toolbox-documentThe subject of the document/pdf-toolbox-document%Keywords associated with the document0pdf-toolbox-document>The name of the application that created the original document1pdf-toolbox-documentThe name of the application that converted the document to PDF format,-./01,-./01 Safe-Inferred"62pdf-toolbox-document Font subtypes8pdf-toolbox-documentGet font subtype9pdf-toolbox-documentLoad font info for the fontpdf-toolbox-documentParse a value from a required field of a dictionary. This will raise an exception if a) the field is not present or b) the field value has a false type.pdf-toolbox-documentParse a value from an optional field of a dictionary. This will raise an exception if the field value has a false type.pdf-toolbox-document in case the field is a referencepdf-toolbox-documenta context for a failure noticepdf-toolbox-documentname of dictionary fieldpdf-toolbox-document$function for type-casting the objectpdf-toolbox-documentthe dictionary 23456789 23456789 Safe-Inferred"<pdf-toolbox-documentPage's parent node=pdf-toolbox-document,List of references to page's content streams>pdf-toolbox-documentMedia box, inheritable?pdf-toolbox-documentFont dictionaries for the page@pdf-toolbox-documentExtract text from the pageIt tries to add spaces between chars if they don't present as actual characters in content stream.Bpdf-toolbox-document9Convert glyphs to text, trying to add spaces and newlinesIt takes list of spans. Each span is a list of glyphs that are outputed in one shot. So we don't need to add space inside span, only between them. <=>?@AB <=>?@AB  Safe-Inferred"Dpdf-toolbox-documentGet the document catalogEpdf-toolbox-document'Infornation dictionary for the documentFpdf-toolbox-documentDocument encryption dictionaryDEFDEF Safe-Inferred"Gpdf-toolbox-documentGet root node of page treeGG  Safe-InferredI<! #$"DEFG  '()*+ <=>?@AB,-./0123456789 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJK L M NOPQRPQSPQTPQUPQVPQWPQXPQYPQZPQ[PQ\PQ]PQ^_`a_`b_`cPQdefg_hi_hj_hk_hl_hm_hn_ho_hp_hq_hr_hs_ht_hu_hvPwxPwyPwz_{|_{}_{~_h_h_h_h_h_h__PwPwPwPwPwPwPwPw____________________________________________________________________________________________________________h_h_h_h_______h______P______PwPwPw___h_h_h_h_h_h_h___________________________________________{__________________1pdf-toolbox-document-0.1.3-Ie7m6HNiZiD5PbNA1wm8kEPdf.Document.PdfPdf.Document.Internal.UtilPdf.Document.FontDictPdf.Document.Internal.TypesPdf.Document.PageNodePdf.Document.PagePdf.Document.InfoPdf.Document.CatalogPdf.Document.Documentpdf-toolbox-documentPreludePdf.Document.Types Pdf.Document-pdf-toolbox-core-0.1.2-ABHV3KzL1jiKd907RBlV3gPdf.Core.EncryptiondefaultUserPassword ensureTypedictionaryTypedecodeTextStringThrowdecodeTextStringFontDictPageTree PageTreeNode PageTreeLeafPagePageNodeInfoCatalogDocumentPdfEncryptedError withPdfFilefromFile fromHandle fromBytesdocument lookupObject enableCache disableCache streamContentrawStreamContent isEncryptedsetUserPasswordderef$fExceptionEncryptedError$fShowEncryptedError pageNodeNKidspageNodeParent pageNodeKids loadPageNodepageNodePageByNum infoTitle infoAuthor infoSubject infoKeywords infoCreator infoProducer FontSubtype FontType0 FontType1 FontMMType1 FontType3 FontTrueTypefontDictSubtypefontDictLoadInfo$fShowFontSubtype$fEqFontSubtypepageParentNode pageContents pageMediaBox pageFontDictspageExtractTextpageExtractGlyphs glyphsToText $fShowXObjectdocumentCatalog documentInfodocumentEncryptioncatalogPageNodeghc-prim GHC.TypesIntFloatCharIOBoolFalseTrueDoubleWordOrderingLTEQGTbase GHC.MaybeMaybeNothingJust~ ghc-bignumGHC.Num.IntegerIntegerGHC.BaseMonad>>=return>>Functorfmap<$ Applicative<**><*>pureliftA2String GHC.ClassesEq==/= Data.EitherEitherRightLeftMonoidmemptymconcatmappend Semigroup<>Control.Monad.Fail MonadFailfailOrd>=compare<<=>maxminGHC.RealIntegral toIntegerquotremdivmodquotRemdivModRationalGHC.ReadRead readsPrecreadListGHC.ShowShowshow showsPrecshowListGHC.IO.ExceptionIOErrorGHC.EnumBoundedminBoundmaxBoundEnumfromEnumtoEnumenumFrom enumFromThen enumFromToenumFromThenTosuccpred GHC.FloatFloatingpiexplogsqrt**logBasesincostanasinacosatansinhcoshtanhasinhacoshatanh Fractional fromRational/recipGHC.NumNum fromInteger-negate+*abssignumReal toRational RealFloat floatRadix floatDigits floatRange decodeFloat encodeFloatexponent significand scaleFloatisNaN isInfiniteisDenormalizedisNegativeZeroisIEEEatan2RealFracproperFractiontruncateroundceilingfloor Data.FoldableFoldablefoldrlengthfoldlnullfoldl1sumproductfoldr1maximumminimumelemfoldMapData.Traversable TraversabletraversemapM sequenceAsequenceShowSText.ParserCombinators.ReadPReadSGHC.IOFilePathGHC.List takeWhiletake Text.Readread$ otherwise++mapGHC.ErrerrorzipWitheven Data.Functor<$> Data.Tuplefstuncurryidhead System.IO writeFilegetLineputStrLnfiltercycleGHC.Primseqconcatzipprint fromIntegral realToFrac^&&||noterrorWithoutStackTrace undefined=<<const.flip$!untilasTypeOfsubtract Data.Maybemaybetaillastinitscanlscanl1scanrscanr1iteraterepeat replicate dropWhiledropsplitAtspanbreakreverseandoranyallnotElemlookup concatMap!!zip3zipWith3unzipunzip3showsshowChar showString showParenodd^^gcdlcmsndcurrylex readPareneitherreadsmapM_ sequence_ Data.OldListlinesunlineswordsunwords userErrorioErrorputCharputStrgetChar getContentsinteractreadFile appendFilereadLnreadIOPdf.Core.Types RectanglerectangleFromArrayrectangleToArrayrequiredInDictoptionalInDict