aboutsummaryrefslogtreecommitdiffhomepage
path: root/experimental/PdfViewer
Commit message (Collapse)AuthorAge
* remove SK_SUPPORT_LEGACY_COMPATIBLEDEVICE_CONFIGGravatar commit-bot@chromium.org2014-04-07
| | | | | | | | | | | | | remove SK_SUPPORT_LEGACY_GETDEVICECAPABILITIES BUG=skia: R=robertphillips@google.com, bsalomon@google.com Author: reed@google.com Review URL: https://codereview.chromium.org/227643005 git-svn-id: http://skia.googlecode.com/svn/trunk@14083 2bbb7eff-a529-9590-31e7-b0007b416f81
* SkNonCopyable should be used with private inheritance.Gravatar commit-bot@chromium.org2014-04-07
| | | | | | | | | | | | | | | This is mostly s/public SkNoncopyable/SkNoncopyable/g. Two classes (SkDrawLooper::Context and SkPicture::OperationList) don't actually work with SkNoncopyable because they introduce a virtual destructor. I added SkNoncopyableVirtual to make them work as intended. Sort of questionable whether they really need to be noncopyable in the first place, but I guess it doesn't hurt to keep the behavior the same. BUG=skia: R=reed@google.com, mtklein@google.com Author: mtklein@chromium.org Review URL: https://codereview.chromium.org/226183018 git-svn-id: http://skia.googlecode.com/svn/trunk@14081 2bbb7eff-a529-9590-31e7-b0007b416f81
* De-virtualize SkCanvas matrix ops.Gravatar commit-bot@chromium.org2014-03-13
| | | | | | | | | | | | | | This moves the matrix management logic into non-virtual SkCanvas methods, and turns the virtuals into protected notifiers. R=reed@google.com, robertphillips@google.com, bsalomon@google.com BUG=skia:2297 Author: fmalita@chromium.org Review URL: https://codereview.chromium.org/195793012 git-svn-id: http://skia.googlecode.com/svn/trunk@13799 2bbb7eff-a529-9590-31e7-b0007b416f81
* De-virtualize SkCanvas save/restore.Gravatar commit-bot@chromium.org2014-03-12
| | | | | | | | | | | | | This moves the state management logic into non-virtual SkCanvas methods, and turns the virtuals into protected notifiers. R=reed@google.com, robertphillips@google.com Author: fmalita@chromium.org Review URL: https://codereview.chromium.org/194713008 git-svn-id: http://skia.googlecode.com/svn/trunk@13776 2bbb7eff-a529-9590-31e7-b0007b416f81
* Revert of Revert of Revert "De-virtualize SkCanvas save/restore." ↵Gravatar commit-bot@chromium.org2014-03-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (https://codereview.chromium.org/196323003/) Reason for revert: Pulling out to rename the virtuals. Original issue's description: > Revert of Revert "De-virtualize SkCanvas save/restore." (https://codereview.chromium.org/194923008/) > > Reason for revert: > Re-landing after roll fix. > > Original issue's description: > > Revert "De-virtualize SkCanvas save/restore." > > > > (To allow a roll fix into the tree). > > > > This reverts commit edf702204be42c945254191f9f9cd6585b3d189b. > > > > R=halcanary@google.com > > > > Committed: https://code.google.com/p/skia/source/detail?r=13748 > > TBR=halcanary@google.com,fmalita@chromium.org > NOTREECHECKS=true > NOTRY=true > > Committed: http://code.google.com/p/skia/source/detail?r=13754 R=halcanary@google.com, fmalita@chromium.org TBR=fmalita@chromium.org, halcanary@google.com NOTREECHECKS=true NOTRY=true Author: fmalita@google.com Review URL: https://codereview.chromium.org/197553002 git-svn-id: http://skia.googlecode.com/svn/trunk@13765 2bbb7eff-a529-9590-31e7-b0007b416f81
* Revert of Revert "De-virtualize SkCanvas save/restore." ↵Gravatar commit-bot@chromium.org2014-03-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | (https://codereview.chromium.org/194923008/) Reason for revert: Re-landing after roll fix. Original issue's description: > Revert "De-virtualize SkCanvas save/restore." > > (To allow a roll fix into the tree). > > This reverts commit edf702204be42c945254191f9f9cd6585b3d189b. > > R=halcanary@google.com > > Committed: https://code.google.com/p/skia/source/detail?r=13748 R=halcanary@google.com, fmalita@chromium.org TBR=fmalita@chromium.org, halcanary@google.com NOTREECHECKS=true NOTRY=true Author: fmalita@google.com Review URL: https://codereview.chromium.org/196323003 git-svn-id: http://skia.googlecode.com/svn/trunk@13754 2bbb7eff-a529-9590-31e7-b0007b416f81
* Revert "De-virtualize SkCanvas save/restore."Gravatar fmalita@google.com2014-03-11
| | | | | | | | | | | | (To allow a roll fix into the tree). This reverts commit edf702204be42c945254191f9f9cd6585b3d189b. R=halcanary@google.com Review URL: https://codereview.chromium.org/194923008 git-svn-id: http://skia.googlecode.com/svn/trunk@13748 2bbb7eff-a529-9590-31e7-b0007b416f81
* De-virtualize SkCanvas save/restore.Gravatar fmalita@google.com2014-03-11
| | | | | | | | | | | This moves the state management logic into non-virtual SkCanvas methods, and turns the virtuals into protected notifiers. R=robertphillips@google.com, reed@google.com Review URL: https://codereview.chromium.org/194713008 git-svn-id: http://skia.googlecode.com/svn/trunk@13747 2bbb7eff-a529-9590-31e7-b0007b416f81
* hide getTotalClip, so we can eventually remove it Gravatar commit-bot@chromium.org2014-03-08
| | | | | | | | | | | | | | hide getClipType, so we can eventually remove it patch from issue 189443007 TBR=robertphilips@google.com Author: reed@chromium.org Review URL: https://codereview.chromium.org/189883010 git-svn-id: http://skia.googlecode.com/svn/trunk@13715 2bbb7eff-a529-9590-31e7-b0007b416f81
* Sanitizing source files in Housekeeper-NightlyGravatar skia.committer@gmail.com2014-03-01
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@13634 2bbb7eff-a529-9590-31e7-b0007b416f81
* add new onClip* methods to SkCanvasGravatar robertphillips@google.com2014-02-28
| | | | | | | | https://codereview.chromium.org/183453002/ git-svn-id: http://skia.googlecode.com/svn/trunk@13627 2bbb7eff-a529-9590-31e7-b0007b416f81
* Revert of r13620 (add new onClip* methods to SkCanvas - ↵Gravatar robertphillips@google.com2014-02-28
| | | | | | https://codereview.chromium.org/183453002/) due to broken Chrome Canary and failing tests. git-svn-id: http://skia.googlecode.com/svn/trunk@13622 2bbb7eff-a529-9590-31e7-b0007b416f81
* add new onClip* methods to SkCanvasGravatar robertphillips@google.com2014-02-28
| | | | | | | | https://codereview.chromium.org/183453002/ git-svn-id: http://skia.googlecode.com/svn/trunk@13620 2bbb7eff-a529-9590-31e7-b0007b416f81
* Factory methods for heap-allocated SkPathEffect and SkXfermode objects.Gravatar commit-bot@chromium.org2014-02-20
| | | | | | | | | | | | | | | | | | | | | | | This is part of an effort to ensure that all SkPaint effects can only be allocated on the heap. This patch makes the constructors of SkPathEffect, SkXfermode and their subclasses non-public and instead provides factory methods for creating these objects on the heap. We temporarily keep the constructors of the following classes public to not break Chrome/Blink: SkXfermode SkCornerPathEffect SkDashPathEffect BUG=skia:2187 R=scroggo@google.com, reed@google.com, mtklein@google.com, bungeman@google.com Author: dominikg@chromium.org Review URL: https://codereview.chromium.org/166583002 git-svn-id: http://skia.googlecode.com/svn/trunk@13519 2bbb7eff-a529-9590-31e7-b0007b416f81
* Change device factories to take SkImageInfo instead of SkBitmap::ConfigGravatar commit-bot@chromium.org2014-02-16
| | | | | | | | | | | | | patch from issue 167033002 BUG=skia: R=reed@google.com Author: reed@chromium.org Review URL: https://codereview.chromium.org/168653002 git-svn-id: http://skia.googlecode.com/svn/trunk@13463 2bbb7eff-a529-9590-31e7-b0007b416f81
* Small tweaks to be able to build everything target:Gravatar commit-bot@chromium.org2014-01-08
| | | | | | | | | | | | | | | | | - fParsed is unused. - Quiet down a bogus -Wuninitialized warning in QWeakPointer. Tested Clang and GCC on Linux. BUG= R=bungeman@google.com Author: mtklein@google.com Review URL: https://codereview.chromium.org/128573002 git-svn-id: http://skia.googlecode.com/svn/trunk@12970 2bbb7eff-a529-9590-31e7-b0007b416f81
* Remove SkPdfNativeDoc::tokenizerOfStream.Gravatar scroggo@google.com2013-12-03
| | | | | | | | | | | | Instead, initialize an SkPdfNativeTokenizer directly on the stack. Fixes a memory leak in SkPdfFont. R=mtklein@google.com Review URL: https://codereview.chromium.org/100323003 git-svn-id: http://skia.googlecode.com/svn/trunk@12462 2bbb7eff-a529-9590-31e7-b0007b416f81
* Sanitizing source files in Housekeeper-NightlyGravatar skia.committer@gmail.com2013-12-03
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@12453 2bbb7eff-a529-9590-31e7-b0007b416f81
* Simplify SkPdfTokenLooper behavior.Gravatar scroggo@google.com2013-12-02
| | | | | | | | | | | | | | | | | | | | | | | Instead of passing a pointer to a pointer to a NULL looper, which can then be set to point to a new looper (which then must be looped and deleted), pass a pointer to the current looper. Each function can then create a looper based on the parent (on the stack) and call loop() itself. Remove setUp(). Now that there is a pointer to the parent at creation time, there is no need for this function. Modify the constructors to only provide ones that are needed. Add documentation. Remove PdfInlineImageLooper::done(), which is never used. R=mtklein@google.com Review URL: https://codereview.chromium.org/83183004 git-svn-id: http://skia.googlecode.com/svn/trunk@12447 2bbb7eff-a529-9590-31e7-b0007b416f81
* Remove some PdfViewer warnings.Gravatar scroggo@google.com2013-12-02
| | | | | | Fix build. git-svn-id: http://skia.googlecode.com/svn/trunk@12438 2bbb7eff-a529-9590-31e7-b0007b416f81
* Separate and update PDF_DIFF_TRACE_IN_PNGGravatar scroggo@google.com2013-12-02
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Move its functionality out of readToken() and into its own class. Callers of the previous readToken() now call SkPdfNativeTokenizer::readToken(), which in turn calls a function for writing the diff to a file, if the caller requests it and PDF_TRACE_DIFF_IN_PNG is defined. Do not attempt to draw a diff for compatibility sections, which we do not draw. Use SkString to handle string manipulation. Hide globals only used by PDF_TRACE_DIFF_IN_PNG behind that flag. Remove hasVisualEffects, which always returns true. Rename gLastOpKeyword to gOpCounter for clarity. In SkPdfNativeTokenizer, set fEmpty to true when the entire stream has been read. Use SkBitmap::copyTo instead of manually copying an SkBitmap. Builds on https://codereview.chromium.org/79933003/ R=mtklein@google.com Review URL: https://codereview.chromium.org/80463005 git-svn-id: http://skia.googlecode.com/svn/trunk@12436 2bbb7eff-a529-9590-31e7-b0007b416f81
* Restructuring of PdfViewer code.Gravatar scroggo@google.com2013-12-02
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The only change in behavior is that SkPdfAllocator on SkPdfContext is no longer allocated on the heap. In general, I have just moved code. SkPdfContext: Inherit from SkNoncopyable. Make SkPdfContext directly own fTmpPageAllocator. fTmpPageAllocator is created when SkPdfContext is, and destroyed at the same time as well, so there is no reason for the extra allocation. Add the function parseStream. This eliminates code duplication, and allows making fTmpPageAllocator private. Move PdfMainLooper into the implementation file, since it is now only used by parseStream. Move SkTDictWithDefaultConstructor and render stats info here, in support of PdfMainLooper. SkPdfTokenLooper: Rename PdfTokenLooper to SkPdfTokenLooper. Move readToken here, unchanged. Remove tokenizer(), which is unused. SkPdfNativeDoc: Remove tokenizerOfPage and tokenizerOfBuffer, which are unused. SkPdfOps: Move gPdfOps and PdfOperatorRenderer into a header file (hidden for now), so they can be accessed by both SkPdfRenderer.cpp and SkPdfContext.cpp. SkPdfRenderer: Harvest things into other files: PdfMainLooper (and the code that calls it) -> SkPdfContext. readToken -> SkPdfTokenLooper. R=mtklein@google.com Review URL: https://codereview.chromium.org/79933003 git-svn-id: http://skia.googlecode.com/svn/trunk@12435 2bbb7eff-a529-9590-31e7-b0007b416f81
* remove SkFloatToScalar macroGravatar commit-bot@chromium.org2013-11-25
| | | | | | | | | | | BUG= R=reed@google.com, djsollen@google.com Author: caryclark@google.com Review URL: https://codereview.chromium.org/85463005 git-svn-id: http://skia.googlecode.com/svn/trunk@12385 2bbb7eff-a529-9590-31e7-b0007b416f81
* Move PdfTokenLooper into its own file.Gravatar scroggo@google.com2013-11-20
| | | | | | | | Otherwise, leave the class unchanged. Review URL: https://codereview.chromium.org/79773002 git-svn-id: http://skia.googlecode.com/svn/trunk@12333 2bbb7eff-a529-9590-31e7-b0007b416f81
* Ifdef guard for SkPdfContext.Gravatar scroggo@google.com2013-11-20
| | | | | | Review URL: https://codereview.chromium.org/79723002 git-svn-id: http://skia.googlecode.com/svn/trunk@12332 2bbb7eff-a529-9590-31e7-b0007b416f81
* Move SkPdfContext into its own files.Gravatar scroggo@google.com2013-11-20
| | | | | | | | Otherwise, the class is unchanged. Review URL: https://codereview.chromium.org/77763007 git-svn-id: http://skia.googlecode.com/svn/trunk@12330 2bbb7eff-a529-9590-31e7-b0007b416f81
* Make changes based on talks with Edison.Gravatar scroggo@google.com2013-11-20
| | | | | | | | | | Mostly FIXMEs, to go back and look at in more detail. Fix a bug where ET did not set fTextBlock back to false. Corresponds to notes in https://code.google.com/p/skia/source/detail?r=12270 git-svn-id: http://skia.googlecode.com/svn/trunk@12329 2bbb7eff-a529-9590-31e7-b0007b416f81
* Changes to SkTDStackNester.Gravatar scroggo@google.com2013-11-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | SkTDStackNester is a class used by PdfViewer to assist in saving and restoring the PDF state. Clean up and test this class. Add some documentation. Add FIXME's where I have questions to resolve. Fix a bug where fNestingLevel was not initialized. Remove a commented out line of code copied over from SkTDStack. Rename SkTDStackNester::nests() to nestingLevel() and make it const. Remove unnecessary predeclaration and friend declaration. Remove index() (both const and non-const versions). They were unused, return something that may not be expected (index from the top, rather than from the bottom), and don't work to get any elements in earlier Recs once the first one is full. Report a warning if the nesting level goes above the maximum level, or if we attempt to bring it below zero. Prevent fNestingLevel from dropping below zero. Add kUnusedObject_SkPdfIssue, and use it where appropriate. Depends on https://codereview.chromium.org/64093009/ R=mtklein@google.com Review URL: https://codereview.chromium.org/68843006 git-svn-id: http://skia.googlecode.com/svn/trunk@12328 2bbb7eff-a529-9590-31e7-b0007b416f81
* Move SkTDStackNester into its own private file.Gravatar scroggo@google.com2013-11-20
| | | | | | | | | | | | Also remove depth(), which is unused. Otherwise the class is unchanged. R=mtklein@google.com Review URL: https://codereview.chromium.org/64093009 git-svn-id: http://skia.googlecode.com/svn/trunk@12324 2bbb7eff-a529-9590-31e7-b0007b416f81
* Hide unused gFormats.Gravatar mtklein@google.com2013-11-20
| | | | | | | | | | | Presumably this is WIP code? Otherwise, we delete it? BUG= R=scroggo@google.com Review URL: https://codereview.chromium.org/78503003 git-svn-id: http://skia.googlecode.com/svn/trunk@12321 2bbb7eff-a529-9590-31e7-b0007b416f81
* Add missing (trivial) virtual destructors.Gravatar mtklein@google.com2013-11-20
| | | | | | | | | BUG= R=scroggo@google.com Review URL: https://codereview.chromium.org/78543002 git-svn-id: http://skia.googlecode.com/svn/trunk@12312 2bbb7eff-a529-9590-31e7-b0007b416f81
* Pdfviewer refactoring.Gravatar scroggo@google.com2013-11-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Mostly superficial changes, to help me make sure I understand the code while making modifications. SkPdfRenderer: First class I'm modifying. Move it into include/ and src/ directories. Inherit from SkNoncopyable. Replace load() with factory function which returns NULL if the load fails. Remove unload() and loaded(), which no longer make sense, since the factory will return NULL on a failure to load, and unload() happens on destruction. Use a const char* for loading a PDF, following the convention of SkStream::NewFromFile. Remove unnecessary call to sqrt in SkPDFNativeRenderToBitmap. Also in SkPDFNativeRenderToBitmap, use an appropriate SkScalar macro to convert to an integer. Use this-> when calling member functions. pdf_viewer_main.cpp: Call the new interface for SkPdfRenderer. gyp files: Refer to the new location of SkPdfRenderer. R=edisonn@google.com Review URL: https://codereview.chromium.org/59493011 git-svn-id: http://skia.googlecode.com/svn/trunk@12296 2bbb7eff-a529-9590-31e7-b0007b416f81
* Fix warnings and Win only error in pdf_viewer.Gravatar scroggo@google.com2013-11-14
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@12292 2bbb7eff-a529-9590-31e7-b0007b416f81
* Include SkBitmapDevice for pdf_viewer.Gravatar scroggo@google.com2013-11-14
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@12289 2bbb7eff-a529-9590-31e7-b0007b416f81
* pdfviewer: readobject can return null, and catalog can be nullGravatar edisonn@google.com2013-11-13
| | | | | | Review URL: https://codereview.chromium.org/72053002 git-svn-id: http://skia.googlecode.com/svn/trunk@12276 2bbb7eff-a529-9590-31e7-b0007b416f81
* drawPosTextOnPath is now deprecated, removing all overrides and implsGravatar reed@google.com2013-11-13
| | | | | | | | | BUG= R=djsollen@google.com Review URL: https://codereview.chromium.org/61743017 git-svn-id: http://skia.googlecode.com/svn/trunk@12270 2bbb7eff-a529-9590-31e7-b0007b416f81
* pdfviewer: remove sqrt from the formula computing the scale (DPI is dots per ↵Gravatar edisonn@google.com2013-11-12
| | | | | | | | inch, not dots per square inch) Review URL: https://codereview.chromium.org/70793003 git-svn-id: http://skia.googlecode.com/svn/trunk@12258 2bbb7eff-a529-9590-31e7-b0007b416f81
* Add a script for running pdfviewer and comparing to existing results.Gravatar scroggo@google.com2013-11-12
| | | | | | | | | | | | | For quick, local checking to see how changes to pdfviewer have changed PDF files. Scripts were originally written by edisonn, and updated here for checkin. R=epoger@google.com Review URL: https://codereview.chromium.org/62103008 git-svn-id: http://skia.googlecode.com/svn/trunk@12241 2bbb7eff-a529-9590-31e7-b0007b416f81
* Use SkPathJoin and SkBasename in Pdfviewer.Gravatar scroggo@google.com2013-11-12
| | | | | | | | | | Remove redundant code. R=edisonn@google.com Review URL: https://codereview.chromium.org/68263003 git-svn-id: http://skia.googlecode.com/svn/trunk@12240 2bbb7eff-a529-9590-31e7-b0007b416f81
* pdfviewer: fix build break in windows (wrong return type on function)Gravatar edisonn@google.com2013-11-11
| | | | | | Review URL: https://codereview.chromium.org/68973002 git-svn-id: http://skia.googlecode.com/svn/trunk@12216 2bbb7eff-a529-9590-31e7-b0007b416f81
* pdfviewr: include what you use (stdio)Gravatar edisonn@google.com2013-11-07
| | | | | | Review URL: https://codereview.chromium.org/64913003 git-svn-id: http://skia.googlecode.com/svn/trunk@12179 2bbb7eff-a529-9590-31e7-b0007b416f81
* pdfviewer: fix typos (|| instead of |)Gravatar edisonn@google.com2013-11-07
| | | | | | Review URL: https://codereview.chromium.org/65263002 git-svn-id: http://skia.googlecode.com/svn/trunk@12176 2bbb7eff-a529-9590-31e7-b0007b416f81
* Fix Mac warning in PdfViewer.Gravatar scroggo@google.com2013-11-07
| | | | | | | | | | | Move a function only used by code guarded by #ifdef PDF_REPORT inside guard. R=edisonn@google.com Review URL: https://codereview.chromium.org/60763003 git-svn-id: http://skia.googlecode.com/svn/trunk@12170 2bbb7eff-a529-9590-31e7-b0007b416f81
* Revert "If the path is a rect, call drawRect to raster the geometry in ↵Gravatar bsalomon@google.com2013-10-22
| | | | | | | | | | SkCanvas::drawPath to get better performance." This reverts commit r11904 Review URL: https://codereview.chromium.org/35543002 git-svn-id: http://skia.googlecode.com/svn/trunk@11909 2bbb7eff-a529-9590-31e7-b0007b416f81
* If the path is a rect, call drawRect to raster the geometry in ↵Gravatar bsalomon@google.com2013-10-22
| | | | | | | | | | | | SkCanvas::drawPath to get better performance. Committed: http://code.google.com/p/skia/source/detail?r=11842 R=bsalomon@google.com Review URL: https://codereview.chromium.org/23484007 git-svn-id: http://skia.googlecode.com/svn/trunk@11904 2bbb7eff-a529-9590-31e7-b0007b416f81
* Revert r11842 (call drawRect to try GrAARectRenderer if the path is a rect - ↵Gravatar robertphillips@google.com2013-10-17
| | | | | | | | | | | | https://codereview.chromium.org/23484007) due to changes to the following GM images: inverse_paths pathopsinverse git-svn-id: http://skia.googlecode.com/svn/trunk@11845 2bbb7eff-a529-9590-31e7-b0007b416f81
* If the path is a rect, call drawRect to raster the geometry in ↵Gravatar commit-bot@chromium.org2013-10-17
| | | | | | | | | | | | SkCanvas::drawPath to get better performance. R=bsalomon@google.com, robertphillips@google.com, reed@google.com Author: yunchao.he@intel.com Review URL: https://codereview.chromium.org/23484007 git-svn-id: http://skia.googlecode.com/svn/trunk@11842 2bbb7eff-a529-9590-31e7-b0007b416f81
* pdfviewer: more code comments + concat the pdf matrix with the existing ↵Gravatar edisonn@google.com2013-10-11
| | | | | | | | matrix in canvas, instead of reseting it. Review URL: https://codereview.chromium.org/27057003 git-svn-id: http://skia.googlecode.com/svn/trunk@11735 2bbb7eff-a529-9590-31e7-b0007b416f81
* pdfviewer: (more code cleanup): class documentation and commentsGravatar edisonn@google.com2013-10-11
| | | | | | Review URL: https://codereview.chromium.org/27043002 git-svn-id: http://skia.googlecode.com/svn/trunk@11730 2bbb7eff-a529-9590-31e7-b0007b416f81
* mode code cleanup (100c / l, comments)Gravatar edisonn@google.com2013-10-10
| | | | | | Review URL: https://codereview.chromium.org/26912005 git-svn-id: http://skia.googlecode.com/svn/trunk@11716 2bbb7eff-a529-9590-31e7-b0007b416f81