Forms

  • LabReport
    • ea_form_fieldset_01KEVRMDGV2PPK4B7M6QXN6DG3
    • name
    • sampleName
    • sampleMatrix
    • productType
    • labName
    • externalUrl
    • internalUrl
    • category
    • type
    • project
    • state
    • debugData
    • markdownContent
    • ea_form_fieldset_close_01KEVRMDGV2PPK4B7M6QXN6DG4
    • _token

LabReport

Form type:
"EasyCorp\Bundle\EasyAdminBundle\Form\Type\CrudFormType"

Errors

This form has no errors.

Default Data

Property Value
Model Format same as normalized format
Normalized Format
App\Entity\LabReport {#854
  -id: 843
  -name: "Lab Report COA Part 3"
  -externalUrl: "https://purecbdnc.com/cdn/shop/files/Charlotte_sWeb_CBDFullSpectrumTincture60mg-30ml_OrangeCOA2025-04-253_98c7426c-419c-45dc-b5c7-3f7c31fba816.jpg?v=1747428923"
  -source: null
  -type: "jpg"
  -project: Proxies\__CG__\App\Entity\Project {#903
    -id: 104
    -name: "pure cbd"
    -url: "https://purecbdnc.com/"
    -prompt: null
    -chatJson: null
    -externalLabReportsUrl: null
    -spiderSourceUrls: Doctrine\ORM\PersistentCollection {#1521 …}
    -productMatchingUrl: null
    -productUrls: Doctrine\ORM\PersistentCollection {#1556 …}
    -labReportSources: Doctrine\ORM\PersistentCollection {#1527 …}
    -labReports: Doctrine\ORM\PersistentCollection {#1558 …}
    -createdAt: DateTime @1744068184 {#1495
      date: 2025-04-07 23:23:04.0 UTC (+00:00)
    }
    -updatedAt: DateTime @1768286193 {#1485
      date: 2026-01-13 06:36:33.0 UTC (+00:00)
    }
    -spiderSourceMatchingUrls: null
    -state: "ready_to_hunt"
    -products: Doctrine\ORM\PersistentCollection {#1560 …}
    -productPages: Doctrine\ORM\PersistentCollection {#1581 …}
    -websiteFramework: "shopify"
    -debugData: "{"error":{"message":"DOMDocument::loadHTML(): Argument #1 ($source) must not be empty","trace":"#0 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Helper\/FrameworkHelper.php(346): DOMDocument->loadHTML()\n#1 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Crawler\/ProductHuntCrawlerObserver.php(134): App\\Helper\\FrameworkHelper->is_shopify_product_page()\n#2 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/CrawlObservers\/CrawlObserverCollection.php(28): App\\Crawler\\ProductHuntCrawlerObserver->crawled()\n#3 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Handlers\/CrawlRequestFulfilled.php(104): Spatie\\Crawler\\CrawlObservers\\CrawlObserverCollection->crawled()\n#4 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Handlers\/CrawlRequestFulfilled.php(70): Spatie\\Crawler\\Handlers\\CrawlRequestFulfilled->handleCrawled()\n#5 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/EachPromise.php(173): Spatie\\Crawler\\Handlers\\CrawlRequestFulfilled->__invoke()\n#6 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(209): GuzzleHttp\\Promise\\EachPromise->GuzzleHttp\\Promise\\{closure}()\n#7 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(158): GuzzleHttp\\Promise\\Promise::callHandler()\n#8 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/TaskQueue.php(52): GuzzleHttp\\Promise\\Promise::GuzzleHttp\\Promise\\{closure}()\n#9 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/guzzle\/src\/Handler\/CurlMultiHandler.php(167): GuzzleHttp\\Promise\\TaskQueue->run()\n#10 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/guzzle\/src\/Handler\/CurlMultiHandler.php(206): GuzzleHttp\\Handler\\CurlMultiHandler->tick()\n#11 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(251): GuzzleHttp\\Handler\\CurlMultiHandler->execute()\n#12 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(227): GuzzleHttp\\Promise\\Promise->invokeWaitFn()\n#13 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(272): GuzzleHttp\\Promise\\Promise->waitIfPending()\n#14 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(229): GuzzleHttp\\Promise\\Promise->invokeWaitList()\n#15 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(69): GuzzleHttp\\Promise\\Promise->waitIfPending()\n#16 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/EachPromise.php(109): GuzzleHttp\\Promise\\Promise->wait()\n#17 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(251): GuzzleHttp\\Promise\\EachPromise->GuzzleHttp\\Promise\\{closure}()\n#18 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(227): GuzzleHttp\\Promise\\Promise->invokeWaitFn()\n#19 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(69): GuzzleHttp\\Promise\\Promise->waitIfPending()\n#20 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Crawler.php(494): GuzzleHttp\\Promise\\Promise->wait()\n#21 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Crawler.php(443): Spatie\\Crawler\\Crawler->startCrawlingQueue()\n#22 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Helper\/CrawlerHelper.php(181): Spatie\\Crawler\\Crawler->startCrawling()\n#23 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Helper\/ProjectHelper.php(250): App\\Helper\\CrawlerHelper->crawlProjectProducts()\n#24 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Command\/Cron\/ProductHuntCommand.php(60): App\\Helper\\ProjectHelper->huntProducts()\n#25 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Command\/Command.php(279): App\\Command\\Cron\\ProductHuntCommand->execute()\n#26 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Application.php(1047): Symfony\\Component\\Console\\Command\\Command->run()\n#27 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/framework-bundle\/Console\/Application.php(123): Symfony\\Component\\Console\\Application->doRunCommand()\n#28 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Application.php(316): Symfony\\Bundle\\FrameworkBundle\\Console\\Application->doRunCommand()\n#29 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/framework-bundle\/Console\/Application.php(77): Symfony\\Component\\Console\\Application->doRun()\n#30 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Application.php(167): Symfony\\Bundle\\FrameworkBundle\\Console\\Application->doRun()\n#31 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/runtime\/Runner\/Symfony\/ConsoleApplicationRunner.php(49): Symfony\\Component\\Console\\Application->run()\n#32 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/autoload_runtime.php(29): Symfony\\Component\\Runtime\\Runner\\Symfony\\ConsoleApplicationRunner->run()\n#33 \/home\/cbdextract\/cbdextract.nw.agency\/source\/bin\/console(15): require_once('...')\n#34 {main}"}}"
    -labReportFails: Doctrine\ORM\PersistentCollection {#1609 …}
    -productExcludePaths: null
    -aILogs: Doctrine\ORM\PersistentCollection {#1586 …}
    -user: null
    -aIBatchJobs: Doctrine\ORM\PersistentCollection {#1650 …}
    -lazyObjectState: Symfony\Component\VarExporter\Internal\LazyObjectState {#906 …}
  }
  -labReportSource: null
  -createdAt: DateTime @1748152551 {#848
    date: 2025-05-25 05:55:51.0 UTC (+00:00)
  }
  -updatedAt: DateTime @1748138197 {#845
    date: 2025-05-25 01:56:37.0 UTC (+00:00)
  }
  -category: null
  -state: "processed"
  -expiryDate: "2027-04-16"
  -extractionDate: "2025-04-25"
  -thcaPercentage: "0"
  -totalThcPercentage: "0"
  -deltaNinePercentage: "0"
  -deltaNineWithThcaCombined: "0"
  -comments: null
  -internalUrl: "https://cbdextract.nw.agency/lab-reports/LabReportCOAPart3.jpg"
  -markdownContent: ""# Certificate of Analysis\n\n**Charlotte's Web, Inc.**  \n700 Tech Court  \nLouisville Colorado 80027 United States\n\n**Report Number:** 4901775-0  \n**Report Date:** 25-Apr-2025  \n**Report Status:** Final\n\n----\n\n## Sample Information\n\n| Sample Name:         | A01417 - Composite                  | Eurofins Sample:   | 15217285                         |\n| -------------------- | ----------------------------------- | ------------------ | -------------------------------- |\n| Project ID:          | CHARLO\\_WEB-20250416-0138           | Receipt Date:      | 21-Apr-2025                      |\n| PO Number:           | QC 325                              | Receipt Condition: | Ambient temperature              |\n| Sample Serving Size: | 0.5 mL                              | Login Date:        | 16-Apr-2025                      |\n| Description:         | CW 60mg Organic Orange Blossom 30mL | Date Started:      | 21-Apr-2025                      |\n|                      | 60                                  | Sampled:           | Sample results apply as received |\n| MFG:                 | April 16 2025                       | Number Composited: | 3                                |\n| EXP:                 | April 16 2027                       | Online Order:      | SO-2025-E03804                   |\n\n\n----\n\n## Analysis\n\n### Residual Solvent Analysis in Cannabis and Hemp Matrices\n\nThe ECC limit of 1 ppm for Ethylene Oxide is not achieved by this method. Reporting limit of 25 ppm is the limit recommended by the AOAC CASP. *\n\n#### Category I Residual Solvent or Processing Chemical\n\n| Analysis                       | Limit     | Result | Pass\/Fail |\n| ------------------------------ | --------- | ------ | --------- |\n| Acetone                        | <180 ppm  |        |           |\n| Acetonitrile                   | <180 ppm  |        |           |\n| n-Butane                       | <500 ppm  |        |           |\n| Ethanol                        | <1000 ppm |        |           |\n| Ethyl Acetate                  | <1000 ppm |        |           |\n| Ethyl Ether                    | <1000 ppm |        |           |\n| Heptane                        | <500 ppm  |        |           |\n| n-Hexane                       | <30.0 ppm |        |           |\n| Methanol                       | <1000 ppm |        |           |\n| n-Pentane                      | <250 ppm  |        |           |\n| Propane                        | <1000 ppm |        |           |\n| Isopropyl Alcohol              | <1000 ppm |        |           |\n| Toluene                        | <85.0 ppm |        |           |\n| Xylenes (ortho-, meta-, para-) | <160 ppm  |        |           |\n\n\nThe Pass\/Fail reporting designations are relative to the limits set forth by the Bureau of Cannabis Control Title 16, Division 42. *\n\n### Multi-Residue Analysis for hemp products\n\n| Analysis   | Limit       | Result      | Pass\/Fail |\n| ---------- | ----------- | ----------- | --------- |\n| Cyprodinil | <0.01 mg\/kg | <0.01 mg\/kg | Pass      |\n| Dichlorvos | <0.05 mg\/kg | <0.05 mg\/kg | Pass      |\n| Dimethoate | <0.01 mg\/kg | <0.01 mg\/kg | Pass      |\n| Fluopyram  | <0.01 mg\/kg | <0.01 mg\/kg | Pass      |\n\n\n* This analysis or component is not ISO accredited.\n\nPrinted: 25-Apr-2025 6:32 pm  \nPage 3 of 9""
  -debugData: null
  -jsonContent: [
    "pages" => [
      [
        "page" => 1
        "md" => """
          # Certificate of Analysis\n
          \n
          **Charlotte's Web, Inc.**  \n
          700 Tech Court  \n
          Louisville Colorado 80027 United States\n
          \n
          **Report Number:** 4901775-0  \n
          **Report Date:** 25-Apr-2025  \n
          **Report Status:** Final\n
          \n
          ----\n
          \n
          ## Sample Information\n
          \n
          | Sample Name:         | A01417 - Composite                  | Eurofins Sample:   | 15217285                         |\n
          | -------------------- | ----------------------------------- | ------------------ | -------------------------------- |\n
          | Project ID:          | CHARLO\_WEB-20250416-0138           | Receipt Date:      | 21-Apr-2025                      |\n
          | PO Number:           | QC 325                              | Receipt Condition: | Ambient temperature              |\n
          | Sample Serving Size: | 0.5 mL                              | Login Date:        | 16-Apr-2025                      |\n
          | Description:         | CW 60mg Organic Orange Blossom 30mL | Date Started:      | 21-Apr-2025                      |\n
          |                      | 60                                  | Sampled:           | Sample results apply as received |\n
          | MFG:                 | April 16 2025                       | Number Composited: | 3                                |\n
          | EXP:                 | April 16 2027                       | Online Order:      | SO-2025-E03804                   |\n
          \n
          \n
          ----\n
          \n
          ## Analysis\n
          \n
          ### Residual Solvent Analysis in Cannabis and Hemp Matrices\n
          \n
          The ECC limit of 1 ppm for Ethylene Oxide is not achieved by this method. Reporting limit of 25 ppm is the limit recommended by the AOAC CASP. *\n
          \n
          #### Category I Residual Solvent or Processing Chemical\n
          \n
          | Analysis                       | Limit     | Result | Pass/Fail |\n
          | ------------------------------ | --------- | ------ | --------- |\n
          | Acetone                        | <180 ppm  |        |           |\n
          | Acetonitrile                   | <180 ppm  |        |           |\n
          | n-Butane                       | <500 ppm  |        |           |\n
          | Ethanol                        | <1000 ppm |        |           |\n
          | Ethyl Acetate                  | <1000 ppm |        |           |\n
          | Ethyl Ether                    | <1000 ppm |        |           |\n
          | Heptane                        | <500 ppm  |        |           |\n
          | n-Hexane                       | <30.0 ppm |        |           |\n
          | Methanol                       | <1000 ppm |        |           |\n
          | n-Pentane                      | <250 ppm  |        |           |\n
          | Propane                        | <1000 ppm |        |           |\n
          | Isopropyl Alcohol              | <1000 ppm |        |           |\n
          | Toluene                        | <85.0 ppm |        |           |\n
          | Xylenes (ortho-, meta-, para-) | <160 ppm  |        |           |\n
          \n
          \n
          The Pass/Fail reporting designations are relative to the limits set forth by the Bureau of Cannabis Control Title 16, Division 42. *\n
          \n
          ### Multi-Residue Analysis for hemp products\n
          \n
          | Analysis   | Limit       | Result      | Pass/Fail |\n
          | ---------- | ----------- | ----------- | --------- |\n
          | Cyprodinil | <0.01 mg/kg | <0.01 mg/kg | Pass      |\n
          | Dichlorvos | <0.05 mg/kg | <0.05 mg/kg | Pass      |\n
          | Dimethoate | <0.01 mg/kg | <0.01 mg/kg | Pass      |\n
          | Fluopyram  | <0.01 mg/kg | <0.01 mg/kg | Pass      |\n
          \n
          \n
          * This analysis or component is not ISO accredited.\n
          \n
          Printed: 25-Apr-2025 6:32 pm  \n
          Page 3 of 9
          """
        "images" => [
          [
            "name" => "page_1.jpg"
            "height" => 0
            "width" => 0
            "x" => 0
            "y" => 0
            "type" => "full_page_screenshot"
          ]
        ]
        "charts" => []
        "items" => [
          [
            "type" => "heading"
            "lvl" => 1
            "value" => "Certificate of Analysis"
            "md" => "# Certificate of Analysis"
          ]
          [
            "type" => "text"
            "value" => """
              **Charlotte's Web, Inc.**  \n
              700 Tech Court  \n
              Louisville Colorado 80027 United States\n
              \n
              **Report Number:** 4901775-0  \n
              **Report Date:** 25-Apr-2025  \n
              **Report Status:** Final\n
              \n
              ----
              """
            "md" => """
              **Charlotte's Web, Inc.**  \n
              700 Tech Court  \n
              Louisville Colorado 80027 United States\n
              \n
              **Report Number:** 4901775-0  \n
              **Report Date:** 25-Apr-2025  \n
              **Report Status:** Final\n
              \n
              ----
              """
          ]
          [
            "type" => "heading"
            "lvl" => 2
            "value" => "Sample Information"
            "md" => "## Sample Information"
          ]
          [
            "type" => "table"
            "rows" => [
              [
                "Sample Name:"
                "A01417 - Composite"
                "Eurofins Sample:"
                "15217285"
              ]
              [
                "Project ID:"
                "CHARLO_WEB-20250416-0138"
                "Receipt Date:"
                "21-Apr-2025"
              ]
              [
                "PO Number:"
                "QC 325"
                "Receipt Condition:"
                "Ambient temperature"
              ]
              [
                "Sample Serving Size:"
                "0.5 mL"
                "Login Date:"
                "16-Apr-2025"
              ]
              [
                "Description:"
                "CW 60mg Organic Orange Blossom 30mL"
                "Date Started:"
                "21-Apr-2025"
              ]
              [
                ""
                "60"
                "Sampled:"
                "Sample results apply as received"
              ]
              [
                "MFG:"
                "April 16 2025"
                "Number Composited:"
                "3"
              ]
              [
                "EXP:"
                "April 16 2027"
                "Online Order:"
                "SO-2025-E03804"
              ]
            ]
            "md" => """
              | Sample Name:         | A01417 - Composite                  | Eurofins Sample:   | 15217285                         |\n
              | -------------------- | ----------------------------------- | ------------------ | -------------------------------- |\n
              | Project ID:          | CHARLO\_WEB-20250416-0138           | Receipt Date:      | 21-Apr-2025                      |\n
              | PO Number:           | QC 325                              | Receipt Condition: | Ambient temperature              |\n
              | Sample Serving Size: | 0.5 mL                              | Login Date:        | 16-Apr-2025                      |\n
              | Description:         | CW 60mg Organic Orange Blossom 30mL | Date Started:      | 21-Apr-2025                      |\n
              |                      | 60                                  | Sampled:           | Sample results apply as received |\n
              | MFG:                 | April 16 2025                       | Number Composited: | 3                                |\n
              | EXP:                 | April 16 2027                       | Online Order:      | SO-2025-E03804                   |
              """
            "isPerfectTable" => true
            "csv" => """
              "Sample Name:","A01417 - Composite","Eurofins Sample:","15217285"\n
              "Project ID:","CHARLO_WEB-20250416-0138","Receipt Date:","21-Apr-2025"\n
              "PO Number:","QC 325","Receipt Condition:","Ambient temperature"\n
              "Sample Serving Size:","0.5 mL","Login Date:","16-Apr-2025"\n
              "Description:","CW 60mg Organic Orange Blossom 30mL","Date Started:","21-Apr-2025"\n
              "","60","Sampled:","Sample results apply as received"\n
              "MFG:","April 16 2025","Number Composited:","3"\n
              "EXP:","April 16 2027","Online Order:","SO-2025-E03804"
              """
          ]
          [
            "type" => "text"
            "value" => "----"
            "md" => "----"
          ]
          [
            "type" => "heading"
            "lvl" => 2
            "value" => "Analysis"
            "md" => "## Analysis"
          ]
          [
            "type" => "heading"
            "lvl" => 3
            "value" => "Residual Solvent Analysis in Cannabis and Hemp Matrices"
            "md" => "### Residual Solvent Analysis in Cannabis and Hemp Matrices"
          ]
          [
            "type" => "text"
            "value" => "The ECC limit of 1 ppm for Ethylene Oxide is not achieved by this method. Reporting limit of 25 ppm is the limit recommended by the AOAC CASP. *"
            "md" => "The ECC limit of 1 ppm for Ethylene Oxide is not achieved by this method. Reporting limit of 25 ppm is the limit recommended by the AOAC CASP. *"
          ]
          [
            "type" => "heading"
            "lvl" => 4
            "value" => "Category I Residual Solvent or Processing Chemical"
            "md" => "#### Category I Residual Solvent or Processing Chemical"
          ]
          [
            "type" => "table"
            "rows" => [
              [
                "Analysis"
                "Limit"
                "Result"
                "Pass/Fail"
              ]
              [
                "Acetone"
                "<180 ppm"
                ""
                ""
              ]
              [
                "Acetonitrile"
                "<180 ppm"
                ""
                ""
              ]
              [
                "n-Butane"
                "<500 ppm"
                ""
                ""
              ]
              [
                "Ethanol"
                "<1000 ppm"
                ""
                ""
              ]
              [
                "Ethyl Acetate"
                "<1000 ppm"
                ""
                ""
              ]
              [
                "Ethyl Ether"
                "<1000 ppm"
                ""
                ""
              ]
              [
                "Heptane"
                "<500 ppm"
                ""
                ""
              ]
              [
                "n-Hexane"
                "<30.0 ppm"
                ""
                ""
              ]
              [
                "Methanol"
                "<1000 ppm"
                ""
                ""
              ]
              [
                "n-Pentane"
                "<250 ppm"
                ""
                ""
              ]
              [
                "Propane"
                "<1000 ppm"
                ""
                ""
              ]
              [
                "Isopropyl Alcohol"
                "<1000 ppm"
                ""
                ""
              ]
              [
                "Toluene"
                "<85.0 ppm"
                ""
                ""
              ]
              [
                "Xylenes (ortho-, meta-, para-)"
                "<160 ppm"
                ""
                ""
              ]
            ]
            "md" => """
              | Analysis                       | Limit     | Result | Pass/Fail |\n
              | ------------------------------ | --------- | ------ | --------- |\n
              | Acetone                        | <180 ppm  |        |           |\n
              | Acetonitrile                   | <180 ppm  |        |           |\n
              | n-Butane                       | <500 ppm  |        |           |\n
              | Ethanol                        | <1000 ppm |        |           |\n
              | Ethyl Acetate                  | <1000 ppm |        |           |\n
              | Ethyl Ether                    | <1000 ppm |        |           |\n
              | Heptane                        | <500 ppm  |        |           |\n
              | n-Hexane                       | <30.0 ppm |        |           |\n
              | Methanol                       | <1000 ppm |        |           |\n
              | n-Pentane                      | <250 ppm  |        |           |\n
              | Propane                        | <1000 ppm |        |           |\n
              | Isopropyl Alcohol              | <1000 ppm |        |           |\n
              | Toluene                        | <85.0 ppm |        |           |\n
              | Xylenes (ortho-, meta-, para-) | <160 ppm  |        |           |
              """
            "isPerfectTable" => true
            "csv" => """
              "Analysis","Limit","Result","Pass/Fail"\n
              "Acetone","<180 ppm","",""\n
              "Acetonitrile","<180 ppm","",""\n
              "n-Butane","<500 ppm","",""\n
              "Ethanol","<1000 ppm","",""\n
              "Ethyl Acetate","<1000 ppm","",""\n
              "Ethyl Ether","<1000 ppm","",""\n
              "Heptane","<500 ppm","",""\n
              "n-Hexane","<30.0 ppm","",""\n
              "Methanol","<1000 ppm","",""\n
              "n-Pentane","<250 ppm","",""\n
              "Propane","<1000 ppm","",""\n
              "Isopropyl Alcohol","<1000 ppm","",""\n
              "Toluene","<85.0 ppm","",""\n
              "Xylenes (ortho-, meta-, para-)","<160 ppm","",""
              """
          ]
          [
            "type" => "text"
            "value" => "The Pass/Fail reporting designations are relative to the limits set forth by the Bureau of Cannabis Control Title 16, Division 42. *"
            "md" => "The Pass/Fail reporting designations are relative to the limits set forth by the Bureau of Cannabis Control Title 16, Division 42. *"
          ]
          [
            "type" => "heading"
            "lvl" => 3
            "value" => "Multi-Residue Analysis for hemp products"
            "md" => "### Multi-Residue Analysis for hemp products"
          ]
          [
            "type" => "table"
            "rows" => [
              [
                "Analysis"
                "Limit"
                "Result"
                "Pass/Fail"
              ]
              [
                "Cyprodinil"
                "<0.01 mg/kg"
                "<0.01 mg/kg"
                "Pass"
              ]
              [
                "Dichlorvos"
                "<0.05 mg/kg"
                "<0.05 mg/kg"
                "Pass"
              ]
              [
                "Dimethoate"
                "<0.01 mg/kg"
                "<0.01 mg/kg"
                "Pass"
              ]
              [
                "Fluopyram"
                "<0.01 mg/kg"
                "<0.01 mg/kg"
                "Pass"
              ]
            ]
            "md" => """
              | Analysis   | Limit       | Result      | Pass/Fail |\n
              | ---------- | ----------- | ----------- | --------- |\n
              | Cyprodinil | <0.01 mg/kg | <0.01 mg/kg | Pass      |\n
              | Dichlorvos | <0.05 mg/kg | <0.05 mg/kg | Pass      |\n
              | Dimethoate | <0.01 mg/kg | <0.01 mg/kg | Pass      |\n
              | Fluopyram  | <0.01 mg/kg | <0.01 mg/kg | Pass      |
              """
            "isPerfectTable" => true
            "csv" => """
              "Analysis","Limit","Result","Pass/Fail"\n
              "Cyprodinil","<0.01 mg/kg","<0.01 mg/kg","Pass"\n
              "Dichlorvos","<0.05 mg/kg","<0.05 mg/kg","Pass"\n
              "Dimethoate","<0.01 mg/kg","<0.01 mg/kg","Pass"\n
              "Fluopyram","<0.01 mg/kg","<0.01 mg/kg","Pass"
              """
          ]
          [
            "type" => "text"
            "value" => """
              * This analysis or component is not ISO accredited.\n
              \n
              Printed: 25-Apr-2025 6:32 pm  \n
              Page 3 of 9
              """
            "md" => """
              * This analysis or component is not ISO accredited.\n
              \n
              Printed: 25-Apr-2025 6:32 pm  \n
              Page 3 of 9
              """
          ]
        ]
        "status" => "OK"
        "originalOrientationAngle" => 0
        "links" => []
        "triggeredAutoMode" => false
        "parsingMode" => "multimodal-openai-gpt4o"
        "structuredData" => null
        "noStructuredContent" => false
        "noTextContent" => false
      ]
    ]
    "job_metadata" => [
      "credits_used" => 0
      "job_credits_usage" => 0
      "job_pages" => 1
      "job_auto_mode_triggered_pages" => 0
      "job_is_cache_hit" => false
    ]
  ]
  -labName: "Charlotte's Web, Inc."
  -sampleName: "CW 60mg Organic Orange Blossom 30mL"
  -sampleMatrix: "product"
  -internalPath: "/home/cbdextract/cbdextract.nw.agency/source/public/lab-reports/LabReportCOAPart3.jpg"
  -productType: "cannabis"
  -aILogs: Doctrine\ORM\PersistentCollection {#964 …}
  -products: Doctrine\ORM\PersistentCollection {#1018 …}
}
View Format same as normalized format

Submitted Data

This form was not submitted.

Passed Options

Option Passed Value Resolved Value
attr
[
  "class" => "ea-edit-form"
  "id" => "edit-LabReport-form"
]
[
  "class" => "ea-edit-form"
  "id" => "edit-LabReport-form"
]
data
App\Entity\LabReport {#854
  -id: 843
  -name: "Lab Report COA Part 3"
  -externalUrl: "https://purecbdnc.com/cdn/shop/files/Charlotte_sWeb_CBDFullSpectrumTincture60mg-30ml_OrangeCOA2025-04-253_98c7426c-419c-45dc-b5c7-3f7c31fba816.jpg?v=1747428923"
  -source: null
  -type: "jpg"
  -project: Proxies\__CG__\App\Entity\Project {#903
    -id: 104
    -name: "pure cbd"
    -url: "https://purecbdnc.com/"
    -prompt: null
    -chatJson: null
    -externalLabReportsUrl: null
    -spiderSourceUrls: Doctrine\ORM\PersistentCollection {#1521 …}
    -productMatchingUrl: null
    -productUrls: Doctrine\ORM\PersistentCollection {#1556 …}
    -labReportSources: Doctrine\ORM\PersistentCollection {#1527 …}
    -labReports: Doctrine\ORM\PersistentCollection {#1558 …}
    -createdAt: DateTime @1744068184 {#1495
      date: 2025-04-07 23:23:04.0 UTC (+00:00)
    }
    -updatedAt: DateTime @1768286193 {#1485
      date: 2026-01-13 06:36:33.0 UTC (+00:00)
    }
    -spiderSourceMatchingUrls: null
    -state: "ready_to_hunt"
    -products: Doctrine\ORM\PersistentCollection {#1560 …}
    -productPages: Doctrine\ORM\PersistentCollection {#1581 …}
    -websiteFramework: "shopify"
    -debugData: "{"error":{"message":"DOMDocument::loadHTML(): Argument #1 ($source) must not be empty","trace":"#0 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Helper\/FrameworkHelper.php(346): DOMDocument->loadHTML()\n#1 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Crawler\/ProductHuntCrawlerObserver.php(134): App\\Helper\\FrameworkHelper->is_shopify_product_page()\n#2 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/CrawlObservers\/CrawlObserverCollection.php(28): App\\Crawler\\ProductHuntCrawlerObserver->crawled()\n#3 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Handlers\/CrawlRequestFulfilled.php(104): Spatie\\Crawler\\CrawlObservers\\CrawlObserverCollection->crawled()\n#4 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Handlers\/CrawlRequestFulfilled.php(70): Spatie\\Crawler\\Handlers\\CrawlRequestFulfilled->handleCrawled()\n#5 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/EachPromise.php(173): Spatie\\Crawler\\Handlers\\CrawlRequestFulfilled->__invoke()\n#6 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(209): GuzzleHttp\\Promise\\EachPromise->GuzzleHttp\\Promise\\{closure}()\n#7 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(158): GuzzleHttp\\Promise\\Promise::callHandler()\n#8 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/TaskQueue.php(52): GuzzleHttp\\Promise\\Promise::GuzzleHttp\\Promise\\{closure}()\n#9 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/guzzle\/src\/Handler\/CurlMultiHandler.php(167): GuzzleHttp\\Promise\\TaskQueue->run()\n#10 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/guzzle\/src\/Handler\/CurlMultiHandler.php(206): GuzzleHttp\\Handler\\CurlMultiHandler->tick()\n#11 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(251): GuzzleHttp\\Handler\\CurlMultiHandler->execute()\n#12 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(227): GuzzleHttp\\Promise\\Promise->invokeWaitFn()\n#13 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(272): GuzzleHttp\\Promise\\Promise->waitIfPending()\n#14 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(229): GuzzleHttp\\Promise\\Promise->invokeWaitList()\n#15 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(69): GuzzleHttp\\Promise\\Promise->waitIfPending()\n#16 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/EachPromise.php(109): GuzzleHttp\\Promise\\Promise->wait()\n#17 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(251): GuzzleHttp\\Promise\\EachPromise->GuzzleHttp\\Promise\\{closure}()\n#18 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(227): GuzzleHttp\\Promise\\Promise->invokeWaitFn()\n#19 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(69): GuzzleHttp\\Promise\\Promise->waitIfPending()\n#20 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Crawler.php(494): GuzzleHttp\\Promise\\Promise->wait()\n#21 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Crawler.php(443): Spatie\\Crawler\\Crawler->startCrawlingQueue()\n#22 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Helper\/CrawlerHelper.php(181): Spatie\\Crawler\\Crawler->startCrawling()\n#23 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Helper\/ProjectHelper.php(250): App\\Helper\\CrawlerHelper->crawlProjectProducts()\n#24 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Command\/Cron\/ProductHuntCommand.php(60): App\\Helper\\ProjectHelper->huntProducts()\n#25 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Command\/Command.php(279): App\\Command\\Cron\\ProductHuntCommand->execute()\n#26 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Application.php(1047): Symfony\\Component\\Console\\Command\\Command->run()\n#27 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/framework-bundle\/Console\/Application.php(123): Symfony\\Component\\Console\\Application->doRunCommand()\n#28 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Application.php(316): Symfony\\Bundle\\FrameworkBundle\\Console\\Application->doRunCommand()\n#29 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/framework-bundle\/Console\/Application.php(77): Symfony\\Component\\Console\\Application->doRun()\n#30 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Application.php(167): Symfony\\Bundle\\FrameworkBundle\\Console\\Application->doRun()\n#31 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/runtime\/Runner\/Symfony\/ConsoleApplicationRunner.php(49): Symfony\\Component\\Console\\Application->run()\n#32 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/autoload_runtime.php(29): Symfony\\Component\\Runtime\\Runner\\Symfony\\ConsoleApplicationRunner->run()\n#33 \/home\/cbdextract\/cbdextract.nw.agency\/source\/bin\/console(15): require_once('...')\n#34 {main}"}}"
    -labReportFails: Doctrine\ORM\PersistentCollection {#1609 …}
    -productExcludePaths: null
    -aILogs: Doctrine\ORM\PersistentCollection {#1586 …}
    -user: null
    -aIBatchJobs: Doctrine\ORM\PersistentCollection {#1650 …}
    -lazyObjectState: Symfony\Component\VarExporter\Internal\LazyObjectState {#906 …}
  }
  -labReportSource: null
  -createdAt: DateTime @1748152551 {#848
    date: 2025-05-25 05:55:51.0 UTC (+00:00)
  }
  -updatedAt: DateTime @1748138197 {#845
    date: 2025-05-25 01:56:37.0 UTC (+00:00)
  }
  -category: null
  -state: "processed"
  -expiryDate: "2027-04-16"
  -extractionDate: "2025-04-25"
  -thcaPercentage: "0"
  -totalThcPercentage: "0"
  -deltaNinePercentage: "0"
  -deltaNineWithThcaCombined: "0"
  -comments: null
  -internalUrl: "https://cbdextract.nw.agency/lab-reports/LabReportCOAPart3.jpg"
  -markdownContent: ""# Certificate of Analysis\n\n**Charlotte's Web, Inc.**  \n700 Tech Court  \nLouisville Colorado 80027 United States\n\n**Report Number:** 4901775-0  \n**Report Date:** 25-Apr-2025  \n**Report Status:** Final\n\n----\n\n## Sample Information\n\n| Sample Name:         | A01417 - Composite                  | Eurofins Sample:   | 15217285                         |\n| -------------------- | ----------------------------------- | ------------------ | -------------------------------- |\n| Project ID:          | CHARLO\\_WEB-20250416-0138           | Receipt Date:      | 21-Apr-2025                      |\n| PO Number:           | QC 325                              | Receipt Condition: | Ambient temperature              |\n| Sample Serving Size: | 0.5 mL                              | Login Date:        | 16-Apr-2025                      |\n| Description:         | CW 60mg Organic Orange Blossom 30mL | Date Started:      | 21-Apr-2025                      |\n|                      | 60                                  | Sampled:           | Sample results apply as received |\n| MFG:                 | April 16 2025                       | Number Composited: | 3                                |\n| EXP:                 | April 16 2027                       | Online Order:      | SO-2025-E03804                   |\n\n\n----\n\n## Analysis\n\n### Residual Solvent Analysis in Cannabis and Hemp Matrices\n\nThe ECC limit of 1 ppm for Ethylene Oxide is not achieved by this method. Reporting limit of 25 ppm is the limit recommended by the AOAC CASP. *\n\n#### Category I Residual Solvent or Processing Chemical\n\n| Analysis                       | Limit     | Result | Pass\/Fail |\n| ------------------------------ | --------- | ------ | --------- |\n| Acetone                        | <180 ppm  |        |           |\n| Acetonitrile                   | <180 ppm  |        |           |\n| n-Butane                       | <500 ppm  |        |           |\n| Ethanol                        | <1000 ppm |        |           |\n| Ethyl Acetate                  | <1000 ppm |        |           |\n| Ethyl Ether                    | <1000 ppm |        |           |\n| Heptane                        | <500 ppm  |        |           |\n| n-Hexane                       | <30.0 ppm |        |           |\n| Methanol                       | <1000 ppm |        |           |\n| n-Pentane                      | <250 ppm  |        |           |\n| Propane                        | <1000 ppm |        |           |\n| Isopropyl Alcohol              | <1000 ppm |        |           |\n| Toluene                        | <85.0 ppm |        |           |\n| Xylenes (ortho-, meta-, para-) | <160 ppm  |        |           |\n\n\nThe Pass\/Fail reporting designations are relative to the limits set forth by the Bureau of Cannabis Control Title 16, Division 42. *\n\n### Multi-Residue Analysis for hemp products\n\n| Analysis   | Limit       | Result      | Pass\/Fail |\n| ---------- | ----------- | ----------- | --------- |\n| Cyprodinil | <0.01 mg\/kg | <0.01 mg\/kg | Pass      |\n| Dichlorvos | <0.05 mg\/kg | <0.05 mg\/kg | Pass      |\n| Dimethoate | <0.01 mg\/kg | <0.01 mg\/kg | Pass      |\n| Fluopyram  | <0.01 mg\/kg | <0.01 mg\/kg | Pass      |\n\n\n* This analysis or component is not ISO accredited.\n\nPrinted: 25-Apr-2025 6:32 pm  \nPage 3 of 9""
  -debugData: null
  -jsonContent: [
    "pages" => [
      [
        "page" => 1
        "md" => """
          # Certificate of Analysis\n
          \n
          **Charlotte's Web, Inc.**  \n
          700 Tech Court  \n
          Louisville Colorado 80027 United States\n
          \n
          **Report Number:** 4901775-0  \n
          **Report Date:** 25-Apr-2025  \n
          **Report Status:** Final\n
          \n
          ----\n
          \n
          ## Sample Information\n
          \n
          | Sample Name:         | A01417 - Composite                  | Eurofins Sample:   | 15217285                         |\n
          | -------------------- | ----------------------------------- | ------------------ | -------------------------------- |\n
          | Project ID:          | CHARLO\_WEB-20250416-0138           | Receipt Date:      | 21-Apr-2025                      |\n
          | PO Number:           | QC 325                              | Receipt Condition: | Ambient temperature              |\n
          | Sample Serving Size: | 0.5 mL                              | Login Date:        | 16-Apr-2025                      |\n
          | Description:         | CW 60mg Organic Orange Blossom 30mL | Date Started:      | 21-Apr-2025                      |\n
          |                      | 60                                  | Sampled:           | Sample results apply as received |\n
          | MFG:                 | April 16 2025                       | Number Composited: | 3                                |\n
          | EXP:                 | April 16 2027                       | Online Order:      | SO-2025-E03804                   |\n
          \n
          \n
          ----\n
          \n
          ## Analysis\n
          \n
          ### Residual Solvent Analysis in Cannabis and Hemp Matrices\n
          \n
          The ECC limit of 1 ppm for Ethylene Oxide is not achieved by this method. Reporting limit of 25 ppm is the limit recommended by the AOAC CASP. *\n
          \n
          #### Category I Residual Solvent or Processing Chemical\n
          \n
          | Analysis                       | Limit     | Result | Pass/Fail |\n
          | ------------------------------ | --------- | ------ | --------- |\n
          | Acetone                        | <180 ppm  |        |           |\n
          | Acetonitrile                   | <180 ppm  |        |           |\n
          | n-Butane                       | <500 ppm  |        |           |\n
          | Ethanol                        | <1000 ppm |        |           |\n
          | Ethyl Acetate                  | <1000 ppm |        |           |\n
          | Ethyl Ether                    | <1000 ppm |        |           |\n
          | Heptane                        | <500 ppm  |        |           |\n
          | n-Hexane                       | <30.0 ppm |        |           |\n
          | Methanol                       | <1000 ppm |        |           |\n
          | n-Pentane                      | <250 ppm  |        |           |\n
          | Propane                        | <1000 ppm |        |           |\n
          | Isopropyl Alcohol              | <1000 ppm |        |           |\n
          | Toluene                        | <85.0 ppm |        |           |\n
          | Xylenes (ortho-, meta-, para-) | <160 ppm  |        |           |\n
          \n
          \n
          The Pass/Fail reporting designations are relative to the limits set forth by the Bureau of Cannabis Control Title 16, Division 42. *\n
          \n
          ### Multi-Residue Analysis for hemp products\n
          \n
          | Analysis   | Limit       | Result      | Pass/Fail |\n
          | ---------- | ----------- | ----------- | --------- |\n
          | Cyprodinil | <0.01 mg/kg | <0.01 mg/kg | Pass      |\n
          | Dichlorvos | <0.05 mg/kg | <0.05 mg/kg | Pass      |\n
          | Dimethoate | <0.01 mg/kg | <0.01 mg/kg | Pass      |\n
          | Fluopyram  | <0.01 mg/kg | <0.01 mg/kg | Pass      |\n
          \n
          \n
          * This analysis or component is not ISO accredited.\n
          \n
          Printed: 25-Apr-2025 6:32 pm  \n
          Page 3 of 9
          """
        "images" => [
          [
            "name" => "page_1.jpg"
            "height" => 0
            "width" => 0
            "x" => 0
            "y" => 0
            "type" => "full_page_screenshot"
          ]
        ]
        "charts" => []
        "items" => [
          [
            "type" => "heading"
            "lvl" => 1
            "value" => "Certificate of Analysis"
            "md" => "# Certificate of Analysis"
          ]
          [
            "type" => "text"
            "value" => """
              **Charlotte's Web, Inc.**  \n
              700 Tech Court  \n
              Louisville Colorado 80027 United States\n
              \n
              **Report Number:** 4901775-0  \n
              **Report Date:** 25-Apr-2025  \n
              **Report Status:** Final\n
              \n
              ----
              """
            "md" => """
              **Charlotte's Web, Inc.**  \n
              700 Tech Court  \n
              Louisville Colorado 80027 United States\n
              \n
              **Report Number:** 4901775-0  \n
              **Report Date:** 25-Apr-2025  \n
              **Report Status:** Final\n
              \n
              ----
              """
          ]
          [
            "type" => "heading"
            "lvl" => 2
            "value" => "Sample Information"
            "md" => "## Sample Information"
          ]
          [
            "type" => "table"
            "rows" => [
              [
                "Sample Name:"
                "A01417 - Composite"
                "Eurofins Sample:"
                "15217285"
              ]
              [
                "Project ID:"
                "CHARLO_WEB-20250416-0138"
                "Receipt Date:"
                "21-Apr-2025"
              ]
              [
                "PO Number:"
                "QC 325"
                "Receipt Condition:"
                "Ambient temperature"
              ]
              [
                "Sample Serving Size:"
                "0.5 mL"
                "Login Date:"
                "16-Apr-2025"
              ]
              [
                "Description:"
                "CW 60mg Organic Orange Blossom 30mL"
                "Date Started:"
                "21-Apr-2025"
              ]
              [
                ""
                "60"
                "Sampled:"
                "Sample results apply as received"
              ]
              [
                "MFG:"
                "April 16 2025"
                "Number Composited:"
                "3"
              ]
              [
                "EXP:"
                "April 16 2027"
                "Online Order:"
                "SO-2025-E03804"
              ]
            ]
            "md" => """
              | Sample Name:         | A01417 - Composite                  | Eurofins Sample:   | 15217285                         |\n
              | -------------------- | ----------------------------------- | ------------------ | -------------------------------- |\n
              | Project ID:          | CHARLO\_WEB-20250416-0138           | Receipt Date:      | 21-Apr-2025                      |\n
              | PO Number:           | QC 325                              | Receipt Condition: | Ambient temperature              |\n
              | Sample Serving Size: | 0.5 mL                              | Login Date:        | 16-Apr-2025                      |\n
              | Description:         | CW 60mg Organic Orange Blossom 30mL | Date Started:      | 21-Apr-2025                      |\n
              |                      | 60                                  | Sampled:           | Sample results apply as received |\n
              | MFG:                 | April 16 2025                       | Number Composited: | 3                                |\n
              | EXP:                 | April 16 2027                       | Online Order:      | SO-2025-E03804                   |
              """
            "isPerfectTable" => true
            "csv" => """
              "Sample Name:","A01417 - Composite","Eurofins Sample:","15217285"\n
              "Project ID:","CHARLO_WEB-20250416-0138","Receipt Date:","21-Apr-2025"\n
              "PO Number:","QC 325","Receipt Condition:","Ambient temperature"\n
              "Sample Serving Size:","0.5 mL","Login Date:","16-Apr-2025"\n
              "Description:","CW 60mg Organic Orange Blossom 30mL","Date Started:","21-Apr-2025"\n
              "","60","Sampled:","Sample results apply as received"\n
              "MFG:","April 16 2025","Number Composited:","3"\n
              "EXP:","April 16 2027","Online Order:","SO-2025-E03804"
              """
          ]
          [
            "type" => "text"
            "value" => "----"
            "md" => "----"
          ]
          [
            "type" => "heading"
            "lvl" => 2
            "value" => "Analysis"
            "md" => "## Analysis"
          ]
          [
            "type" => "heading"
            "lvl" => 3
            "value" => "Residual Solvent Analysis in Cannabis and Hemp Matrices"
            "md" => "### Residual Solvent Analysis in Cannabis and Hemp Matrices"
          ]
          [
            "type" => "text"
            "value" => "The ECC limit of 1 ppm for Ethylene Oxide is not achieved by this method. Reporting limit of 25 ppm is the limit recommended by the AOAC CASP. *"
            "md" => "The ECC limit of 1 ppm for Ethylene Oxide is not achieved by this method. Reporting limit of 25 ppm is the limit recommended by the AOAC CASP. *"
          ]
          [
            "type" => "heading"
            "lvl" => 4
            "value" => "Category I Residual Solvent or Processing Chemical"
            "md" => "#### Category I Residual Solvent or Processing Chemical"
          ]
          [
            "type" => "table"
            "rows" => [
              [
                "Analysis"
                "Limit"
                "Result"
                "Pass/Fail"
              ]
              [
                "Acetone"
                "<180 ppm"
                ""
                ""
              ]
              [
                "Acetonitrile"
                "<180 ppm"
                ""
                ""
              ]
              [
                "n-Butane"
                "<500 ppm"
                ""
                ""
              ]
              [
                "Ethanol"
                "<1000 ppm"
                ""
                ""
              ]
              [
                "Ethyl Acetate"
                "<1000 ppm"
                ""
                ""
              ]
              [
                "Ethyl Ether"
                "<1000 ppm"
                ""
                ""
              ]
              [
                "Heptane"
                "<500 ppm"
                ""
                ""
              ]
              [
                "n-Hexane"
                "<30.0 ppm"
                ""
                ""
              ]
              [
                "Methanol"
                "<1000 ppm"
                ""
                ""
              ]
              [
                "n-Pentane"
                "<250 ppm"
                ""
                ""
              ]
              [
                "Propane"
                "<1000 ppm"
                ""
                ""
              ]
              [
                "Isopropyl Alcohol"
                "<1000 ppm"
                ""
                ""
              ]
              [
                "Toluene"
                "<85.0 ppm"
                ""
                ""
              ]
              [
                "Xylenes (ortho-, meta-, para-)"
                "<160 ppm"
                ""
                ""
              ]
            ]
            "md" => """
              | Analysis                       | Limit     | Result | Pass/Fail |\n
              | ------------------------------ | --------- | ------ | --------- |\n
              | Acetone                        | <180 ppm  |        |           |\n
              | Acetonitrile                   | <180 ppm  |        |           |\n
              | n-Butane                       | <500 ppm  |        |           |\n
              | Ethanol                        | <1000 ppm |        |           |\n
              | Ethyl Acetate                  | <1000 ppm |        |           |\n
              | Ethyl Ether                    | <1000 ppm |        |           |\n
              | Heptane                        | <500 ppm  |        |           |\n
              | n-Hexane                       | <30.0 ppm |        |           |\n
              | Methanol                       | <1000 ppm |        |           |\n
              | n-Pentane                      | <250 ppm  |        |           |\n
              | Propane                        | <1000 ppm |        |           |\n
              | Isopropyl Alcohol              | <1000 ppm |        |           |\n
              | Toluene                        | <85.0 ppm |        |           |\n
              | Xylenes (ortho-, meta-, para-) | <160 ppm  |        |           |
              """
            "isPerfectTable" => true
            "csv" => """
              "Analysis","Limit","Result","Pass/Fail"\n
              "Acetone","<180 ppm","",""\n
              "Acetonitrile","<180 ppm","",""\n
              "n-Butane","<500 ppm","",""\n
              "Ethanol","<1000 ppm","",""\n
              "Ethyl Acetate","<1000 ppm","",""\n
              "Ethyl Ether","<1000 ppm","",""\n
              "Heptane","<500 ppm","",""\n
              "n-Hexane","<30.0 ppm","",""\n
              "Methanol","<1000 ppm","",""\n
              "n-Pentane","<250 ppm","",""\n
              "Propane","<1000 ppm","",""\n
              "Isopropyl Alcohol","<1000 ppm","",""\n
              "Toluene","<85.0 ppm","",""\n
              "Xylenes (ortho-, meta-, para-)","<160 ppm","",""
              """
          ]
          [
            "type" => "text"
            "value" => "The Pass/Fail reporting designations are relative to the limits set forth by the Bureau of Cannabis Control Title 16, Division 42. *"
            "md" => "The Pass/Fail reporting designations are relative to the limits set forth by the Bureau of Cannabis Control Title 16, Division 42. *"
          ]
          [
            "type" => "heading"
            "lvl" => 3
            "value" => "Multi-Residue Analysis for hemp products"
            "md" => "### Multi-Residue Analysis for hemp products"
          ]
          [
            "type" => "table"
            "rows" => [
              [
                "Analysis"
                "Limit"
                "Result"
                "Pass/Fail"
              ]
              [
                "Cyprodinil"
                "<0.01 mg/kg"
                "<0.01 mg/kg"
                "Pass"
              ]
              [
                "Dichlorvos"
                "<0.05 mg/kg"
                "<0.05 mg/kg"
                "Pass"
              ]
              [
                "Dimethoate"
                "<0.01 mg/kg"
                "<0.01 mg/kg"
                "Pass"
              ]
              [
                "Fluopyram"
                "<0.01 mg/kg"
                "<0.01 mg/kg"
                "Pass"
              ]
            ]
            "md" => """
              | Analysis   | Limit       | Result      | Pass/Fail |\n
              | ---------- | ----------- | ----------- | --------- |\n
              | Cyprodinil | <0.01 mg/kg | <0.01 mg/kg | Pass      |\n
              | Dichlorvos | <0.05 mg/kg | <0.05 mg/kg | Pass      |\n
              | Dimethoate | <0.01 mg/kg | <0.01 mg/kg | Pass      |\n
              | Fluopyram  | <0.01 mg/kg | <0.01 mg/kg | Pass      |
              """
            "isPerfectTable" => true
            "csv" => """
              "Analysis","Limit","Result","Pass/Fail"\n
              "Cyprodinil","<0.01 mg/kg","<0.01 mg/kg","Pass"\n
              "Dichlorvos","<0.05 mg/kg","<0.05 mg/kg","Pass"\n
              "Dimethoate","<0.01 mg/kg","<0.01 mg/kg","Pass"\n
              "Fluopyram","<0.01 mg/kg","<0.01 mg/kg","Pass"
              """
          ]
          [
            "type" => "text"
            "value" => """
              * This analysis or component is not ISO accredited.\n
              \n
              Printed: 25-Apr-2025 6:32 pm  \n
              Page 3 of 9
              """
            "md" => """
              * This analysis or component is not ISO accredited.\n
              \n
              Printed: 25-Apr-2025 6:32 pm  \n
              Page 3 of 9
              """
          ]
        ]
        "status" => "OK"
        "originalOrientationAngle" => 0
        "links" => []
        "triggeredAutoMode" => false
        "parsingMode" => "multimodal-openai-gpt4o"
        "structuredData" => null
        "noStructuredContent" => false
        "noTextContent" => false
      ]
    ]
    "job_metadata" => [
      "credits_used" => 0
      "job_credits_usage" => 0
      "job_pages" => 1
      "job_auto_mode_triggered_pages" => 0
      "job_is_cache_hit" => false
    ]
  ]
  -labName: "Charlotte's Web, Inc."
  -sampleName: "CW 60mg Organic Orange Blossom 30mL"
  -sampleMatrix: "product"
  -internalPath: "/home/cbdextract/cbdextract.nw.agency/source/public/lab-reports/LabReportCOAPart3.jpg"
  -productType: "cannabis"
  -aILogs: Doctrine\ORM\PersistentCollection {#964 …}
  -products: Doctrine\ORM\PersistentCollection {#1018 …}
}
same as passed value
entityDto
EasyCorp\Bundle\EasyAdminBundle\Dto\EntityDto {#844
  -isAccessible: true
  -fqcn: "App\Entity\LabReport"
  -metadata: Doctrine\ORM\Mapping\ClassMetadata {#691 …}
  -instance: App\Entity\LabReport {#854
    -id: 843
    -name: "Lab Report COA Part 3"
    -externalUrl: "https://purecbdnc.com/cdn/shop/files/Charlotte_sWeb_CBDFullSpectrumTincture60mg-30ml_OrangeCOA2025-04-253_98c7426c-419c-45dc-b5c7-3f7c31fba816.jpg?v=1747428923"
    -source: null
    -type: "jpg"
    -project: Proxies\__CG__\App\Entity\Project {#903
      -id: 104
      -name: "pure cbd"
      -url: "https://purecbdnc.com/"
      -prompt: null
      -chatJson: null
      -externalLabReportsUrl: null
      -spiderSourceUrls: Doctrine\ORM\PersistentCollection {#1521 …}
      -productMatchingUrl: null
      -productUrls: Doctrine\ORM\PersistentCollection {#1556 …}
      -labReportSources: Doctrine\ORM\PersistentCollection {#1527 …}
      -labReports: Doctrine\ORM\PersistentCollection {#1558 …}
      -createdAt: DateTime @1744068184 {#1495
        date: 2025-04-07 23:23:04.0 UTC (+00:00)
      }
      -updatedAt: DateTime @1768286193 {#1485
        date: 2026-01-13 06:36:33.0 UTC (+00:00)
      }
      -spiderSourceMatchingUrls: null
      -state: "ready_to_hunt"
      -products: Doctrine\ORM\PersistentCollection {#1560 …}
      -productPages: Doctrine\ORM\PersistentCollection {#1581 …}
      -websiteFramework: "shopify"
      -debugData: "{"error":{"message":"DOMDocument::loadHTML(): Argument #1 ($source) must not be empty","trace":"#0 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Helper\/FrameworkHelper.php(346): DOMDocument->loadHTML()\n#1 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Crawler\/ProductHuntCrawlerObserver.php(134): App\\Helper\\FrameworkHelper->is_shopify_product_page()\n#2 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/CrawlObservers\/CrawlObserverCollection.php(28): App\\Crawler\\ProductHuntCrawlerObserver->crawled()\n#3 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Handlers\/CrawlRequestFulfilled.php(104): Spatie\\Crawler\\CrawlObservers\\CrawlObserverCollection->crawled()\n#4 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Handlers\/CrawlRequestFulfilled.php(70): Spatie\\Crawler\\Handlers\\CrawlRequestFulfilled->handleCrawled()\n#5 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/EachPromise.php(173): Spatie\\Crawler\\Handlers\\CrawlRequestFulfilled->__invoke()\n#6 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(209): GuzzleHttp\\Promise\\EachPromise->GuzzleHttp\\Promise\\{closure}()\n#7 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(158): GuzzleHttp\\Promise\\Promise::callHandler()\n#8 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/TaskQueue.php(52): GuzzleHttp\\Promise\\Promise::GuzzleHttp\\Promise\\{closure}()\n#9 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/guzzle\/src\/Handler\/CurlMultiHandler.php(167): GuzzleHttp\\Promise\\TaskQueue->run()\n#10 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/guzzle\/src\/Handler\/CurlMultiHandler.php(206): GuzzleHttp\\Handler\\CurlMultiHandler->tick()\n#11 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(251): GuzzleHttp\\Handler\\CurlMultiHandler->execute()\n#12 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(227): GuzzleHttp\\Promise\\Promise->invokeWaitFn()\n#13 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(272): GuzzleHttp\\Promise\\Promise->waitIfPending()\n#14 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(229): GuzzleHttp\\Promise\\Promise->invokeWaitList()\n#15 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(69): GuzzleHttp\\Promise\\Promise->waitIfPending()\n#16 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/EachPromise.php(109): GuzzleHttp\\Promise\\Promise->wait()\n#17 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(251): GuzzleHttp\\Promise\\EachPromise->GuzzleHttp\\Promise\\{closure}()\n#18 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(227): GuzzleHttp\\Promise\\Promise->invokeWaitFn()\n#19 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(69): GuzzleHttp\\Promise\\Promise->waitIfPending()\n#20 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Crawler.php(494): GuzzleHttp\\Promise\\Promise->wait()\n#21 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Crawler.php(443): Spatie\\Crawler\\Crawler->startCrawlingQueue()\n#22 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Helper\/CrawlerHelper.php(181): Spatie\\Crawler\\Crawler->startCrawling()\n#23 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Helper\/ProjectHelper.php(250): App\\Helper\\CrawlerHelper->crawlProjectProducts()\n#24 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Command\/Cron\/ProductHuntCommand.php(60): App\\Helper\\ProjectHelper->huntProducts()\n#25 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Command\/Command.php(279): App\\Command\\Cron\\ProductHuntCommand->execute()\n#26 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Application.php(1047): Symfony\\Component\\Console\\Command\\Command->run()\n#27 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/framework-bundle\/Console\/Application.php(123): Symfony\\Component\\Console\\Application->doRunCommand()\n#28 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Application.php(316): Symfony\\Bundle\\FrameworkBundle\\Console\\Application->doRunCommand()\n#29 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/framework-bundle\/Console\/Application.php(77): Symfony\\Component\\Console\\Application->doRun()\n#30 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Application.php(167): Symfony\\Bundle\\FrameworkBundle\\Console\\Application->doRun()\n#31 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/runtime\/Runner\/Symfony\/ConsoleApplicationRunner.php(49): Symfony\\Component\\Console\\Application->run()\n#32 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/autoload_runtime.php(29): Symfony\\Component\\Runtime\\Runner\\Symfony\\ConsoleApplicationRunner->run()\n#33 \/home\/cbdextract\/cbdextract.nw.agency\/source\/bin\/console(15): require_once('...')\n#34 {main}"}}"
      -labReportFails: Doctrine\ORM\PersistentCollection {#1609 …}
      -productExcludePaths: null
      -aILogs: Doctrine\ORM\PersistentCollection {#1586 …}
      -user: null
      -aIBatchJobs: Doctrine\ORM\PersistentCollection {#1650 …}
      -lazyObjectState: Symfony\Component\VarExporter\Internal\LazyObjectState {#906 …}
    }
    -labReportSource: null
    -createdAt: DateTime @1748152551 {#848
      date: 2025-05-25 05:55:51.0 UTC (+00:00)
    }
    -updatedAt: DateTime @1748138197 {#845
      date: 2025-05-25 01:56:37.0 UTC (+00:00)
    }
    -category: null
    -state: "processed"
    -expiryDate: "2027-04-16"
    -extractionDate: "2025-04-25"
    -thcaPercentage: "0"
    -totalThcPercentage: "0"
    -deltaNinePercentage: "0"
    -deltaNineWithThcaCombined: "0"
    -comments: null
    -internalUrl: "https://cbdextract.nw.agency/lab-reports/LabReportCOAPart3.jpg"
    -markdownContent: ""# Certificate of Analysis\n\n**Charlotte's Web, Inc.**  \n700 Tech Court  \nLouisville Colorado 80027 United States\n\n**Report Number:** 4901775-0  \n**Report Date:** 25-Apr-2025  \n**Report Status:** Final\n\n----\n\n## Sample Information\n\n| Sample Name:         | A01417 - Composite                  | Eurofins Sample:   | 15217285                         |\n| -------------------- | ----------------------------------- | ------------------ | -------------------------------- |\n| Project ID:          | CHARLO\\_WEB-20250416-0138           | Receipt Date:      | 21-Apr-2025                      |\n| PO Number:           | QC 325                              | Receipt Condition: | Ambient temperature              |\n| Sample Serving Size: | 0.5 mL                              | Login Date:        | 16-Apr-2025                      |\n| Description:         | CW 60mg Organic Orange Blossom 30mL | Date Started:      | 21-Apr-2025                      |\n|                      | 60                                  | Sampled:           | Sample results apply as received |\n| MFG:                 | April 16 2025                       | Number Composited: | 3                                |\n| EXP:                 | April 16 2027                       | Online Order:      | SO-2025-E03804                   |\n\n\n----\n\n## Analysis\n\n### Residual Solvent Analysis in Cannabis and Hemp Matrices\n\nThe ECC limit of 1 ppm for Ethylene Oxide is not achieved by this method. Reporting limit of 25 ppm is the limit recommended by the AOAC CASP. *\n\n#### Category I Residual Solvent or Processing Chemical\n\n| Analysis                       | Limit     | Result | Pass\/Fail |\n| ------------------------------ | --------- | ------ | --------- |\n| Acetone                        | <180 ppm  |        |           |\n| Acetonitrile                   | <180 ppm  |        |           |\n| n-Butane                       | <500 ppm  |        |           |\n| Ethanol                        | <1000 ppm |        |           |\n| Ethyl Acetate                  | <1000 ppm |        |           |\n| Ethyl Ether                    | <1000 ppm |        |           |\n| Heptane                        | <500 ppm  |        |           |\n| n-Hexane                       | <30.0 ppm |        |           |\n| Methanol                       | <1000 ppm |        |           |\n| n-Pentane                      | <250 ppm  |        |           |\n| Propane                        | <1000 ppm |        |           |\n| Isopropyl Alcohol              | <1000 ppm |        |           |\n| Toluene                        | <85.0 ppm |        |           |\n| Xylenes (ortho-, meta-, para-) | <160 ppm  |        |           |\n\n\nThe Pass\/Fail reporting designations are relative to the limits set forth by the Bureau of Cannabis Control Title 16, Division 42. *\n\n### Multi-Residue Analysis for hemp products\n\n| Analysis   | Limit       | Result      | Pass\/Fail |\n| ---------- | ----------- | ----------- | --------- |\n| Cyprodinil | <0.01 mg\/kg | <0.01 mg\/kg | Pass      |\n| Dichlorvos | <0.05 mg\/kg | <0.05 mg\/kg | Pass      |\n| Dimethoate | <0.01 mg\/kg | <0.01 mg\/kg | Pass      |\n| Fluopyram  | <0.01 mg\/kg | <0.01 mg\/kg | Pass      |\n\n\n* This analysis or component is not ISO accredited.\n\nPrinted: 25-Apr-2025 6:32 pm  \nPage 3 of 9""
    -debugData: null
    -jsonContent: [
      "pages" => [
        [
          "page" => 1
          "md" => """
            # Certificate of Analysis\n
            \n
            **Charlotte's Web, Inc.**  \n
            700 Tech Court  \n
            Louisville Colorado 80027 United States\n
            \n
            **Report Number:** 4901775-0  \n
            **Report Date:** 25-Apr-2025  \n
            **Report Status:** Final\n
            \n
            ----\n
            \n
            ## Sample Information\n
            \n
            | Sample Name:         | A01417 - Composite                  | Eurofins Sample:   | 15217285                         |\n
            | -------------------- | ----------------------------------- | ------------------ | -------------------------------- |\n
            | Project ID:          | CHARLO\_WEB-20250416-0138           | Receipt Date:      | 21-Apr-2025                      |\n
            | PO Number:           | QC 325                              | Receipt Condition: | Ambient temperature              |\n
            | Sample Serving Size: | 0.5 mL                              | Login Date:        | 16-Apr-2025                      |\n
            | Description:         | CW 60mg Organic Orange Blossom 30mL | Date Started:      | 21-Apr-2025                      |\n
            |                      | 60                                  | Sampled:           | Sample results apply as received |\n
            | MFG:                 | April 16 2025                       | Number Composited: | 3                                |\n
            | EXP:                 | April 16 2027                       | Online Order:      | SO-2025-E03804                   |\n
            \n
            \n
            ----\n
            \n
            ## Analysis\n
            \n
            ### Residual Solvent Analysis in Cannabis and Hemp Matrices\n
            \n
            The ECC limit of 1 ppm for Ethylene Oxide is not achieved by this method. Reporting limit of 25 ppm is the limit recommended by the AOAC CASP. *\n
            \n
            #### Category I Residual Solvent or Processing Chemical\n
            \n
            | Analysis                       | Limit     | Result | Pass/Fail |\n
            | ------------------------------ | --------- | ------ | --------- |\n
            | Acetone                        | <180 ppm  |        |           |\n
            | Acetonitrile                   | <180 ppm  |        |           |\n
            | n-Butane                       | <500 ppm  |        |           |\n
            | Ethanol                        | <1000 ppm |        |           |\n
            | Ethyl Acetate                  | <1000 ppm |        |           |\n
            | Ethyl Ether                    | <1000 ppm |        |           |\n
            | Heptane                        | <500 ppm  |        |           |\n
            | n-Hexane                       | <30.0 ppm |        |           |\n
            | Methanol                       | <1000 ppm |        |           |\n
            | n-Pentane                      | <250 ppm  |        |           |\n
            | Propane                        | <1000 ppm |        |           |\n
            | Isopropyl Alcohol              | <1000 ppm |        |           |\n
            | Toluene                        | <85.0 ppm |        |           |\n
            | Xylenes (ortho-, meta-, para-) | <160 ppm  |        |           |\n
            \n
            \n
            The Pass/Fail reporting designations are relative to the limits set forth by the Bureau of Cannabis Control Title 16, Division 42. *\n
            \n
            ### Multi-Residue Analysis for hemp products\n
            \n
            | Analysis   | Limit       | Result      | Pass/Fail |\n
            | ---------- | ----------- | ----------- | --------- |\n
            | Cyprodinil | <0.01 mg/kg | <0.01 mg/kg | Pass      |\n
            | Dichlorvos | <0.05 mg/kg | <0.05 mg/kg | Pass      |\n
            | Dimethoate | <0.01 mg/kg | <0.01 mg/kg | Pass      |\n
            | Fluopyram  | <0.01 mg/kg | <0.01 mg/kg | Pass      |\n
            \n
            \n
            * This analysis or component is not ISO accredited.\n
            \n
            Printed: 25-Apr-2025 6:32 pm  \n
            Page 3 of 9
            """
          "images" => [
            [
              "name" => "page_1.jpg"
              "height" => 0
              "width" => 0
              "x" => 0
              "y" => 0
              "type" => "full_page_screenshot"
            ]
          ]
          "charts" => []
          "items" => [
            [
              "type" => "heading"
              "lvl" => 1
              "value" => "Certificate of Analysis"
              "md" => "# Certificate of Analysis"
            ]
            [
              "type" => "text"
              "value" => """
                **Charlotte's Web, Inc.**  \n
                700 Tech Court  \n
                Louisville Colorado 80027 United States\n
                \n
                **Report Number:** 4901775-0  \n
                **Report Date:** 25-Apr-2025  \n
                **Report Status:** Final\n
                \n
                ----
                """
              "md" => """
                **Charlotte's Web, Inc.**  \n
                700 Tech Court  \n
                Louisville Colorado 80027 United States\n
                \n
                **Report Number:** 4901775-0  \n
                **Report Date:** 25-Apr-2025  \n
                **Report Status:** Final\n
                \n
                ----
                """
            ]
            [
              "type" => "heading"
              "lvl" => 2
              "value" => "Sample Information"
              "md" => "## Sample Information"
            ]
            [
              "type" => "table"
              "rows" => [
                [
                  "Sample Name:"
                  "A01417 - Composite"
                  "Eurofins Sample:"
                  "15217285"
                ]
                [
                  "Project ID:"
                  "CHARLO_WEB-20250416-0138"
                  "Receipt Date:"
                  "21-Apr-2025"
                ]
                [
                  "PO Number:"
                  "QC 325"
                  "Receipt Condition:"
                  "Ambient temperature"
                ]
                [
                  "Sample Serving Size:"
                  "0.5 mL"
                  "Login Date:"
                  "16-Apr-2025"
                ]
                [
                  "Description:"
                  "CW 60mg Organic Orange Blossom 30mL"
                  "Date Started:"
                  "21-Apr-2025"
                ]
                [
                  ""
                  "60"
                  "Sampled:"
                  "Sample results apply as received"
                ]
                [
                  "MFG:"
                  "April 16 2025"
                  "Number Composited:"
                  "3"
                ]
                [
                  "EXP:"
                  "April 16 2027"
                  "Online Order:"
                  "SO-2025-E03804"
                ]
              ]
              "md" => """
                | Sample Name:         | A01417 - Composite                  | Eurofins Sample:   | 15217285                         |\n
                | -------------------- | ----------------------------------- | ------------------ | -------------------------------- |\n
                | Project ID:          | CHARLO\_WEB-20250416-0138           | Receipt Date:      | 21-Apr-2025                      |\n
                | PO Number:           | QC 325                              | Receipt Condition: | Ambient temperature              |\n
                | Sample Serving Size: | 0.5 mL                              | Login Date:        | 16-Apr-2025                      |\n
                | Description:         | CW 60mg Organic Orange Blossom 30mL | Date Started:      | 21-Apr-2025                      |\n
                |                      | 60                                  | Sampled:           | Sample results apply as received |\n
                | MFG:                 | April 16 2025                       | Number Composited: | 3                                |\n
                | EXP:                 | April 16 2027                       | Online Order:      | SO-2025-E03804                   |
                """
              "isPerfectTable" => true
              "csv" => """
                "Sample Name:","A01417 - Composite","Eurofins Sample:","15217285"\n
                "Project ID:","CHARLO_WEB-20250416-0138","Receipt Date:","21-Apr-2025"\n
                "PO Number:","QC 325","Receipt Condition:","Ambient temperature"\n
                "Sample Serving Size:","0.5 mL","Login Date:","16-Apr-2025"\n
                "Description:","CW 60mg Organic Orange Blossom 30mL","Date Started:","21-Apr-2025"\n
                "","60","Sampled:","Sample results apply as received"\n
                "MFG:","April 16 2025","Number Composited:","3"\n
                "EXP:","April 16 2027","Online Order:","SO-2025-E03804"
                """
            ]
            [
              "type" => "text"
              "value" => "----"
              "md" => "----"
            ]
            [
              "type" => "heading"
              "lvl" => 2
              "value" => "Analysis"
              "md" => "## Analysis"
            ]
            [
              "type" => "heading"
              "lvl" => 3
              "value" => "Residual Solvent Analysis in Cannabis and Hemp Matrices"
              "md" => "### Residual Solvent Analysis in Cannabis and Hemp Matrices"
            ]
            [
              "type" => "text"
              "value" => "The ECC limit of 1 ppm for Ethylene Oxide is not achieved by this method. Reporting limit of 25 ppm is the limit recommended by the AOAC CASP. *"
              "md" => "The ECC limit of 1 ppm for Ethylene Oxide is not achieved by this method. Reporting limit of 25 ppm is the limit recommended by the AOAC CASP. *"
            ]
            [
              "type" => "heading"
              "lvl" => 4
              "value" => "Category I Residual Solvent or Processing Chemical"
              "md" => "#### Category I Residual Solvent or Processing Chemical"
            ]
            [
              "type" => "table"
              "rows" => [
                [
                  "Analysis"
                  "Limit"
                  "Result"
                  "Pass/Fail"
                ]
                [
                  "Acetone"
                  "<180 ppm"
                  ""
                  ""
                ]
                [
                  "Acetonitrile"
                  "<180 ppm"
                  ""
                  ""
                ]
                [
                  "n-Butane"
                  "<500 ppm"
                  ""
                  ""
                ]
                [
                  "Ethanol"
                  "<1000 ppm"
                  ""
                  ""
                ]
                [
                  "Ethyl Acetate"
                  "<1000 ppm"
                  ""
                  ""
                ]
                [
                  "Ethyl Ether"
                  "<1000 ppm"
                  ""
                  ""
                ]
                [
                  "Heptane"
                  "<500 ppm"
                  ""
                  ""
                ]
                [
                  "n-Hexane"
                  "<30.0 ppm"
                  ""
                  ""
                ]
                [
                  "Methanol"
                  "<1000 ppm"
                  ""
                  ""
                ]
                [
                  "n-Pentane"
                  "<250 ppm"
                  ""
                  ""
                ]
                [
                  "Propane"
                  "<1000 ppm"
                  ""
                  ""
                ]
                [
                  "Isopropyl Alcohol"
                  "<1000 ppm"
                  ""
                  ""
                ]
                [
                  "Toluene"
                  "<85.0 ppm"
                  ""
                  ""
                ]
                [
                  "Xylenes (ortho-, meta-, para-)"
                  "<160 ppm"
                  ""
                  ""
                ]
              ]
              "md" => """
                | Analysis                       | Limit     | Result | Pass/Fail |\n
                | ------------------------------ | --------- | ------ | --------- |\n
                | Acetone                        | <180 ppm  |        |           |\n
                | Acetonitrile                   | <180 ppm  |        |           |\n
                | n-Butane                       | <500 ppm  |        |           |\n
                | Ethanol                        | <1000 ppm |        |           |\n
                | Ethyl Acetate                  | <1000 ppm |        |           |\n
                | Ethyl Ether                    | <1000 ppm |        |           |\n
                | Heptane                        | <500 ppm  |        |           |\n
                | n-Hexane                       | <30.0 ppm |        |           |\n
                | Methanol                       | <1000 ppm |        |           |\n
                | n-Pentane                      | <250 ppm  |        |           |\n
                | Propane                        | <1000 ppm |        |           |\n
                | Isopropyl Alcohol              | <1000 ppm |        |           |\n
                | Toluene                        | <85.0 ppm |        |           |\n
                | Xylenes (ortho-, meta-, para-) | <160 ppm  |        |           |
                """
              "isPerfectTable" => true
              "csv" => """
                "Analysis","Limit","Result","Pass/Fail"\n
                "Acetone","<180 ppm","",""\n
                "Acetonitrile","<180 ppm","",""\n
                "n-Butane","<500 ppm","",""\n
                "Ethanol","<1000 ppm","",""\n
                "Ethyl Acetate","<1000 ppm","",""\n
                "Ethyl Ether","<1000 ppm","",""\n
                "Heptane","<500 ppm","",""\n
                "n-Hexane","<30.0 ppm","",""\n
                "Methanol","<1000 ppm","",""\n
                "n-Pentane","<250 ppm","",""\n
                "Propane","<1000 ppm","",""\n
                "Isopropyl Alcohol","<1000 ppm","",""\n
                "Toluene","<85.0 ppm","",""\n
                "Xylenes (ortho-, meta-, para-)","<160 ppm","",""
                """
            ]
            [
              "type" => "text"
              "value" => "The Pass/Fail reporting designations are relative to the limits set forth by the Bureau of Cannabis Control Title 16, Division 42. *"
              "md" => "The Pass/Fail reporting designations are relative to the limits set forth by the Bureau of Cannabis Control Title 16, Division 42. *"
            ]
            [
              "type" => "heading"
              "lvl" => 3
              "value" => "Multi-Residue Analysis for hemp products"
              "md" => "### Multi-Residue Analysis for hemp products"
            ]
            [
              "type" => "table"
              "rows" => [
                [
                  "Analysis"
                  "Limit"
                  "Result"
                  "Pass/Fail"
                ]
                [
                  "Cyprodinil"
                  "<0.01 mg/kg"
                  "<0.01 mg/kg"
                  "Pass"
                ]
                [
                  "Dichlorvos"
                  "<0.05 mg/kg"
                  "<0.05 mg/kg"
                  "Pass"
                ]
                [
                  "Dimethoate"
                  "<0.01 mg/kg"
                  "<0.01 mg/kg"
                  "Pass"
                ]
                [
                  "Fluopyram"
                  "<0.01 mg/kg"
                  "<0.01 mg/kg"
                  "Pass"
                ]
              ]
              "md" => """
                | Analysis   | Limit       | Result      | Pass/Fail |\n
                | ---------- | ----------- | ----------- | --------- |\n
                | Cyprodinil | <0.01 mg/kg | <0.01 mg/kg | Pass      |\n
                | Dichlorvos | <0.05 mg/kg | <0.05 mg/kg | Pass      |\n
                | Dimethoate | <0.01 mg/kg | <0.01 mg/kg | Pass      |\n
                | Fluopyram  | <0.01 mg/kg | <0.01 mg/kg | Pass      |
                """
              "isPerfectTable" => true
              "csv" => """
                "Analysis","Limit","Result","Pass/Fail"\n
                "Cyprodinil","<0.01 mg/kg","<0.01 mg/kg","Pass"\n
                "Dichlorvos","<0.05 mg/kg","<0.05 mg/kg","Pass"\n
                "Dimethoate","<0.01 mg/kg","<0.01 mg/kg","Pass"\n
                "Fluopyram","<0.01 mg/kg","<0.01 mg/kg","Pass"
                """
            ]
            [
              "type" => "text"
              "value" => """
                * This analysis or component is not ISO accredited.\n
                \n
                Printed: 25-Apr-2025 6:32 pm  \n
                Page 3 of 9
                """
              "md" => """
                * This analysis or component is not ISO accredited.\n
                \n
                Printed: 25-Apr-2025 6:32 pm  \n
                Page 3 of 9
                """
            ]
          ]
          "status" => "OK"
          "originalOrientationAngle" => 0
          "links" => []
          "triggeredAutoMode" => false
          "parsingMode" => "multimodal-openai-gpt4o"
          "structuredData" => null
          "noStructuredContent" => false
          "noTextContent" => false
        ]
      ]
      "job_metadata" => [
        "credits_used" => 0
        "job_credits_usage" => 0
        "job_pages" => 1
        "job_auto_mode_triggered_pages" => 0
        "job_is_cache_hit" => false
      ]
    ]
    -labName: "Charlotte's Web, Inc."
    -sampleName: "CW 60mg Organic Orange Blossom 30mL"
    -sampleMatrix: "product"
    -internalPath: "/home/cbdextract/cbdextract.nw.agency/source/public/lab-reports/LabReportCOAPart3.jpg"
    -productType: "cannabis"
    -aILogs: Doctrine\ORM\PersistentCollection {#964 …}
    -products: Doctrine\ORM\PersistentCollection {#1018 …}
  }
  -primaryKeyName: "id"
  -primaryKeyValue: 843
  -permission: null
  -fields: EasyCorp\Bundle\EasyAdminBundle\Collection\FieldCollection {#1343 …}
  -actions: EasyCorp\Bundle\EasyAdminBundle\Collection\ActionCollection {#1719 …}
}
same as passed value
translation_domain
"messages"
same as passed value

Resolved Options

Option Value
action
""
allow_extra_fields
true
allow_file_upload
false
attr
[
  "class" => "ea-edit-form"
  "id" => "edit-LabReport-form"
]
attr_translation_parameters
[]
auto_initialize
true
block_name
null
block_prefix
null
by_reference
true
compound
true
constraints
[]
csrf_field_name
"_token"
csrf_message
"The CSRF token is invalid. Please try to resubmit the form."
csrf_protection
true
csrf_token_id
null
csrf_token_manager
Symfony\Component\Security\Csrf\CsrfTokenManager {#395
  -generator: Symfony\Component\Security\Csrf\TokenGenerator\UriSafeTokenGenerator {#396 …}
  -storage: Symfony\Component\Security\Csrf\TokenStorage\SessionTokenStorage {#397 …}
  -namespace: Closure() {#399 …}
}
data
App\Entity\LabReport {#854
  -id: 843
  -name: "Lab Report COA Part 3"
  -externalUrl: "https://purecbdnc.com/cdn/shop/files/Charlotte_sWeb_CBDFullSpectrumTincture60mg-30ml_OrangeCOA2025-04-253_98c7426c-419c-45dc-b5c7-3f7c31fba816.jpg?v=1747428923"
  -source: null
  -type: "jpg"
  -project: Proxies\__CG__\App\Entity\Project {#903
    -id: 104
    -name: "pure cbd"
    -url: "https://purecbdnc.com/"
    -prompt: null
    -chatJson: null
    -externalLabReportsUrl: null
    -spiderSourceUrls: Doctrine\ORM\PersistentCollection {#1521 …}
    -productMatchingUrl: null
    -productUrls: Doctrine\ORM\PersistentCollection {#1556 …}
    -labReportSources: Doctrine\ORM\PersistentCollection {#1527 …}
    -labReports: Doctrine\ORM\PersistentCollection {#1558 …}
    -createdAt: DateTime @1744068184 {#1495
      date: 2025-04-07 23:23:04.0 UTC (+00:00)
    }
    -updatedAt: DateTime @1768286193 {#1485
      date: 2026-01-13 06:36:33.0 UTC (+00:00)
    }
    -spiderSourceMatchingUrls: null
    -state: "ready_to_hunt"
    -products: Doctrine\ORM\PersistentCollection {#1560 …}
    -productPages: Doctrine\ORM\PersistentCollection {#1581 …}
    -websiteFramework: "shopify"
    -debugData: "{"error":{"message":"DOMDocument::loadHTML(): Argument #1 ($source) must not be empty","trace":"#0 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Helper\/FrameworkHelper.php(346): DOMDocument->loadHTML()\n#1 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Crawler\/ProductHuntCrawlerObserver.php(134): App\\Helper\\FrameworkHelper->is_shopify_product_page()\n#2 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/CrawlObservers\/CrawlObserverCollection.php(28): App\\Crawler\\ProductHuntCrawlerObserver->crawled()\n#3 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Handlers\/CrawlRequestFulfilled.php(104): Spatie\\Crawler\\CrawlObservers\\CrawlObserverCollection->crawled()\n#4 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Handlers\/CrawlRequestFulfilled.php(70): Spatie\\Crawler\\Handlers\\CrawlRequestFulfilled->handleCrawled()\n#5 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/EachPromise.php(173): Spatie\\Crawler\\Handlers\\CrawlRequestFulfilled->__invoke()\n#6 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(209): GuzzleHttp\\Promise\\EachPromise->GuzzleHttp\\Promise\\{closure}()\n#7 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(158): GuzzleHttp\\Promise\\Promise::callHandler()\n#8 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/TaskQueue.php(52): GuzzleHttp\\Promise\\Promise::GuzzleHttp\\Promise\\{closure}()\n#9 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/guzzle\/src\/Handler\/CurlMultiHandler.php(167): GuzzleHttp\\Promise\\TaskQueue->run()\n#10 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/guzzle\/src\/Handler\/CurlMultiHandler.php(206): GuzzleHttp\\Handler\\CurlMultiHandler->tick()\n#11 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(251): GuzzleHttp\\Handler\\CurlMultiHandler->execute()\n#12 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(227): GuzzleHttp\\Promise\\Promise->invokeWaitFn()\n#13 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(272): GuzzleHttp\\Promise\\Promise->waitIfPending()\n#14 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(229): GuzzleHttp\\Promise\\Promise->invokeWaitList()\n#15 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(69): GuzzleHttp\\Promise\\Promise->waitIfPending()\n#16 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/EachPromise.php(109): GuzzleHttp\\Promise\\Promise->wait()\n#17 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(251): GuzzleHttp\\Promise\\EachPromise->GuzzleHttp\\Promise\\{closure}()\n#18 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(227): GuzzleHttp\\Promise\\Promise->invokeWaitFn()\n#19 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(69): GuzzleHttp\\Promise\\Promise->waitIfPending()\n#20 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Crawler.php(494): GuzzleHttp\\Promise\\Promise->wait()\n#21 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Crawler.php(443): Spatie\\Crawler\\Crawler->startCrawlingQueue()\n#22 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Helper\/CrawlerHelper.php(181): Spatie\\Crawler\\Crawler->startCrawling()\n#23 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Helper\/ProjectHelper.php(250): App\\Helper\\CrawlerHelper->crawlProjectProducts()\n#24 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Command\/Cron\/ProductHuntCommand.php(60): App\\Helper\\ProjectHelper->huntProducts()\n#25 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Command\/Command.php(279): App\\Command\\Cron\\ProductHuntCommand->execute()\n#26 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Application.php(1047): Symfony\\Component\\Console\\Command\\Command->run()\n#27 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/framework-bundle\/Console\/Application.php(123): Symfony\\Component\\Console\\Application->doRunCommand()\n#28 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Application.php(316): Symfony\\Bundle\\FrameworkBundle\\Console\\Application->doRunCommand()\n#29 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/framework-bundle\/Console\/Application.php(77): Symfony\\Component\\Console\\Application->doRun()\n#30 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Application.php(167): Symfony\\Bundle\\FrameworkBundle\\Console\\Application->doRun()\n#31 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/runtime\/Runner\/Symfony\/ConsoleApplicationRunner.php(49): Symfony\\Component\\Console\\Application->run()\n#32 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/autoload_runtime.php(29): Symfony\\Component\\Runtime\\Runner\\Symfony\\ConsoleApplicationRunner->run()\n#33 \/home\/cbdextract\/cbdextract.nw.agency\/source\/bin\/console(15): require_once('...')\n#34 {main}"}}"
    -labReportFails: Doctrine\ORM\PersistentCollection {#1609 …}
    -productExcludePaths: null
    -aILogs: Doctrine\ORM\PersistentCollection {#1586 …}
    -user: null
    -aIBatchJobs: Doctrine\ORM\PersistentCollection {#1650 …}
    -lazyObjectState: Symfony\Component\VarExporter\Internal\LazyObjectState {#906 …}
  }
  -labReportSource: null
  -createdAt: DateTime @1748152551 {#848
    date: 2025-05-25 05:55:51.0 UTC (+00:00)
  }
  -updatedAt: DateTime @1748138197 {#845
    date: 2025-05-25 01:56:37.0 UTC (+00:00)
  }
  -category: null
  -state: "processed"
  -expiryDate: "2027-04-16"
  -extractionDate: "2025-04-25"
  -thcaPercentage: "0"
  -totalThcPercentage: "0"
  -deltaNinePercentage: "0"
  -deltaNineWithThcaCombined: "0"
  -comments: null
  -internalUrl: "https://cbdextract.nw.agency/lab-reports/LabReportCOAPart3.jpg"
  -markdownContent: ""# Certificate of Analysis\n\n**Charlotte's Web, Inc.**  \n700 Tech Court  \nLouisville Colorado 80027 United States\n\n**Report Number:** 4901775-0  \n**Report Date:** 25-Apr-2025  \n**Report Status:** Final\n\n----\n\n## Sample Information\n\n| Sample Name:         | A01417 - Composite                  | Eurofins Sample:   | 15217285                         |\n| -------------------- | ----------------------------------- | ------------------ | -------------------------------- |\n| Project ID:          | CHARLO\\_WEB-20250416-0138           | Receipt Date:      | 21-Apr-2025                      |\n| PO Number:           | QC 325                              | Receipt Condition: | Ambient temperature              |\n| Sample Serving Size: | 0.5 mL                              | Login Date:        | 16-Apr-2025                      |\n| Description:         | CW 60mg Organic Orange Blossom 30mL | Date Started:      | 21-Apr-2025                      |\n|                      | 60                                  | Sampled:           | Sample results apply as received |\n| MFG:                 | April 16 2025                       | Number Composited: | 3                                |\n| EXP:                 | April 16 2027                       | Online Order:      | SO-2025-E03804                   |\n\n\n----\n\n## Analysis\n\n### Residual Solvent Analysis in Cannabis and Hemp Matrices\n\nThe ECC limit of 1 ppm for Ethylene Oxide is not achieved by this method. Reporting limit of 25 ppm is the limit recommended by the AOAC CASP. *\n\n#### Category I Residual Solvent or Processing Chemical\n\n| Analysis                       | Limit     | Result | Pass\/Fail |\n| ------------------------------ | --------- | ------ | --------- |\n| Acetone                        | <180 ppm  |        |           |\n| Acetonitrile                   | <180 ppm  |        |           |\n| n-Butane                       | <500 ppm  |        |           |\n| Ethanol                        | <1000 ppm |        |           |\n| Ethyl Acetate                  | <1000 ppm |        |           |\n| Ethyl Ether                    | <1000 ppm |        |           |\n| Heptane                        | <500 ppm  |        |           |\n| n-Hexane                       | <30.0 ppm |        |           |\n| Methanol                       | <1000 ppm |        |           |\n| n-Pentane                      | <250 ppm  |        |           |\n| Propane                        | <1000 ppm |        |           |\n| Isopropyl Alcohol              | <1000 ppm |        |           |\n| Toluene                        | <85.0 ppm |        |           |\n| Xylenes (ortho-, meta-, para-) | <160 ppm  |        |           |\n\n\nThe Pass\/Fail reporting designations are relative to the limits set forth by the Bureau of Cannabis Control Title 16, Division 42. *\n\n### Multi-Residue Analysis for hemp products\n\n| Analysis   | Limit       | Result      | Pass\/Fail |\n| ---------- | ----------- | ----------- | --------- |\n| Cyprodinil | <0.01 mg\/kg | <0.01 mg\/kg | Pass      |\n| Dichlorvos | <0.05 mg\/kg | <0.05 mg\/kg | Pass      |\n| Dimethoate | <0.01 mg\/kg | <0.01 mg\/kg | Pass      |\n| Fluopyram  | <0.01 mg\/kg | <0.01 mg\/kg | Pass      |\n\n\n* This analysis or component is not ISO accredited.\n\nPrinted: 25-Apr-2025 6:32 pm  \nPage 3 of 9""
  -debugData: null
  -jsonContent: [
    "pages" => [
      [
        "page" => 1
        "md" => """
          # Certificate of Analysis\n
          \n
          **Charlotte's Web, Inc.**  \n
          700 Tech Court  \n
          Louisville Colorado 80027 United States\n
          \n
          **Report Number:** 4901775-0  \n
          **Report Date:** 25-Apr-2025  \n
          **Report Status:** Final\n
          \n
          ----\n
          \n
          ## Sample Information\n
          \n
          | Sample Name:         | A01417 - Composite                  | Eurofins Sample:   | 15217285                         |\n
          | -------------------- | ----------------------------------- | ------------------ | -------------------------------- |\n
          | Project ID:          | CHARLO\_WEB-20250416-0138           | Receipt Date:      | 21-Apr-2025                      |\n
          | PO Number:           | QC 325                              | Receipt Condition: | Ambient temperature              |\n
          | Sample Serving Size: | 0.5 mL                              | Login Date:        | 16-Apr-2025                      |\n
          | Description:         | CW 60mg Organic Orange Blossom 30mL | Date Started:      | 21-Apr-2025                      |\n
          |                      | 60                                  | Sampled:           | Sample results apply as received |\n
          | MFG:                 | April 16 2025                       | Number Composited: | 3                                |\n
          | EXP:                 | April 16 2027                       | Online Order:      | SO-2025-E03804                   |\n
          \n
          \n
          ----\n
          \n
          ## Analysis\n
          \n
          ### Residual Solvent Analysis in Cannabis and Hemp Matrices\n
          \n
          The ECC limit of 1 ppm for Ethylene Oxide is not achieved by this method. Reporting limit of 25 ppm is the limit recommended by the AOAC CASP. *\n
          \n
          #### Category I Residual Solvent or Processing Chemical\n
          \n
          | Analysis                       | Limit     | Result | Pass/Fail |\n
          | ------------------------------ | --------- | ------ | --------- |\n
          | Acetone                        | <180 ppm  |        |           |\n
          | Acetonitrile                   | <180 ppm  |        |           |\n
          | n-Butane                       | <500 ppm  |        |           |\n
          | Ethanol                        | <1000 ppm |        |           |\n
          | Ethyl Acetate                  | <1000 ppm |        |           |\n
          | Ethyl Ether                    | <1000 ppm |        |           |\n
          | Heptane                        | <500 ppm  |        |           |\n
          | n-Hexane                       | <30.0 ppm |        |           |\n
          | Methanol                       | <1000 ppm |        |           |\n
          | n-Pentane                      | <250 ppm  |        |           |\n
          | Propane                        | <1000 ppm |        |           |\n
          | Isopropyl Alcohol              | <1000 ppm |        |           |\n
          | Toluene                        | <85.0 ppm |        |           |\n
          | Xylenes (ortho-, meta-, para-) | <160 ppm  |        |           |\n
          \n
          \n
          The Pass/Fail reporting designations are relative to the limits set forth by the Bureau of Cannabis Control Title 16, Division 42. *\n
          \n
          ### Multi-Residue Analysis for hemp products\n
          \n
          | Analysis   | Limit       | Result      | Pass/Fail |\n
          | ---------- | ----------- | ----------- | --------- |\n
          | Cyprodinil | <0.01 mg/kg | <0.01 mg/kg | Pass      |\n
          | Dichlorvos | <0.05 mg/kg | <0.05 mg/kg | Pass      |\n
          | Dimethoate | <0.01 mg/kg | <0.01 mg/kg | Pass      |\n
          | Fluopyram  | <0.01 mg/kg | <0.01 mg/kg | Pass      |\n
          \n
          \n
          * This analysis or component is not ISO accredited.\n
          \n
          Printed: 25-Apr-2025 6:32 pm  \n
          Page 3 of 9
          """
        "images" => [
          [
            "name" => "page_1.jpg"
            "height" => 0
            "width" => 0
            "x" => 0
            "y" => 0
            "type" => "full_page_screenshot"
          ]
        ]
        "charts" => []
        "items" => [
          [
            "type" => "heading"
            "lvl" => 1
            "value" => "Certificate of Analysis"
            "md" => "# Certificate of Analysis"
          ]
          [
            "type" => "text"
            "value" => """
              **Charlotte's Web, Inc.**  \n
              700 Tech Court  \n
              Louisville Colorado 80027 United States\n
              \n
              **Report Number:** 4901775-0  \n
              **Report Date:** 25-Apr-2025  \n
              **Report Status:** Final\n
              \n
              ----
              """
            "md" => """
              **Charlotte's Web, Inc.**  \n
              700 Tech Court  \n
              Louisville Colorado 80027 United States\n
              \n
              **Report Number:** 4901775-0  \n
              **Report Date:** 25-Apr-2025  \n
              **Report Status:** Final\n
              \n
              ----
              """
          ]
          [
            "type" => "heading"
            "lvl" => 2
            "value" => "Sample Information"
            "md" => "## Sample Information"
          ]
          [
            "type" => "table"
            "rows" => [
              [
                "Sample Name:"
                "A01417 - Composite"
                "Eurofins Sample:"
                "15217285"
              ]
              [
                "Project ID:"
                "CHARLO_WEB-20250416-0138"
                "Receipt Date:"
                "21-Apr-2025"
              ]
              [
                "PO Number:"
                "QC 325"
                "Receipt Condition:"
                "Ambient temperature"
              ]
              [
                "Sample Serving Size:"
                "0.5 mL"
                "Login Date:"
                "16-Apr-2025"
              ]
              [
                "Description:"
                "CW 60mg Organic Orange Blossom 30mL"
                "Date Started:"
                "21-Apr-2025"
              ]
              [
                ""
                "60"
                "Sampled:"
                "Sample results apply as received"
              ]
              [
                "MFG:"
                "April 16 2025"
                "Number Composited:"
                "3"
              ]
              [
                "EXP:"
                "April 16 2027"
                "Online Order:"
                "SO-2025-E03804"
              ]
            ]
            "md" => """
              | Sample Name:         | A01417 - Composite                  | Eurofins Sample:   | 15217285                         |\n
              | -------------------- | ----------------------------------- | ------------------ | -------------------------------- |\n
              | Project ID:          | CHARLO\_WEB-20250416-0138           | Receipt Date:      | 21-Apr-2025                      |\n
              | PO Number:           | QC 325                              | Receipt Condition: | Ambient temperature              |\n
              | Sample Serving Size: | 0.5 mL                              | Login Date:        | 16-Apr-2025                      |\n
              | Description:         | CW 60mg Organic Orange Blossom 30mL | Date Started:      | 21-Apr-2025                      |\n
              |                      | 60                                  | Sampled:           | Sample results apply as received |\n
              | MFG:                 | April 16 2025                       | Number Composited: | 3                                |\n
              | EXP:                 | April 16 2027                       | Online Order:      | SO-2025-E03804                   |
              """
            "isPerfectTable" => true
            "csv" => """
              "Sample Name:","A01417 - Composite","Eurofins Sample:","15217285"\n
              "Project ID:","CHARLO_WEB-20250416-0138","Receipt Date:","21-Apr-2025"\n
              "PO Number:","QC 325","Receipt Condition:","Ambient temperature"\n
              "Sample Serving Size:","0.5 mL","Login Date:","16-Apr-2025"\n
              "Description:","CW 60mg Organic Orange Blossom 30mL","Date Started:","21-Apr-2025"\n
              "","60","Sampled:","Sample results apply as received"\n
              "MFG:","April 16 2025","Number Composited:","3"\n
              "EXP:","April 16 2027","Online Order:","SO-2025-E03804"
              """
          ]
          [
            "type" => "text"
            "value" => "----"
            "md" => "----"
          ]
          [
            "type" => "heading"
            "lvl" => 2
            "value" => "Analysis"
            "md" => "## Analysis"
          ]
          [
            "type" => "heading"
            "lvl" => 3
            "value" => "Residual Solvent Analysis in Cannabis and Hemp Matrices"
            "md" => "### Residual Solvent Analysis in Cannabis and Hemp Matrices"
          ]
          [
            "type" => "text"
            "value" => "The ECC limit of 1 ppm for Ethylene Oxide is not achieved by this method. Reporting limit of 25 ppm is the limit recommended by the AOAC CASP. *"
            "md" => "The ECC limit of 1 ppm for Ethylene Oxide is not achieved by this method. Reporting limit of 25 ppm is the limit recommended by the AOAC CASP. *"
          ]
          [
            "type" => "heading"
            "lvl" => 4
            "value" => "Category I Residual Solvent or Processing Chemical"
            "md" => "#### Category I Residual Solvent or Processing Chemical"
          ]
          [
            "type" => "table"
            "rows" => [
              [
                "Analysis"
                "Limit"
                "Result"
                "Pass/Fail"
              ]
              [
                "Acetone"
                "<180 ppm"
                ""
                ""
              ]
              [
                "Acetonitrile"
                "<180 ppm"
                ""
                ""
              ]
              [
                "n-Butane"
                "<500 ppm"
                ""
                ""
              ]
              [
                "Ethanol"
                "<1000 ppm"
                ""
                ""
              ]
              [
                "Ethyl Acetate"
                "<1000 ppm"
                ""
                ""
              ]
              [
                "Ethyl Ether"
                "<1000 ppm"
                ""
                ""
              ]
              [
                "Heptane"
                "<500 ppm"
                ""
                ""
              ]
              [
                "n-Hexane"
                "<30.0 ppm"
                ""
                ""
              ]
              [
                "Methanol"
                "<1000 ppm"
                ""
                ""
              ]
              [
                "n-Pentane"
                "<250 ppm"
                ""
                ""
              ]
              [
                "Propane"
                "<1000 ppm"
                ""
                ""
              ]
              [
                "Isopropyl Alcohol"
                "<1000 ppm"
                ""
                ""
              ]
              [
                "Toluene"
                "<85.0 ppm"
                ""
                ""
              ]
              [
                "Xylenes (ortho-, meta-, para-)"
                "<160 ppm"
                ""
                ""
              ]
            ]
            "md" => """
              | Analysis                       | Limit     | Result | Pass/Fail |\n
              | ------------------------------ | --------- | ------ | --------- |\n
              | Acetone                        | <180 ppm  |        |           |\n
              | Acetonitrile                   | <180 ppm  |        |           |\n
              | n-Butane                       | <500 ppm  |        |           |\n
              | Ethanol                        | <1000 ppm |        |           |\n
              | Ethyl Acetate                  | <1000 ppm |        |           |\n
              | Ethyl Ether                    | <1000 ppm |        |           |\n
              | Heptane                        | <500 ppm  |        |           |\n
              | n-Hexane                       | <30.0 ppm |        |           |\n
              | Methanol                       | <1000 ppm |        |           |\n
              | n-Pentane                      | <250 ppm  |        |           |\n
              | Propane                        | <1000 ppm |        |           |\n
              | Isopropyl Alcohol              | <1000 ppm |        |           |\n
              | Toluene                        | <85.0 ppm |        |           |\n
              | Xylenes (ortho-, meta-, para-) | <160 ppm  |        |           |
              """
            "isPerfectTable" => true
            "csv" => """
              "Analysis","Limit","Result","Pass/Fail"\n
              "Acetone","<180 ppm","",""\n
              "Acetonitrile","<180 ppm","",""\n
              "n-Butane","<500 ppm","",""\n
              "Ethanol","<1000 ppm","",""\n
              "Ethyl Acetate","<1000 ppm","",""\n
              "Ethyl Ether","<1000 ppm","",""\n
              "Heptane","<500 ppm","",""\n
              "n-Hexane","<30.0 ppm","",""\n
              "Methanol","<1000 ppm","",""\n
              "n-Pentane","<250 ppm","",""\n
              "Propane","<1000 ppm","",""\n
              "Isopropyl Alcohol","<1000 ppm","",""\n
              "Toluene","<85.0 ppm","",""\n
              "Xylenes (ortho-, meta-, para-)","<160 ppm","",""
              """
          ]
          [
            "type" => "text"
            "value" => "The Pass/Fail reporting designations are relative to the limits set forth by the Bureau of Cannabis Control Title 16, Division 42. *"
            "md" => "The Pass/Fail reporting designations are relative to the limits set forth by the Bureau of Cannabis Control Title 16, Division 42. *"
          ]
          [
            "type" => "heading"
            "lvl" => 3
            "value" => "Multi-Residue Analysis for hemp products"
            "md" => "### Multi-Residue Analysis for hemp products"
          ]
          [
            "type" => "table"
            "rows" => [
              [
                "Analysis"
                "Limit"
                "Result"
                "Pass/Fail"
              ]
              [
                "Cyprodinil"
                "<0.01 mg/kg"
                "<0.01 mg/kg"
                "Pass"
              ]
              [
                "Dichlorvos"
                "<0.05 mg/kg"
                "<0.05 mg/kg"
                "Pass"
              ]
              [
                "Dimethoate"
                "<0.01 mg/kg"
                "<0.01 mg/kg"
                "Pass"
              ]
              [
                "Fluopyram"
                "<0.01 mg/kg"
                "<0.01 mg/kg"
                "Pass"
              ]
            ]
            "md" => """
              | Analysis   | Limit       | Result      | Pass/Fail |\n
              | ---------- | ----------- | ----------- | --------- |\n
              | Cyprodinil | <0.01 mg/kg | <0.01 mg/kg | Pass      |\n
              | Dichlorvos | <0.05 mg/kg | <0.05 mg/kg | Pass      |\n
              | Dimethoate | <0.01 mg/kg | <0.01 mg/kg | Pass      |\n
              | Fluopyram  | <0.01 mg/kg | <0.01 mg/kg | Pass      |
              """
            "isPerfectTable" => true
            "csv" => """
              "Analysis","Limit","Result","Pass/Fail"\n
              "Cyprodinil","<0.01 mg/kg","<0.01 mg/kg","Pass"\n
              "Dichlorvos","<0.05 mg/kg","<0.05 mg/kg","Pass"\n
              "Dimethoate","<0.01 mg/kg","<0.01 mg/kg","Pass"\n
              "Fluopyram","<0.01 mg/kg","<0.01 mg/kg","Pass"
              """
          ]
          [
            "type" => "text"
            "value" => """
              * This analysis or component is not ISO accredited.\n
              \n
              Printed: 25-Apr-2025 6:32 pm  \n
              Page 3 of 9
              """
            "md" => """
              * This analysis or component is not ISO accredited.\n
              \n
              Printed: 25-Apr-2025 6:32 pm  \n
              Page 3 of 9
              """
          ]
        ]
        "status" => "OK"
        "originalOrientationAngle" => 0
        "links" => []
        "triggeredAutoMode" => false
        "parsingMode" => "multimodal-openai-gpt4o"
        "structuredData" => null
        "noStructuredContent" => false
        "noTextContent" => false
      ]
    ]
    "job_metadata" => [
      "credits_used" => 0
      "job_credits_usage" => 0
      "job_pages" => 1
      "job_auto_mode_triggered_pages" => 0
      "job_is_cache_hit" => false
    ]
  ]
  -labName: "Charlotte's Web, Inc."
  -sampleName: "CW 60mg Organic Orange Blossom 30mL"
  -sampleMatrix: "product"
  -internalPath: "/home/cbdextract/cbdextract.nw.agency/source/public/lab-reports/LabReportCOAPart3.jpg"
  -productType: "cannabis"
  -aILogs: Doctrine\ORM\PersistentCollection {#964 …}
  -products: Doctrine\ORM\PersistentCollection {#1018 …}
}
data_class
"App\Entity\LabReport"
disabled
false
empty_data
Closure(FormInterface $form) {#1771
  class: "Symfony\Component\Form\Extension\Core\Type\FormType"
  use: {
    $class: "App\Entity\LabReport"
  }
}
entityDto
EasyCorp\Bundle\EasyAdminBundle\Dto\EntityDto {#844
  -isAccessible: true
  -fqcn: "App\Entity\LabReport"
  -metadata: Doctrine\ORM\Mapping\ClassMetadata {#691 …}
  -instance: App\Entity\LabReport {#854
    -id: 843
    -name: "Lab Report COA Part 3"
    -externalUrl: "https://purecbdnc.com/cdn/shop/files/Charlotte_sWeb_CBDFullSpectrumTincture60mg-30ml_OrangeCOA2025-04-253_98c7426c-419c-45dc-b5c7-3f7c31fba816.jpg?v=1747428923"
    -source: null
    -type: "jpg"
    -project: Proxies\__CG__\App\Entity\Project {#903
      -id: 104
      -name: "pure cbd"
      -url: "https://purecbdnc.com/"
      -prompt: null
      -chatJson: null
      -externalLabReportsUrl: null
      -spiderSourceUrls: Doctrine\ORM\PersistentCollection {#1521 …}
      -productMatchingUrl: null
      -productUrls: Doctrine\ORM\PersistentCollection {#1556 …}
      -labReportSources: Doctrine\ORM\PersistentCollection {#1527 …}
      -labReports: Doctrine\ORM\PersistentCollection {#1558 …}
      -createdAt: DateTime @1744068184 {#1495
        date: 2025-04-07 23:23:04.0 UTC (+00:00)
      }
      -updatedAt: DateTime @1768286193 {#1485
        date: 2026-01-13 06:36:33.0 UTC (+00:00)
      }
      -spiderSourceMatchingUrls: null
      -state: "ready_to_hunt"
      -products: Doctrine\ORM\PersistentCollection {#1560 …}
      -productPages: Doctrine\ORM\PersistentCollection {#1581 …}
      -websiteFramework: "shopify"
      -debugData: "{"error":{"message":"DOMDocument::loadHTML(): Argument #1 ($source) must not be empty","trace":"#0 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Helper\/FrameworkHelper.php(346): DOMDocument->loadHTML()\n#1 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Crawler\/ProductHuntCrawlerObserver.php(134): App\\Helper\\FrameworkHelper->is_shopify_product_page()\n#2 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/CrawlObservers\/CrawlObserverCollection.php(28): App\\Crawler\\ProductHuntCrawlerObserver->crawled()\n#3 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Handlers\/CrawlRequestFulfilled.php(104): Spatie\\Crawler\\CrawlObservers\\CrawlObserverCollection->crawled()\n#4 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Handlers\/CrawlRequestFulfilled.php(70): Spatie\\Crawler\\Handlers\\CrawlRequestFulfilled->handleCrawled()\n#5 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/EachPromise.php(173): Spatie\\Crawler\\Handlers\\CrawlRequestFulfilled->__invoke()\n#6 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(209): GuzzleHttp\\Promise\\EachPromise->GuzzleHttp\\Promise\\{closure}()\n#7 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(158): GuzzleHttp\\Promise\\Promise::callHandler()\n#8 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/TaskQueue.php(52): GuzzleHttp\\Promise\\Promise::GuzzleHttp\\Promise\\{closure}()\n#9 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/guzzle\/src\/Handler\/CurlMultiHandler.php(167): GuzzleHttp\\Promise\\TaskQueue->run()\n#10 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/guzzle\/src\/Handler\/CurlMultiHandler.php(206): GuzzleHttp\\Handler\\CurlMultiHandler->tick()\n#11 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(251): GuzzleHttp\\Handler\\CurlMultiHandler->execute()\n#12 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(227): GuzzleHttp\\Promise\\Promise->invokeWaitFn()\n#13 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(272): GuzzleHttp\\Promise\\Promise->waitIfPending()\n#14 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(229): GuzzleHttp\\Promise\\Promise->invokeWaitList()\n#15 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(69): GuzzleHttp\\Promise\\Promise->waitIfPending()\n#16 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/EachPromise.php(109): GuzzleHttp\\Promise\\Promise->wait()\n#17 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(251): GuzzleHttp\\Promise\\EachPromise->GuzzleHttp\\Promise\\{closure}()\n#18 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(227): GuzzleHttp\\Promise\\Promise->invokeWaitFn()\n#19 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(69): GuzzleHttp\\Promise\\Promise->waitIfPending()\n#20 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Crawler.php(494): GuzzleHttp\\Promise\\Promise->wait()\n#21 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Crawler.php(443): Spatie\\Crawler\\Crawler->startCrawlingQueue()\n#22 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Helper\/CrawlerHelper.php(181): Spatie\\Crawler\\Crawler->startCrawling()\n#23 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Helper\/ProjectHelper.php(250): App\\Helper\\CrawlerHelper->crawlProjectProducts()\n#24 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Command\/Cron\/ProductHuntCommand.php(60): App\\Helper\\ProjectHelper->huntProducts()\n#25 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Command\/Command.php(279): App\\Command\\Cron\\ProductHuntCommand->execute()\n#26 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Application.php(1047): Symfony\\Component\\Console\\Command\\Command->run()\n#27 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/framework-bundle\/Console\/Application.php(123): Symfony\\Component\\Console\\Application->doRunCommand()\n#28 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Application.php(316): Symfony\\Bundle\\FrameworkBundle\\Console\\Application->doRunCommand()\n#29 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/framework-bundle\/Console\/Application.php(77): Symfony\\Component\\Console\\Application->doRun()\n#30 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Application.php(167): Symfony\\Bundle\\FrameworkBundle\\Console\\Application->doRun()\n#31 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/runtime\/Runner\/Symfony\/ConsoleApplicationRunner.php(49): Symfony\\Component\\Console\\Application->run()\n#32 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/autoload_runtime.php(29): Symfony\\Component\\Runtime\\Runner\\Symfony\\ConsoleApplicationRunner->run()\n#33 \/home\/cbdextract\/cbdextract.nw.agency\/source\/bin\/console(15): require_once('...')\n#34 {main}"}}"
      -labReportFails: Doctrine\ORM\PersistentCollection {#1609 …}
      -productExcludePaths: null
      -aILogs: Doctrine\ORM\PersistentCollection {#1586 …}
      -user: null
      -aIBatchJobs: Doctrine\ORM\PersistentCollection {#1650 …}
      -lazyObjectState: Symfony\Component\VarExporter\Internal\LazyObjectState {#906 …}
    }
    -labReportSource: null
    -createdAt: DateTime @1748152551 {#848
      date: 2025-05-25 05:55:51.0 UTC (+00:00)
    }
    -updatedAt: DateTime @1748138197 {#845
      date: 2025-05-25 01:56:37.0 UTC (+00:00)
    }
    -category: null
    -state: "processed"
    -expiryDate: "2027-04-16"
    -extractionDate: "2025-04-25"
    -thcaPercentage: "0"
    -totalThcPercentage: "0"
    -deltaNinePercentage: "0"
    -deltaNineWithThcaCombined: "0"
    -comments: null
    -internalUrl: "https://cbdextract.nw.agency/lab-reports/LabReportCOAPart3.jpg"
    -markdownContent: ""# Certificate of Analysis\n\n**Charlotte's Web, Inc.**  \n700 Tech Court  \nLouisville Colorado 80027 United States\n\n**Report Number:** 4901775-0  \n**Report Date:** 25-Apr-2025  \n**Report Status:** Final\n\n----\n\n## Sample Information\n\n| Sample Name:         | A01417 - Composite                  | Eurofins Sample:   | 15217285                         |\n| -------------------- | ----------------------------------- | ------------------ | -------------------------------- |\n| Project ID:          | CHARLO\\_WEB-20250416-0138           | Receipt Date:      | 21-Apr-2025                      |\n| PO Number:           | QC 325                              | Receipt Condition: | Ambient temperature              |\n| Sample Serving Size: | 0.5 mL                              | Login Date:        | 16-Apr-2025                      |\n| Description:         | CW 60mg Organic Orange Blossom 30mL | Date Started:      | 21-Apr-2025                      |\n|                      | 60                                  | Sampled:           | Sample results apply as received |\n| MFG:                 | April 16 2025                       | Number Composited: | 3                                |\n| EXP:                 | April 16 2027                       | Online Order:      | SO-2025-E03804                   |\n\n\n----\n\n## Analysis\n\n### Residual Solvent Analysis in Cannabis and Hemp Matrices\n\nThe ECC limit of 1 ppm for Ethylene Oxide is not achieved by this method. Reporting limit of 25 ppm is the limit recommended by the AOAC CASP. *\n\n#### Category I Residual Solvent or Processing Chemical\n\n| Analysis                       | Limit     | Result | Pass\/Fail |\n| ------------------------------ | --------- | ------ | --------- |\n| Acetone                        | <180 ppm  |        |           |\n| Acetonitrile                   | <180 ppm  |        |           |\n| n-Butane                       | <500 ppm  |        |           |\n| Ethanol                        | <1000 ppm |        |           |\n| Ethyl Acetate                  | <1000 ppm |        |           |\n| Ethyl Ether                    | <1000 ppm |        |           |\n| Heptane                        | <500 ppm  |        |           |\n| n-Hexane                       | <30.0 ppm |        |           |\n| Methanol                       | <1000 ppm |        |           |\n| n-Pentane                      | <250 ppm  |        |           |\n| Propane                        | <1000 ppm |        |           |\n| Isopropyl Alcohol              | <1000 ppm |        |           |\n| Toluene                        | <85.0 ppm |        |           |\n| Xylenes (ortho-, meta-, para-) | <160 ppm  |        |           |\n\n\nThe Pass\/Fail reporting designations are relative to the limits set forth by the Bureau of Cannabis Control Title 16, Division 42. *\n\n### Multi-Residue Analysis for hemp products\n\n| Analysis   | Limit       | Result      | Pass\/Fail |\n| ---------- | ----------- | ----------- | --------- |\n| Cyprodinil | <0.01 mg\/kg | <0.01 mg\/kg | Pass      |\n| Dichlorvos | <0.05 mg\/kg | <0.05 mg\/kg | Pass      |\n| Dimethoate | <0.01 mg\/kg | <0.01 mg\/kg | Pass      |\n| Fluopyram  | <0.01 mg\/kg | <0.01 mg\/kg | Pass      |\n\n\n* This analysis or component is not ISO accredited.\n\nPrinted: 25-Apr-2025 6:32 pm  \nPage 3 of 9""
    -debugData: null
    -jsonContent: [
      "pages" => [
        [
          "page" => 1
          "md" => """
            # Certificate of Analysis\n
            \n
            **Charlotte's Web, Inc.**  \n
            700 Tech Court  \n
            Louisville Colorado 80027 United States\n
            \n
            **Report Number:** 4901775-0  \n
            **Report Date:** 25-Apr-2025  \n
            **Report Status:** Final\n
            \n
            ----\n
            \n
            ## Sample Information\n
            \n
            | Sample Name:         | A01417 - Composite                  | Eurofins Sample:   | 15217285                         |\n
            | -------------------- | ----------------------------------- | ------------------ | -------------------------------- |\n
            | Project ID:          | CHARLO\_WEB-20250416-0138           | Receipt Date:      | 21-Apr-2025                      |\n
            | PO Number:           | QC 325                              | Receipt Condition: | Ambient temperature              |\n
            | Sample Serving Size: | 0.5 mL                              | Login Date:        | 16-Apr-2025                      |\n
            | Description:         | CW 60mg Organic Orange Blossom 30mL | Date Started:      | 21-Apr-2025                      |\n
            |                      | 60                                  | Sampled:           | Sample results apply as received |\n
            | MFG:                 | April 16 2025                       | Number Composited: | 3                                |\n
            | EXP:                 | April 16 2027                       | Online Order:      | SO-2025-E03804                   |\n
            \n
            \n
            ----\n
            \n
            ## Analysis\n
            \n
            ### Residual Solvent Analysis in Cannabis and Hemp Matrices\n
            \n
            The ECC limit of 1 ppm for Ethylene Oxide is not achieved by this method. Reporting limit of 25 ppm is the limit recommended by the AOAC CASP. *\n
            \n
            #### Category I Residual Solvent or Processing Chemical\n
            \n
            | Analysis                       | Limit     | Result | Pass/Fail |\n
            | ------------------------------ | --------- | ------ | --------- |\n
            | Acetone                        | <180 ppm  |        |           |\n
            | Acetonitrile                   | <180 ppm  |        |           |\n
            | n-Butane                       | <500 ppm  |        |           |\n
            | Ethanol                        | <1000 ppm |        |           |\n
            | Ethyl Acetate                  | <1000 ppm |        |           |\n
            | Ethyl Ether                    | <1000 ppm |        |           |\n
            | Heptane                        | <500 ppm  |        |           |\n
            | n-Hexane                       | <30.0 ppm |        |           |\n
            | Methanol                       | <1000 ppm |        |           |\n
            | n-Pentane                      | <250 ppm  |        |           |\n
            | Propane                        | <1000 ppm |        |           |\n
            | Isopropyl Alcohol              | <1000 ppm |        |           |\n
            | Toluene                        | <85.0 ppm |        |           |\n
            | Xylenes (ortho-, meta-, para-) | <160 ppm  |        |           |\n
            \n
            \n
            The Pass/Fail reporting designations are relative to the limits set forth by the Bureau of Cannabis Control Title 16, Division 42. *\n
            \n
            ### Multi-Residue Analysis for hemp products\n
            \n
            | Analysis   | Limit       | Result      | Pass/Fail |\n
            | ---------- | ----------- | ----------- | --------- |\n
            | Cyprodinil | <0.01 mg/kg | <0.01 mg/kg | Pass      |\n
            | Dichlorvos | <0.05 mg/kg | <0.05 mg/kg | Pass      |\n
            | Dimethoate | <0.01 mg/kg | <0.01 mg/kg | Pass      |\n
            | Fluopyram  | <0.01 mg/kg | <0.01 mg/kg | Pass      |\n
            \n
            \n
            * This analysis or component is not ISO accredited.\n
            \n
            Printed: 25-Apr-2025 6:32 pm  \n
            Page 3 of 9
            """
          "images" => [
            [
              "name" => "page_1.jpg"
              "height" => 0
              "width" => 0
              "x" => 0
              "y" => 0
              "type" => "full_page_screenshot"
            ]
          ]
          "charts" => []
          "items" => [
            [
              "type" => "heading"
              "lvl" => 1
              "value" => "Certificate of Analysis"
              "md" => "# Certificate of Analysis"
            ]
            [
              "type" => "text"
              "value" => """
                **Charlotte's Web, Inc.**  \n
                700 Tech Court  \n
                Louisville Colorado 80027 United States\n
                \n
                **Report Number:** 4901775-0  \n
                **Report Date:** 25-Apr-2025  \n
                **Report Status:** Final\n
                \n
                ----
                """
              "md" => """
                **Charlotte's Web, Inc.**  \n
                700 Tech Court  \n
                Louisville Colorado 80027 United States\n
                \n
                **Report Number:** 4901775-0  \n
                **Report Date:** 25-Apr-2025  \n
                **Report Status:** Final\n
                \n
                ----
                """
            ]
            [
              "type" => "heading"
              "lvl" => 2
              "value" => "Sample Information"
              "md" => "## Sample Information"
            ]
            [
              "type" => "table"
              "rows" => [
                [
                  "Sample Name:"
                  "A01417 - Composite"
                  "Eurofins Sample:"
                  "15217285"
                ]
                [
                  "Project ID:"
                  "CHARLO_WEB-20250416-0138"
                  "Receipt Date:"
                  "21-Apr-2025"
                ]
                [
                  "PO Number:"
                  "QC 325"
                  "Receipt Condition:"
                  "Ambient temperature"
                ]
                [
                  "Sample Serving Size:"
                  "0.5 mL"
                  "Login Date:"
                  "16-Apr-2025"
                ]
                [
                  "Description:"
                  "CW 60mg Organic Orange Blossom 30mL"
                  "Date Started:"
                  "21-Apr-2025"
                ]
                [
                  ""
                  "60"
                  "Sampled:"
                  "Sample results apply as received"
                ]
                [
                  "MFG:"
                  "April 16 2025"
                  "Number Composited:"
                  "3"
                ]
                [
                  "EXP:"
                  "April 16 2027"
                  "Online Order:"
                  "SO-2025-E03804"
                ]
              ]
              "md" => """
                | Sample Name:         | A01417 - Composite                  | Eurofins Sample:   | 15217285                         |\n
                | -------------------- | ----------------------------------- | ------------------ | -------------------------------- |\n
                | Project ID:          | CHARLO\_WEB-20250416-0138           | Receipt Date:      | 21-Apr-2025                      |\n
                | PO Number:           | QC 325                              | Receipt Condition: | Ambient temperature              |\n
                | Sample Serving Size: | 0.5 mL                              | Login Date:        | 16-Apr-2025                      |\n
                | Description:         | CW 60mg Organic Orange Blossom 30mL | Date Started:      | 21-Apr-2025                      |\n
                |                      | 60                                  | Sampled:           | Sample results apply as received |\n
                | MFG:                 | April 16 2025                       | Number Composited: | 3                                |\n
                | EXP:                 | April 16 2027                       | Online Order:      | SO-2025-E03804                   |
                """
              "isPerfectTable" => true
              "csv" => """
                "Sample Name:","A01417 - Composite","Eurofins Sample:","15217285"\n
                "Project ID:","CHARLO_WEB-20250416-0138","Receipt Date:","21-Apr-2025"\n
                "PO Number:","QC 325","Receipt Condition:","Ambient temperature"\n
                "Sample Serving Size:","0.5 mL","Login Date:","16-Apr-2025"\n
                "Description:","CW 60mg Organic Orange Blossom 30mL","Date Started:","21-Apr-2025"\n
                "","60","Sampled:","Sample results apply as received"\n
                "MFG:","April 16 2025","Number Composited:","3"\n
                "EXP:","April 16 2027","Online Order:","SO-2025-E03804"
                """
            ]
            [
              "type" => "text"
              "value" => "----"
              "md" => "----"
            ]
            [
              "type" => "heading"
              "lvl" => 2
              "value" => "Analysis"
              "md" => "## Analysis"
            ]
            [
              "type" => "heading"
              "lvl" => 3
              "value" => "Residual Solvent Analysis in Cannabis and Hemp Matrices"
              "md" => "### Residual Solvent Analysis in Cannabis and Hemp Matrices"
            ]
            [
              "type" => "text"
              "value" => "The ECC limit of 1 ppm for Ethylene Oxide is not achieved by this method. Reporting limit of 25 ppm is the limit recommended by the AOAC CASP. *"
              "md" => "The ECC limit of 1 ppm for Ethylene Oxide is not achieved by this method. Reporting limit of 25 ppm is the limit recommended by the AOAC CASP. *"
            ]
            [
              "type" => "heading"
              "lvl" => 4
              "value" => "Category I Residual Solvent or Processing Chemical"
              "md" => "#### Category I Residual Solvent or Processing Chemical"
            ]
            [
              "type" => "table"
              "rows" => [
                [
                  "Analysis"
                  "Limit"
                  "Result"
                  "Pass/Fail"
                ]
                [
                  "Acetone"
                  "<180 ppm"
                  ""
                  ""
                ]
                [
                  "Acetonitrile"
                  "<180 ppm"
                  ""
                  ""
                ]
                [
                  "n-Butane"
                  "<500 ppm"
                  ""
                  ""
                ]
                [
                  "Ethanol"
                  "<1000 ppm"
                  ""
                  ""
                ]
                [
                  "Ethyl Acetate"
                  "<1000 ppm"
                  ""
                  ""
                ]
                [
                  "Ethyl Ether"
                  "<1000 ppm"
                  ""
                  ""
                ]
                [
                  "Heptane"
                  "<500 ppm"
                  ""
                  ""
                ]
                [
                  "n-Hexane"
                  "<30.0 ppm"
                  ""
                  ""
                ]
                [
                  "Methanol"
                  "<1000 ppm"
                  ""
                  ""
                ]
                [
                  "n-Pentane"
                  "<250 ppm"
                  ""
                  ""
                ]
                [
                  "Propane"
                  "<1000 ppm"
                  ""
                  ""
                ]
                [
                  "Isopropyl Alcohol"
                  "<1000 ppm"
                  ""
                  ""
                ]
                [
                  "Toluene"
                  "<85.0 ppm"
                  ""
                  ""
                ]
                [
                  "Xylenes (ortho-, meta-, para-)"
                  "<160 ppm"
                  ""
                  ""
                ]
              ]
              "md" => """
                | Analysis                       | Limit     | Result | Pass/Fail |\n
                | ------------------------------ | --------- | ------ | --------- |\n
                | Acetone                        | <180 ppm  |        |           |\n
                | Acetonitrile                   | <180 ppm  |        |           |\n
                | n-Butane                       | <500 ppm  |        |           |\n
                | Ethanol                        | <1000 ppm |        |           |\n
                | Ethyl Acetate                  | <1000 ppm |        |           |\n
                | Ethyl Ether                    | <1000 ppm |        |           |\n
                | Heptane                        | <500 ppm  |        |           |\n
                | n-Hexane                       | <30.0 ppm |        |           |\n
                | Methanol                       | <1000 ppm |        |           |\n
                | n-Pentane                      | <250 ppm  |        |           |\n
                | Propane                        | <1000 ppm |        |           |\n
                | Isopropyl Alcohol              | <1000 ppm |        |           |\n
                | Toluene                        | <85.0 ppm |        |           |\n
                | Xylenes (ortho-, meta-, para-) | <160 ppm  |        |           |
                """
              "isPerfectTable" => true
              "csv" => """
                "Analysis","Limit","Result","Pass/Fail"\n
                "Acetone","<180 ppm","",""\n
                "Acetonitrile","<180 ppm","",""\n
                "n-Butane","<500 ppm","",""\n
                "Ethanol","<1000 ppm","",""\n
                "Ethyl Acetate","<1000 ppm","",""\n
                "Ethyl Ether","<1000 ppm","",""\n
                "Heptane","<500 ppm","",""\n
                "n-Hexane","<30.0 ppm","",""\n
                "Methanol","<1000 ppm","",""\n
                "n-Pentane","<250 ppm","",""\n
                "Propane","<1000 ppm","",""\n
                "Isopropyl Alcohol","<1000 ppm","",""\n
                "Toluene","<85.0 ppm","",""\n
                "Xylenes (ortho-, meta-, para-)","<160 ppm","",""
                """
            ]
            [
              "type" => "text"
              "value" => "The Pass/Fail reporting designations are relative to the limits set forth by the Bureau of Cannabis Control Title 16, Division 42. *"
              "md" => "The Pass/Fail reporting designations are relative to the limits set forth by the Bureau of Cannabis Control Title 16, Division 42. *"
            ]
            [
              "type" => "heading"
              "lvl" => 3
              "value" => "Multi-Residue Analysis for hemp products"
              "md" => "### Multi-Residue Analysis for hemp products"
            ]
            [
              "type" => "table"
              "rows" => [
                [
                  "Analysis"
                  "Limit"
                  "Result"
                  "Pass/Fail"
                ]
                [
                  "Cyprodinil"
                  "<0.01 mg/kg"
                  "<0.01 mg/kg"
                  "Pass"
                ]
                [
                  "Dichlorvos"
                  "<0.05 mg/kg"
                  "<0.05 mg/kg"
                  "Pass"
                ]
                [
                  "Dimethoate"
                  "<0.01 mg/kg"
                  "<0.01 mg/kg"
                  "Pass"
                ]
                [
                  "Fluopyram"
                  "<0.01 mg/kg"
                  "<0.01 mg/kg"
                  "Pass"
                ]
              ]
              "md" => """
                | Analysis   | Limit       | Result      | Pass/Fail |\n
                | ---------- | ----------- | ----------- | --------- |\n
                | Cyprodinil | <0.01 mg/kg | <0.01 mg/kg | Pass      |\n
                | Dichlorvos | <0.05 mg/kg | <0.05 mg/kg | Pass      |\n
                | Dimethoate | <0.01 mg/kg | <0.01 mg/kg | Pass      |\n
                | Fluopyram  | <0.01 mg/kg | <0.01 mg/kg | Pass      |
                """
              "isPerfectTable" => true
              "csv" => """
                "Analysis","Limit","Result","Pass/Fail"\n
                "Cyprodinil","<0.01 mg/kg","<0.01 mg/kg","Pass"\n
                "Dichlorvos","<0.05 mg/kg","<0.05 mg/kg","Pass"\n
                "Dimethoate","<0.01 mg/kg","<0.01 mg/kg","Pass"\n
                "Fluopyram","<0.01 mg/kg","<0.01 mg/kg","Pass"
                """
            ]
            [
              "type" => "text"
              "value" => """
                * This analysis or component is not ISO accredited.\n
                \n
                Printed: 25-Apr-2025 6:32 pm  \n
                Page 3 of 9
                """
              "md" => """
                * This analysis or component is not ISO accredited.\n
                \n
                Printed: 25-Apr-2025 6:32 pm  \n
                Page 3 of 9
                """
            ]
          ]
          "status" => "OK"
          "originalOrientationAngle" => 0
          "links" => []
          "triggeredAutoMode" => false
          "parsingMode" => "multimodal-openai-gpt4o"
          "structuredData" => null
          "noStructuredContent" => false
          "noTextContent" => false
        ]
      ]
      "job_metadata" => [
        "credits_used" => 0
        "job_credits_usage" => 0
        "job_pages" => 1
        "job_auto_mode_triggered_pages" => 0
        "job_is_cache_hit" => false
      ]
    ]
    -labName: "Charlotte's Web, Inc."
    -sampleName: "CW 60mg Organic Orange Blossom 30mL"
    -sampleMatrix: "product"
    -internalPath: "/home/cbdextract/cbdextract.nw.agency/source/public/lab-reports/LabReportCOAPart3.jpg"
    -productType: "cannabis"
    -aILogs: Doctrine\ORM\PersistentCollection {#964 …}
    -products: Doctrine\ORM\PersistentCollection {#1018 …}
  }
  -primaryKeyName: "id"
  -primaryKeyValue: 843
  -permission: null
  -fields: EasyCorp\Bundle\EasyAdminBundle\Collection\FieldCollection {#1343 …}
  -actions: EasyCorp\Bundle\EasyAdminBundle\Collection\ActionCollection {#1719 …}
}
error_bubbling
true
error_mapping
[]
extra_fields_message
"This form should not contain extra fields."
form_attr
false
getter
null
help
null
help_attr
[]
help_html
false
help_translation_parameters
[]
inherit_data
false
invalid_message
"This value is not valid."
invalid_message_parameters
[]
is_empty_callback
null
label
null
label_attr
[]
label_format
null
label_html
false
label_translation_parameters
[]
mapped
true
method
"POST"
post_max_size_message
"The uploaded file was too large. Please try to upload a smaller file."
priority
0
property_path
null
required
true
row_attr
[]
setter
null
translation_domain
"messages"
trim
true
upload_max_size_message
Closure() {#1773
  class: "Symfony\Component\Form\Extension\Validator\Type\UploadValidatorExtension"
  use: {
    $translator: Symfony\Component\Translation\DataCollectorTranslator {#65 …}
    $message: Closure() {#1770 …}
    $translationDomain: "validators"
  }
}
validation_groups
null

View Vars

Variable Value
action
""
attr
[
  "class" => "ea-edit-form"
  "id" => "edit-LabReport-form"
]
attr_translation_parameters
[]
block_prefixes
[
  "form"
  "ea_crud"
  "_LabReport"
]
cache_key
"_LabReport_ea_crud"
compound
true
data
App\Entity\LabReport {#854
  -id: 843
  -name: "Lab Report COA Part 3"
  -externalUrl: "https://purecbdnc.com/cdn/shop/files/Charlotte_sWeb_CBDFullSpectrumTincture60mg-30ml_OrangeCOA2025-04-253_98c7426c-419c-45dc-b5c7-3f7c31fba816.jpg?v=1747428923"
  -source: null
  -type: "jpg"
  -project: Proxies\__CG__\App\Entity\Project {#903
    -id: 104
    -name: "pure cbd"
    -url: "https://purecbdnc.com/"
    -prompt: null
    -chatJson: null
    -externalLabReportsUrl: null
    -spiderSourceUrls: Doctrine\ORM\PersistentCollection {#1521 …}
    -productMatchingUrl: null
    -productUrls: Doctrine\ORM\PersistentCollection {#1556 …}
    -labReportSources: Doctrine\ORM\PersistentCollection {#1527 …}
    -labReports: Doctrine\ORM\PersistentCollection {#1558 …}
    -createdAt: DateTime @1744068184 {#1495
      date: 2025-04-07 23:23:04.0 UTC (+00:00)
    }
    -updatedAt: DateTime @1768286193 {#1485
      date: 2026-01-13 06:36:33.0 UTC (+00:00)
    }
    -spiderSourceMatchingUrls: null
    -state: "ready_to_hunt"
    -products: Doctrine\ORM\PersistentCollection {#1560 …}
    -productPages: Doctrine\ORM\PersistentCollection {#1581 …}
    -websiteFramework: "shopify"
    -debugData: "{"error":{"message":"DOMDocument::loadHTML(): Argument #1 ($source) must not be empty","trace":"#0 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Helper\/FrameworkHelper.php(346): DOMDocument->loadHTML()\n#1 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Crawler\/ProductHuntCrawlerObserver.php(134): App\\Helper\\FrameworkHelper->is_shopify_product_page()\n#2 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/CrawlObservers\/CrawlObserverCollection.php(28): App\\Crawler\\ProductHuntCrawlerObserver->crawled()\n#3 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Handlers\/CrawlRequestFulfilled.php(104): Spatie\\Crawler\\CrawlObservers\\CrawlObserverCollection->crawled()\n#4 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Handlers\/CrawlRequestFulfilled.php(70): Spatie\\Crawler\\Handlers\\CrawlRequestFulfilled->handleCrawled()\n#5 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/EachPromise.php(173): Spatie\\Crawler\\Handlers\\CrawlRequestFulfilled->__invoke()\n#6 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(209): GuzzleHttp\\Promise\\EachPromise->GuzzleHttp\\Promise\\{closure}()\n#7 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(158): GuzzleHttp\\Promise\\Promise::callHandler()\n#8 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/TaskQueue.php(52): GuzzleHttp\\Promise\\Promise::GuzzleHttp\\Promise\\{closure}()\n#9 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/guzzle\/src\/Handler\/CurlMultiHandler.php(167): GuzzleHttp\\Promise\\TaskQueue->run()\n#10 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/guzzle\/src\/Handler\/CurlMultiHandler.php(206): GuzzleHttp\\Handler\\CurlMultiHandler->tick()\n#11 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(251): GuzzleHttp\\Handler\\CurlMultiHandler->execute()\n#12 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(227): GuzzleHttp\\Promise\\Promise->invokeWaitFn()\n#13 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(272): GuzzleHttp\\Promise\\Promise->waitIfPending()\n#14 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(229): GuzzleHttp\\Promise\\Promise->invokeWaitList()\n#15 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(69): GuzzleHttp\\Promise\\Promise->waitIfPending()\n#16 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/EachPromise.php(109): GuzzleHttp\\Promise\\Promise->wait()\n#17 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(251): GuzzleHttp\\Promise\\EachPromise->GuzzleHttp\\Promise\\{closure}()\n#18 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(227): GuzzleHttp\\Promise\\Promise->invokeWaitFn()\n#19 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(69): GuzzleHttp\\Promise\\Promise->waitIfPending()\n#20 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Crawler.php(494): GuzzleHttp\\Promise\\Promise->wait()\n#21 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Crawler.php(443): Spatie\\Crawler\\Crawler->startCrawlingQueue()\n#22 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Helper\/CrawlerHelper.php(181): Spatie\\Crawler\\Crawler->startCrawling()\n#23 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Helper\/ProjectHelper.php(250): App\\Helper\\CrawlerHelper->crawlProjectProducts()\n#24 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Command\/Cron\/ProductHuntCommand.php(60): App\\Helper\\ProjectHelper->huntProducts()\n#25 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Command\/Command.php(279): App\\Command\\Cron\\ProductHuntCommand->execute()\n#26 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Application.php(1047): Symfony\\Component\\Console\\Command\\Command->run()\n#27 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/framework-bundle\/Console\/Application.php(123): Symfony\\Component\\Console\\Application->doRunCommand()\n#28 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Application.php(316): Symfony\\Bundle\\FrameworkBundle\\Console\\Application->doRunCommand()\n#29 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/framework-bundle\/Console\/Application.php(77): Symfony\\Component\\Console\\Application->doRun()\n#30 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Application.php(167): Symfony\\Bundle\\FrameworkBundle\\Console\\Application->doRun()\n#31 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/runtime\/Runner\/Symfony\/ConsoleApplicationRunner.php(49): Symfony\\Component\\Console\\Application->run()\n#32 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/autoload_runtime.php(29): Symfony\\Component\\Runtime\\Runner\\Symfony\\ConsoleApplicationRunner->run()\n#33 \/home\/cbdextract\/cbdextract.nw.agency\/source\/bin\/console(15): require_once('...')\n#34 {main}"}}"
    -labReportFails: Doctrine\ORM\PersistentCollection {#1609 …}
    -productExcludePaths: null
    -aILogs: Doctrine\ORM\PersistentCollection {#1586 …}
    -user: null
    -aIBatchJobs: Doctrine\ORM\PersistentCollection {#1650 …}
    -lazyObjectState: Symfony\Component\VarExporter\Internal\LazyObjectState {#906 …}
  }
  -labReportSource: null
  -createdAt: DateTime @1748152551 {#848
    date: 2025-05-25 05:55:51.0 UTC (+00:00)
  }
  -updatedAt: DateTime @1748138197 {#845
    date: 2025-05-25 01:56:37.0 UTC (+00:00)
  }
  -category: null
  -state: "processed"
  -expiryDate: "2027-04-16"
  -extractionDate: "2025-04-25"
  -thcaPercentage: "0"
  -totalThcPercentage: "0"
  -deltaNinePercentage: "0"
  -deltaNineWithThcaCombined: "0"
  -comments: null
  -internalUrl: "https://cbdextract.nw.agency/lab-reports/LabReportCOAPart3.jpg"
  -markdownContent: ""# Certificate of Analysis\n\n**Charlotte's Web, Inc.**  \n700 Tech Court  \nLouisville Colorado 80027 United States\n\n**Report Number:** 4901775-0  \n**Report Date:** 25-Apr-2025  \n**Report Status:** Final\n\n----\n\n## Sample Information\n\n| Sample Name:         | A01417 - Composite                  | Eurofins Sample:   | 15217285                         |\n| -------------------- | ----------------------------------- | ------------------ | -------------------------------- |\n| Project ID:          | CHARLO\\_WEB-20250416-0138           | Receipt Date:      | 21-Apr-2025                      |\n| PO Number:           | QC 325                              | Receipt Condition: | Ambient temperature              |\n| Sample Serving Size: | 0.5 mL                              | Login Date:        | 16-Apr-2025                      |\n| Description:         | CW 60mg Organic Orange Blossom 30mL | Date Started:      | 21-Apr-2025                      |\n|                      | 60                                  | Sampled:           | Sample results apply as received |\n| MFG:                 | April 16 2025                       | Number Composited: | 3                                |\n| EXP:                 | April 16 2027                       | Online Order:      | SO-2025-E03804                   |\n\n\n----\n\n## Analysis\n\n### Residual Solvent Analysis in Cannabis and Hemp Matrices\n\nThe ECC limit of 1 ppm for Ethylene Oxide is not achieved by this method. Reporting limit of 25 ppm is the limit recommended by the AOAC CASP. *\n\n#### Category I Residual Solvent or Processing Chemical\n\n| Analysis                       | Limit     | Result | Pass\/Fail |\n| ------------------------------ | --------- | ------ | --------- |\n| Acetone                        | <180 ppm  |        |           |\n| Acetonitrile                   | <180 ppm  |        |           |\n| n-Butane                       | <500 ppm  |        |           |\n| Ethanol                        | <1000 ppm |        |           |\n| Ethyl Acetate                  | <1000 ppm |        |           |\n| Ethyl Ether                    | <1000 ppm |        |           |\n| Heptane                        | <500 ppm  |        |           |\n| n-Hexane                       | <30.0 ppm |        |           |\n| Methanol                       | <1000 ppm |        |           |\n| n-Pentane                      | <250 ppm  |        |           |\n| Propane                        | <1000 ppm |        |           |\n| Isopropyl Alcohol              | <1000 ppm |        |           |\n| Toluene                        | <85.0 ppm |        |           |\n| Xylenes (ortho-, meta-, para-) | <160 ppm  |        |           |\n\n\nThe Pass\/Fail reporting designations are relative to the limits set forth by the Bureau of Cannabis Control Title 16, Division 42. *\n\n### Multi-Residue Analysis for hemp products\n\n| Analysis   | Limit       | Result      | Pass\/Fail |\n| ---------- | ----------- | ----------- | --------- |\n| Cyprodinil | <0.01 mg\/kg | <0.01 mg\/kg | Pass      |\n| Dichlorvos | <0.05 mg\/kg | <0.05 mg\/kg | Pass      |\n| Dimethoate | <0.01 mg\/kg | <0.01 mg\/kg | Pass      |\n| Fluopyram  | <0.01 mg\/kg | <0.01 mg\/kg | Pass      |\n\n\n* This analysis or component is not ISO accredited.\n\nPrinted: 25-Apr-2025 6:32 pm  \nPage 3 of 9""
  -debugData: null
  -jsonContent: [
    "pages" => [
      [
        "page" => 1
        "md" => """
          # Certificate of Analysis\n
          \n
          **Charlotte's Web, Inc.**  \n
          700 Tech Court  \n
          Louisville Colorado 80027 United States\n
          \n
          **Report Number:** 4901775-0  \n
          **Report Date:** 25-Apr-2025  \n
          **Report Status:** Final\n
          \n
          ----\n
          \n
          ## Sample Information\n
          \n
          | Sample Name:         | A01417 - Composite                  | Eurofins Sample:   | 15217285                         |\n
          | -------------------- | ----------------------------------- | ------------------ | -------------------------------- |\n
          | Project ID:          | CHARLO\_WEB-20250416-0138           | Receipt Date:      | 21-Apr-2025                      |\n
          | PO Number:           | QC 325                              | Receipt Condition: | Ambient temperature              |\n
          | Sample Serving Size: | 0.5 mL                              | Login Date:        | 16-Apr-2025                      |\n
          | Description:         | CW 60mg Organic Orange Blossom 30mL | Date Started:      | 21-Apr-2025                      |\n
          |                      | 60                                  | Sampled:           | Sample results apply as received |\n
          | MFG:                 | April 16 2025                       | Number Composited: | 3                                |\n
          | EXP:                 | April 16 2027                       | Online Order:      | SO-2025-E03804                   |\n
          \n
          \n
          ----\n
          \n
          ## Analysis\n
          \n
          ### Residual Solvent Analysis in Cannabis and Hemp Matrices\n
          \n
          The ECC limit of 1 ppm for Ethylene Oxide is not achieved by this method. Reporting limit of 25 ppm is the limit recommended by the AOAC CASP. *\n
          \n
          #### Category I Residual Solvent or Processing Chemical\n
          \n
          | Analysis                       | Limit     | Result | Pass/Fail |\n
          | ------------------------------ | --------- | ------ | --------- |\n
          | Acetone                        | <180 ppm  |        |           |\n
          | Acetonitrile                   | <180 ppm  |        |           |\n
          | n-Butane                       | <500 ppm  |        |           |\n
          | Ethanol                        | <1000 ppm |        |           |\n
          | Ethyl Acetate                  | <1000 ppm |        |           |\n
          | Ethyl Ether                    | <1000 ppm |        |           |\n
          | Heptane                        | <500 ppm  |        |           |\n
          | n-Hexane                       | <30.0 ppm |        |           |\n
          | Methanol                       | <1000 ppm |        |           |\n
          | n-Pentane                      | <250 ppm  |        |           |\n
          | Propane                        | <1000 ppm |        |           |\n
          | Isopropyl Alcohol              | <1000 ppm |        |           |\n
          | Toluene                        | <85.0 ppm |        |           |\n
          | Xylenes (ortho-, meta-, para-) | <160 ppm  |        |           |\n
          \n
          \n
          The Pass/Fail reporting designations are relative to the limits set forth by the Bureau of Cannabis Control Title 16, Division 42. *\n
          \n
          ### Multi-Residue Analysis for hemp products\n
          \n
          | Analysis   | Limit       | Result      | Pass/Fail |\n
          | ---------- | ----------- | ----------- | --------- |\n
          | Cyprodinil | <0.01 mg/kg | <0.01 mg/kg | Pass      |\n
          | Dichlorvos | <0.05 mg/kg | <0.05 mg/kg | Pass      |\n
          | Dimethoate | <0.01 mg/kg | <0.01 mg/kg | Pass      |\n
          | Fluopyram  | <0.01 mg/kg | <0.01 mg/kg | Pass      |\n
          \n
          \n
          * This analysis or component is not ISO accredited.\n
          \n
          Printed: 25-Apr-2025 6:32 pm  \n
          Page 3 of 9
          """
        "images" => [
          [
            "name" => "page_1.jpg"
            "height" => 0
            "width" => 0
            "x" => 0
            "y" => 0
            "type" => "full_page_screenshot"
          ]
        ]
        "charts" => []
        "items" => [
          [
            "type" => "heading"
            "lvl" => 1
            "value" => "Certificate of Analysis"
            "md" => "# Certificate of Analysis"
          ]
          [
            "type" => "text"
            "value" => """
              **Charlotte's Web, Inc.**  \n
              700 Tech Court  \n
              Louisville Colorado 80027 United States\n
              \n
              **Report Number:** 4901775-0  \n
              **Report Date:** 25-Apr-2025  \n
              **Report Status:** Final\n
              \n
              ----
              """
            "md" => """
              **Charlotte's Web, Inc.**  \n
              700 Tech Court  \n
              Louisville Colorado 80027 United States\n
              \n
              **Report Number:** 4901775-0  \n
              **Report Date:** 25-Apr-2025  \n
              **Report Status:** Final\n
              \n
              ----
              """
          ]
          [
            "type" => "heading"
            "lvl" => 2
            "value" => "Sample Information"
            "md" => "## Sample Information"
          ]
          [
            "type" => "table"
            "rows" => [
              [
                "Sample Name:"
                "A01417 - Composite"
                "Eurofins Sample:"
                "15217285"
              ]
              [
                "Project ID:"
                "CHARLO_WEB-20250416-0138"
                "Receipt Date:"
                "21-Apr-2025"
              ]
              [
                "PO Number:"
                "QC 325"
                "Receipt Condition:"
                "Ambient temperature"
              ]
              [
                "Sample Serving Size:"
                "0.5 mL"
                "Login Date:"
                "16-Apr-2025"
              ]
              [
                "Description:"
                "CW 60mg Organic Orange Blossom 30mL"
                "Date Started:"
                "21-Apr-2025"
              ]
              [
                ""
                "60"
                "Sampled:"
                "Sample results apply as received"
              ]
              [
                "MFG:"
                "April 16 2025"
                "Number Composited:"
                "3"
              ]
              [
                "EXP:"
                "April 16 2027"
                "Online Order:"
                "SO-2025-E03804"
              ]
            ]
            "md" => """
              | Sample Name:         | A01417 - Composite                  | Eurofins Sample:   | 15217285                         |\n
              | -------------------- | ----------------------------------- | ------------------ | -------------------------------- |\n
              | Project ID:          | CHARLO\_WEB-20250416-0138           | Receipt Date:      | 21-Apr-2025                      |\n
              | PO Number:           | QC 325                              | Receipt Condition: | Ambient temperature              |\n
              | Sample Serving Size: | 0.5 mL                              | Login Date:        | 16-Apr-2025                      |\n
              | Description:         | CW 60mg Organic Orange Blossom 30mL | Date Started:      | 21-Apr-2025                      |\n
              |                      | 60                                  | Sampled:           | Sample results apply as received |\n
              | MFG:                 | April 16 2025                       | Number Composited: | 3                                |\n
              | EXP:                 | April 16 2027                       | Online Order:      | SO-2025-E03804                   |
              """
            "isPerfectTable" => true
            "csv" => """
              "Sample Name:","A01417 - Composite","Eurofins Sample:","15217285"\n
              "Project ID:","CHARLO_WEB-20250416-0138","Receipt Date:","21-Apr-2025"\n
              "PO Number:","QC 325","Receipt Condition:","Ambient temperature"\n
              "Sample Serving Size:","0.5 mL","Login Date:","16-Apr-2025"\n
              "Description:","CW 60mg Organic Orange Blossom 30mL","Date Started:","21-Apr-2025"\n
              "","60","Sampled:","Sample results apply as received"\n
              "MFG:","April 16 2025","Number Composited:","3"\n
              "EXP:","April 16 2027","Online Order:","SO-2025-E03804"
              """
          ]
          [
            "type" => "text"
            "value" => "----"
            "md" => "----"
          ]
          [
            "type" => "heading"
            "lvl" => 2
            "value" => "Analysis"
            "md" => "## Analysis"
          ]
          [
            "type" => "heading"
            "lvl" => 3
            "value" => "Residual Solvent Analysis in Cannabis and Hemp Matrices"
            "md" => "### Residual Solvent Analysis in Cannabis and Hemp Matrices"
          ]
          [
            "type" => "text"
            "value" => "The ECC limit of 1 ppm for Ethylene Oxide is not achieved by this method. Reporting limit of 25 ppm is the limit recommended by the AOAC CASP. *"
            "md" => "The ECC limit of 1 ppm for Ethylene Oxide is not achieved by this method. Reporting limit of 25 ppm is the limit recommended by the AOAC CASP. *"
          ]
          [
            "type" => "heading"
            "lvl" => 4
            "value" => "Category I Residual Solvent or Processing Chemical"
            "md" => "#### Category I Residual Solvent or Processing Chemical"
          ]
          [
            "type" => "table"
            "rows" => [
              [
                "Analysis"
                "Limit"
                "Result"
                "Pass/Fail"
              ]
              [
                "Acetone"
                "<180 ppm"
                ""
                ""
              ]
              [
                "Acetonitrile"
                "<180 ppm"
                ""
                ""
              ]
              [
                "n-Butane"
                "<500 ppm"
                ""
                ""
              ]
              [
                "Ethanol"
                "<1000 ppm"
                ""
                ""
              ]
              [
                "Ethyl Acetate"
                "<1000 ppm"
                ""
                ""
              ]
              [
                "Ethyl Ether"
                "<1000 ppm"
                ""
                ""
              ]
              [
                "Heptane"
                "<500 ppm"
                ""
                ""
              ]
              [
                "n-Hexane"
                "<30.0 ppm"
                ""
                ""
              ]
              [
                "Methanol"
                "<1000 ppm"
                ""
                ""
              ]
              [
                "n-Pentane"
                "<250 ppm"
                ""
                ""
              ]
              [
                "Propane"
                "<1000 ppm"
                ""
                ""
              ]
              [
                "Isopropyl Alcohol"
                "<1000 ppm"
                ""
                ""
              ]
              [
                "Toluene"
                "<85.0 ppm"
                ""
                ""
              ]
              [
                "Xylenes (ortho-, meta-, para-)"
                "<160 ppm"
                ""
                ""
              ]
            ]
            "md" => """
              | Analysis                       | Limit     | Result | Pass/Fail |\n
              | ------------------------------ | --------- | ------ | --------- |\n
              | Acetone                        | <180 ppm  |        |           |\n
              | Acetonitrile                   | <180 ppm  |        |           |\n
              | n-Butane                       | <500 ppm  |        |           |\n
              | Ethanol                        | <1000 ppm |        |           |\n
              | Ethyl Acetate                  | <1000 ppm |        |           |\n
              | Ethyl Ether                    | <1000 ppm |        |           |\n
              | Heptane                        | <500 ppm  |        |           |\n
              | n-Hexane                       | <30.0 ppm |        |           |\n
              | Methanol                       | <1000 ppm |        |           |\n
              | n-Pentane                      | <250 ppm  |        |           |\n
              | Propane                        | <1000 ppm |        |           |\n
              | Isopropyl Alcohol              | <1000 ppm |        |           |\n
              | Toluene                        | <85.0 ppm |        |           |\n
              | Xylenes (ortho-, meta-, para-) | <160 ppm  |        |           |
              """
            "isPerfectTable" => true
            "csv" => """
              "Analysis","Limit","Result","Pass/Fail"\n
              "Acetone","<180 ppm","",""\n
              "Acetonitrile","<180 ppm","",""\n
              "n-Butane","<500 ppm","",""\n
              "Ethanol","<1000 ppm","",""\n
              "Ethyl Acetate","<1000 ppm","",""\n
              "Ethyl Ether","<1000 ppm","",""\n
              "Heptane","<500 ppm","",""\n
              "n-Hexane","<30.0 ppm","",""\n
              "Methanol","<1000 ppm","",""\n
              "n-Pentane","<250 ppm","",""\n
              "Propane","<1000 ppm","",""\n
              "Isopropyl Alcohol","<1000 ppm","",""\n
              "Toluene","<85.0 ppm","",""\n
              "Xylenes (ortho-, meta-, para-)","<160 ppm","",""
              """
          ]
          [
            "type" => "text"
            "value" => "The Pass/Fail reporting designations are relative to the limits set forth by the Bureau of Cannabis Control Title 16, Division 42. *"
            "md" => "The Pass/Fail reporting designations are relative to the limits set forth by the Bureau of Cannabis Control Title 16, Division 42. *"
          ]
          [
            "type" => "heading"
            "lvl" => 3
            "value" => "Multi-Residue Analysis for hemp products"
            "md" => "### Multi-Residue Analysis for hemp products"
          ]
          [
            "type" => "table"
            "rows" => [
              [
                "Analysis"
                "Limit"
                "Result"
                "Pass/Fail"
              ]
              [
                "Cyprodinil"
                "<0.01 mg/kg"
                "<0.01 mg/kg"
                "Pass"
              ]
              [
                "Dichlorvos"
                "<0.05 mg/kg"
                "<0.05 mg/kg"
                "Pass"
              ]
              [
                "Dimethoate"
                "<0.01 mg/kg"
                "<0.01 mg/kg"
                "Pass"
              ]
              [
                "Fluopyram"
                "<0.01 mg/kg"
                "<0.01 mg/kg"
                "Pass"
              ]
            ]
            "md" => """
              | Analysis   | Limit       | Result      | Pass/Fail |\n
              | ---------- | ----------- | ----------- | --------- |\n
              | Cyprodinil | <0.01 mg/kg | <0.01 mg/kg | Pass      |\n
              | Dichlorvos | <0.05 mg/kg | <0.05 mg/kg | Pass      |\n
              | Dimethoate | <0.01 mg/kg | <0.01 mg/kg | Pass      |\n
              | Fluopyram  | <0.01 mg/kg | <0.01 mg/kg | Pass      |
              """
            "isPerfectTable" => true
            "csv" => """
              "Analysis","Limit","Result","Pass/Fail"\n
              "Cyprodinil","<0.01 mg/kg","<0.01 mg/kg","Pass"\n
              "Dichlorvos","<0.05 mg/kg","<0.05 mg/kg","Pass"\n
              "Dimethoate","<0.01 mg/kg","<0.01 mg/kg","Pass"\n
              "Fluopyram","<0.01 mg/kg","<0.01 mg/kg","Pass"
              """
          ]
          [
            "type" => "text"
            "value" => """
              * This analysis or component is not ISO accredited.\n
              \n
              Printed: 25-Apr-2025 6:32 pm  \n
              Page 3 of 9
              """
            "md" => """
              * This analysis or component is not ISO accredited.\n
              \n
              Printed: 25-Apr-2025 6:32 pm  \n
              Page 3 of 9
              """
          ]
        ]
        "status" => "OK"
        "originalOrientationAngle" => 0
        "links" => []
        "triggeredAutoMode" => false
        "parsingMode" => "multimodal-openai-gpt4o"
        "structuredData" => null
        "noStructuredContent" => false
        "noTextContent" => false
      ]
    ]
    "job_metadata" => [
      "credits_used" => 0
      "job_credits_usage" => 0
      "job_pages" => 1
      "job_auto_mode_triggered_pages" => 0
      "job_is_cache_hit" => false
    ]
  ]
  -labName: "Charlotte's Web, Inc."
  -sampleName: "CW 60mg Organic Orange Blossom 30mL"
  -sampleMatrix: "product"
  -internalPath: "/home/cbdextract/cbdextract.nw.agency/source/public/lab-reports/LabReportCOAPart3.jpg"
  -productType: "cannabis"
  -aILogs: Doctrine\ORM\PersistentCollection {#964 …}
  -products: Doctrine\ORM\PersistentCollection {#1018 …}
}
disabled
false
ea_crud_form
[
  "assets" => "** This variable no longer stores field assets. Instead, use "ea.crud.fieldAssets()" in your Twig template."
  "entity" => EasyCorp\Bundle\EasyAdminBundle\Dto\EntityDto {#844
    -isAccessible: true
    -fqcn: "App\Entity\LabReport"
    -metadata: Doctrine\ORM\Mapping\ClassMetadata {#691 …}
    -instance: App\Entity\LabReport {#854
      -id: 843
      -name: "Lab Report COA Part 3"
      -externalUrl: "https://purecbdnc.com/cdn/shop/files/Charlotte_sWeb_CBDFullSpectrumTincture60mg-30ml_OrangeCOA2025-04-253_98c7426c-419c-45dc-b5c7-3f7c31fba816.jpg?v=1747428923"
      -source: null
      -type: "jpg"
      -project: Proxies\__CG__\App\Entity\Project {#903
        -id: 104
        -name: "pure cbd"
        -url: "https://purecbdnc.com/"
        -prompt: null
        -chatJson: null
        -externalLabReportsUrl: null
        -spiderSourceUrls: Doctrine\ORM\PersistentCollection {#1521 …}
        -productMatchingUrl: null
        -productUrls: Doctrine\ORM\PersistentCollection {#1556 …}
        -labReportSources: Doctrine\ORM\PersistentCollection {#1527 …}
        -labReports: Doctrine\ORM\PersistentCollection {#1558 …}
        -createdAt: DateTime @1744068184 {#1495
          date: 2025-04-07 23:23:04.0 UTC (+00:00)
        }
        -updatedAt: DateTime @1768286193 {#1485
          date: 2026-01-13 06:36:33.0 UTC (+00:00)
        }
        -spiderSourceMatchingUrls: null
        -state: "ready_to_hunt"
        -products: Doctrine\ORM\PersistentCollection {#1560 …}
        -productPages: Doctrine\ORM\PersistentCollection {#1581 …}
        -websiteFramework: "shopify"
        -debugData: "{"error":{"message":"DOMDocument::loadHTML(): Argument #1 ($source) must not be empty","trace":"#0 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Helper\/FrameworkHelper.php(346): DOMDocument->loadHTML()\n#1 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Crawler\/ProductHuntCrawlerObserver.php(134): App\\Helper\\FrameworkHelper->is_shopify_product_page()\n#2 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/CrawlObservers\/CrawlObserverCollection.php(28): App\\Crawler\\ProductHuntCrawlerObserver->crawled()\n#3 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Handlers\/CrawlRequestFulfilled.php(104): Spatie\\Crawler\\CrawlObservers\\CrawlObserverCollection->crawled()\n#4 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Handlers\/CrawlRequestFulfilled.php(70): Spatie\\Crawler\\Handlers\\CrawlRequestFulfilled->handleCrawled()\n#5 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/EachPromise.php(173): Spatie\\Crawler\\Handlers\\CrawlRequestFulfilled->__invoke()\n#6 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(209): GuzzleHttp\\Promise\\EachPromise->GuzzleHttp\\Promise\\{closure}()\n#7 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(158): GuzzleHttp\\Promise\\Promise::callHandler()\n#8 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/TaskQueue.php(52): GuzzleHttp\\Promise\\Promise::GuzzleHttp\\Promise\\{closure}()\n#9 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/guzzle\/src\/Handler\/CurlMultiHandler.php(167): GuzzleHttp\\Promise\\TaskQueue->run()\n#10 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/guzzle\/src\/Handler\/CurlMultiHandler.php(206): GuzzleHttp\\Handler\\CurlMultiHandler->tick()\n#11 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(251): GuzzleHttp\\Handler\\CurlMultiHandler->execute()\n#12 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(227): GuzzleHttp\\Promise\\Promise->invokeWaitFn()\n#13 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(272): GuzzleHttp\\Promise\\Promise->waitIfPending()\n#14 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(229): GuzzleHttp\\Promise\\Promise->invokeWaitList()\n#15 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(69): GuzzleHttp\\Promise\\Promise->waitIfPending()\n#16 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/EachPromise.php(109): GuzzleHttp\\Promise\\Promise->wait()\n#17 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(251): GuzzleHttp\\Promise\\EachPromise->GuzzleHttp\\Promise\\{closure}()\n#18 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(227): GuzzleHttp\\Promise\\Promise->invokeWaitFn()\n#19 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(69): GuzzleHttp\\Promise\\Promise->waitIfPending()\n#20 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Crawler.php(494): GuzzleHttp\\Promise\\Promise->wait()\n#21 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Crawler.php(443): Spatie\\Crawler\\Crawler->startCrawlingQueue()\n#22 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Helper\/CrawlerHelper.php(181): Spatie\\Crawler\\Crawler->startCrawling()\n#23 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Helper\/ProjectHelper.php(250): App\\Helper\\CrawlerHelper->crawlProjectProducts()\n#24 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Command\/Cron\/ProductHuntCommand.php(60): App\\Helper\\ProjectHelper->huntProducts()\n#25 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Command\/Command.php(279): App\\Command\\Cron\\ProductHuntCommand->execute()\n#26 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Application.php(1047): Symfony\\Component\\Console\\Command\\Command->run()\n#27 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/framework-bundle\/Console\/Application.php(123): Symfony\\Component\\Console\\Application->doRunCommand()\n#28 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Application.php(316): Symfony\\Bundle\\FrameworkBundle\\Console\\Application->doRunCommand()\n#29 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/framework-bundle\/Console\/Application.php(77): Symfony\\Component\\Console\\Application->doRun()\n#30 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Application.php(167): Symfony\\Bundle\\FrameworkBundle\\Console\\Application->doRun()\n#31 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/runtime\/Runner\/Symfony\/ConsoleApplicationRunner.php(49): Symfony\\Component\\Console\\Application->run()\n#32 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/autoload_runtime.php(29): Symfony\\Component\\Runtime\\Runner\\Symfony\\ConsoleApplicationRunner->run()\n#33 \/home\/cbdextract\/cbdextract.nw.agency\/source\/bin\/console(15): require_once('...')\n#34 {main}"}}"
        -labReportFails: Doctrine\ORM\PersistentCollection {#1609 …}
        -productExcludePaths: null
        -aILogs: Doctrine\ORM\PersistentCollection {#1586 …}
        -user: null
        -aIBatchJobs: Doctrine\ORM\PersistentCollection {#1650 …}
        -lazyObjectState: Symfony\Component\VarExporter\Internal\LazyObjectState {#906 …}
      }
      -labReportSource: null
      -createdAt: DateTime @1748152551 {#848
        date: 2025-05-25 05:55:51.0 UTC (+00:00)
      }
      -updatedAt: DateTime @1748138197 {#845
        date: 2025-05-25 01:56:37.0 UTC (+00:00)
      }
      -category: null
      -state: "processed"
      -expiryDate: "2027-04-16"
      -extractionDate: "2025-04-25"
      -thcaPercentage: "0"
      -totalThcPercentage: "0"
      -deltaNinePercentage: "0"
      -deltaNineWithThcaCombined: "0"
      -comments: null
      -internalUrl: "https://cbdextract.nw.agency/lab-reports/LabReportCOAPart3.jpg"
      -markdownContent: ""# Certificate of Analysis\n\n**Charlotte's Web, Inc.**  \n700 Tech Court  \nLouisville Colorado 80027 United States\n\n**Report Number:** 4901775-0  \n**Report Date:** 25-Apr-2025  \n**Report Status:** Final\n\n----\n\n## Sample Information\n\n| Sample Name:         | A01417 - Composite                  | Eurofins Sample:   | 15217285                         |\n| -------------------- | ----------------------------------- | ------------------ | -------------------------------- |\n| Project ID:          | CHARLO\\_WEB-20250416-0138           | Receipt Date:      | 21-Apr-2025                      |\n| PO Number:           | QC 325                              | Receipt Condition: | Ambient temperature              |\n| Sample Serving Size: | 0.5 mL                              | Login Date:        | 16-Apr-2025                      |\n| Description:         | CW 60mg Organic Orange Blossom 30mL | Date Started:      | 21-Apr-2025                      |\n|                      | 60                                  | Sampled:           | Sample results apply as received |\n| MFG:                 | April 16 2025                       | Number Composited: | 3                                |\n| EXP:                 | April 16 2027                       | Online Order:      | SO-2025-E03804                   |\n\n\n----\n\n## Analysis\n\n### Residual Solvent Analysis in Cannabis and Hemp Matrices\n\nThe ECC limit of 1 ppm for Ethylene Oxide is not achieved by this method. Reporting limit of 25 ppm is the limit recommended by the AOAC CASP. *\n\n#### Category I Residual Solvent or Processing Chemical\n\n| Analysis                       | Limit     | Result | Pass\/Fail |\n| ------------------------------ | --------- | ------ | --------- |\n| Acetone                        | <180 ppm  |        |           |\n| Acetonitrile                   | <180 ppm  |        |           |\n| n-Butane                       | <500 ppm  |        |           |\n| Ethanol                        | <1000 ppm |        |           |\n| Ethyl Acetate                  | <1000 ppm |        |           |\n| Ethyl Ether                    | <1000 ppm |        |           |\n| Heptane                        | <500 ppm  |        |           |\n| n-Hexane                       | <30.0 ppm |        |           |\n| Methanol                       | <1000 ppm |        |           |\n| n-Pentane                      | <250 ppm  |        |           |\n| Propane                        | <1000 ppm |        |           |\n| Isopropyl Alcohol              | <1000 ppm |        |           |\n| Toluene                        | <85.0 ppm |        |           |\n| Xylenes (ortho-, meta-, para-) | <160 ppm  |        |           |\n\n\nThe Pass\/Fail reporting designations are relative to the limits set forth by the Bureau of Cannabis Control Title 16, Division 42. *\n\n### Multi-Residue Analysis for hemp products\n\n| Analysis   | Limit       | Result      | Pass\/Fail |\n| ---------- | ----------- | ----------- | --------- |\n| Cyprodinil | <0.01 mg\/kg | <0.01 mg\/kg | Pass      |\n| Dichlorvos | <0.05 mg\/kg | <0.05 mg\/kg | Pass      |\n| Dimethoate | <0.01 mg\/kg | <0.01 mg\/kg | Pass      |\n| Fluopyram  | <0.01 mg\/kg | <0.01 mg\/kg | Pass      |\n\n\n* This analysis or component is not ISO accredited.\n\nPrinted: 25-Apr-2025 6:32 pm  \nPage 3 of 9""
      -debugData: null
      -jsonContent: [
        "pages" => [
          [
            "page" => 1
            "md" => """
              # Certificate of Analysis\n
              \n
              **Charlotte's Web, Inc.**  \n
              700 Tech Court  \n
              Louisville Colorado 80027 United States\n
              \n
              **Report Number:** 4901775-0  \n
              **Report Date:** 25-Apr-2025  \n
              **Report Status:** Final\n
              \n
              ----\n
              \n
              ## Sample Information\n
              \n
              | Sample Name:         | A01417 - Composite                  | Eurofins Sample:   | 15217285                         |\n
              | -------------------- | ----------------------------------- | ------------------ | -------------------------------- |\n
              | Project ID:          | CHARLO\_WEB-20250416-0138           | Receipt Date:      | 21-Apr-2025                      |\n
              | PO Number:           | QC 325                              | Receipt Condition: | Ambient temperature              |\n
              | Sample Serving Size: | 0.5 mL                              | Login Date:        | 16-Apr-2025                      |\n
              | Description:         | CW 60mg Organic Orange Blossom 30mL | Date Started:      | 21-Apr-2025                      |\n
              |                      | 60                                  | Sampled:           | Sample results apply as received |\n
              | MFG:                 | April 16 2025                       | Number Composited: | 3                                |\n
              | EXP:                 | April 16 2027                       | Online Order:      | SO-2025-E03804                   |\n
              \n
              \n
              ----\n
              \n
              ## Analysis\n
              \n
              ### Residual Solvent Analysis in Cannabis and Hemp Matrices\n
              \n
              The ECC limit of 1 ppm for Ethylene Oxide is not achieved by this method. Reporting limit of 25 ppm is the limit recommended by the AOAC CASP. *\n
              \n
              #### Category I Residual Solvent or Processing Chemical\n
              \n
              | Analysis                       | Limit     | Result | Pass/Fail |\n
              | ------------------------------ | --------- | ------ | --------- |\n
              | Acetone                        | <180 ppm  |        |           |\n
              | Acetonitrile                   | <180 ppm  |        |           |\n
              | n-Butane                       | <500 ppm  |        |           |\n
              | Ethanol                        | <1000 ppm |        |           |\n
              | Ethyl Acetate                  | <1000 ppm |        |           |\n
              | Ethyl Ether                    | <1000 ppm |        |           |\n
              | Heptane                        | <500 ppm  |        |           |\n
              | n-Hexane                       | <30.0 ppm |        |           |\n
              | Methanol                       | <1000 ppm |        |           |\n
              | n-Pentane                      | <250 ppm  |        |           |\n
              | Propane                        | <1000 ppm |        |           |\n
              | Isopropyl Alcohol              | <1000 ppm |        |           |\n
              | Toluene                        | <85.0 ppm |        |           |\n
              | Xylenes (ortho-, meta-, para-) | <160 ppm  |        |           |\n
              \n
              \n
              The Pass/Fail reporting designations are relative to the limits set forth by the Bureau of Cannabis Control Title 16, Division 42. *\n
              \n
              ### Multi-Residue Analysis for hemp products\n
              \n
              | Analysis   | Limit       | Result      | Pass/Fail |\n
              | ---------- | ----------- | ----------- | --------- |\n
              | Cyprodinil | <0.01 mg/kg | <0.01 mg/kg | Pass      |\n
              | Dichlorvos | <0.05 mg/kg | <0.05 mg/kg | Pass      |\n
              | Dimethoate | <0.01 mg/kg | <0.01 mg/kg | Pass      |\n
              | Fluopyram  | <0.01 mg/kg | <0.01 mg/kg | Pass      |\n
              \n
              \n
              * This analysis or component is not ISO accredited.\n
              \n
              Printed: 25-Apr-2025 6:32 pm  \n
              Page 3 of 9
              """
            "images" => [
              [
                "name" => "page_1.jpg"
                "height" => 0
                "width" => 0
                "x" => 0
                "y" => 0
                "type" => "full_page_screenshot"
              ]
            ]
            "charts" => []
            "items" => [
              [
                "type" => "heading"
                "lvl" => 1
                "value" => "Certificate of Analysis"
                "md" => "# Certificate of Analysis"
              ]
              [
                "type" => "text"
                "value" => """
                  **Charlotte's Web, Inc.**  \n
                  700 Tech Court  \n
                  Louisville Colorado 80027 United States\n
                  \n
                  **Report Number:** 4901775-0  \n
                  **Report Date:** 25-Apr-2025  \n
                  **Report Status:** Final\n
                  \n
                  ----
                  """
                "md" => """
                  **Charlotte's Web, Inc.**  \n
                  700 Tech Court  \n
                  Louisville Colorado 80027 United States\n
                  \n
                  **Report Number:** 4901775-0  \n
                  **Report Date:** 25-Apr-2025  \n
                  **Report Status:** Final\n
                  \n
                  ----
                  """
              ]
              [
                "type" => "heading"
                "lvl" => 2
                "value" => "Sample Information"
                "md" => "## Sample Information"
              ]
              [
                "type" => "table"
                "rows" => [
                  [
                    "Sample Name:"
                    "A01417 - Composite"
                    "Eurofins Sample:"
                    "15217285"
                  ]
                  [
                    "Project ID:"
                    "CHARLO_WEB-20250416-0138"
                    "Receipt Date:"
                    "21-Apr-2025"
                  ]
                  [
                    "PO Number:"
                    "QC 325"
                    "Receipt Condition:"
                    "Ambient temperature"
                  ]
                  [
                    "Sample Serving Size:"
                    "0.5 mL"
                    "Login Date:"
                    "16-Apr-2025"
                  ]
                  [
                    "Description:"
                    "CW 60mg Organic Orange Blossom 30mL"
                    "Date Started:"
                    "21-Apr-2025"
                  ]
                  [
                    ""
                    "60"
                    "Sampled:"
                    "Sample results apply as received"
                  ]
                  [
                    "MFG:"
                    "April 16 2025"
                    "Number Composited:"
                    "3"
                  ]
                  [
                    "EXP:"
                    "April 16 2027"
                    "Online Order:"
                    "SO-2025-E03804"
                  ]
                ]
                "md" => """
                  | Sample Name:         | A01417 - Composite                  | Eurofins Sample:   | 15217285                         |\n
                  | -------------------- | ----------------------------------- | ------------------ | -------------------------------- |\n
                  | Project ID:          | CHARLO\_WEB-20250416-0138           | Receipt Date:      | 21-Apr-2025                      |\n
                  | PO Number:           | QC 325                              | Receipt Condition: | Ambient temperature              |\n
                  | Sample Serving Size: | 0.5 mL                              | Login Date:        | 16-Apr-2025                      |\n
                  | Description:         | CW 60mg Organic Orange Blossom 30mL | Date Started:      | 21-Apr-2025                      |\n
                  |                      | 60                                  | Sampled:           | Sample results apply as received |\n
                  | MFG:                 | April 16 2025                       | Number Composited: | 3                                |\n
                  | EXP:                 | April 16 2027                       | Online Order:      | SO-2025-E03804                   |
                  """
                "isPerfectTable" => true
                "csv" => """
                  "Sample Name:","A01417 - Composite","Eurofins Sample:","15217285"\n
                  "Project ID:","CHARLO_WEB-20250416-0138","Receipt Date:","21-Apr-2025"\n
                  "PO Number:","QC 325","Receipt Condition:","Ambient temperature"\n
                  "Sample Serving Size:","0.5 mL","Login Date:","16-Apr-2025"\n
                  "Description:","CW 60mg Organic Orange Blossom 30mL","Date Started:","21-Apr-2025"\n
                  "","60","Sampled:","Sample results apply as received"\n
                  "MFG:","April 16 2025","Number Composited:","3"\n
                  "EXP:","April 16 2027","Online Order:","SO-2025-E03804"
                  """
              ]
              [
                "type" => "text"
                "value" => "----"
                "md" => "----"
              ]
              [
                "type" => "heading"
                "lvl" => 2
                "value" => "Analysis"
                "md" => "## Analysis"
              ]
              [
                "type" => "heading"
                "lvl" => 3
                "value" => "Residual Solvent Analysis in Cannabis and Hemp Matrices"
                "md" => "### Residual Solvent Analysis in Cannabis and Hemp Matrices"
              ]
              [
                "type" => "text"
                "value" => "The ECC limit of 1 ppm for Ethylene Oxide is not achieved by this method. Reporting limit of 25 ppm is the limit recommended by the AOAC CASP. *"
                "md" => "The ECC limit of 1 ppm for Ethylene Oxide is not achieved by this method. Reporting limit of 25 ppm is the limit recommended by the AOAC CASP. *"
              ]
              [
                "type" => "heading"
                "lvl" => 4
                "value" => "Category I Residual Solvent or Processing Chemical"
                "md" => "#### Category I Residual Solvent or Processing Chemical"
              ]
              [
                "type" => "table"
                "rows" => [
                  [
                    "Analysis"
                    "Limit"
                    "Result"
                    "Pass/Fail"
                  ]
                  [
                    "Acetone"
                    "<180 ppm"
                    ""
                    ""
                  ]
                  [
                    "Acetonitrile"
                    "<180 ppm"
                    ""
                    ""
                  ]
                  [
                    "n-Butane"
                    "<500 ppm"
                    ""
                    ""
                  ]
                  [
                    "Ethanol"
                    "<1000 ppm"
                    ""
                    ""
                  ]
                  [
                    "Ethyl Acetate"
                    "<1000 ppm"
                    ""
                    ""
                  ]
                  [
                    "Ethyl Ether"
                    "<1000 ppm"
                    ""
                    ""
                  ]
                  [
                    "Heptane"
                    "<500 ppm"
                    ""
                    ""
                  ]
                  [
                    "n-Hexane"
                    "<30.0 ppm"
                    ""
                    ""
                  ]
                  [
                    "Methanol"
                    "<1000 ppm"
                    ""
                    ""
                  ]
                  [
                    "n-Pentane"
                    "<250 ppm"
                    ""
                    ""
                  ]
                  [
                    "Propane"
                    "<1000 ppm"
                    ""
                    ""
                  ]
                  [
                    "Isopropyl Alcohol"
                    "<1000 ppm"
                    ""
                    ""
                  ]
                  [
                    "Toluene"
                    "<85.0 ppm"
                    ""
                    ""
                  ]
                  [
                    "Xylenes (ortho-, meta-, para-)"
                    "<160 ppm"
                    ""
                    ""
                  ]
                ]
                "md" => """
                  | Analysis                       | Limit     | Result | Pass/Fail |\n
                  | ------------------------------ | --------- | ------ | --------- |\n
                  | Acetone                        | <180 ppm  |        |           |\n
                  | Acetonitrile                   | <180 ppm  |        |           |\n
                  | n-Butane                       | <500 ppm  |        |           |\n
                  | Ethanol                        | <1000 ppm |        |           |\n
                  | Ethyl Acetate                  | <1000 ppm |        |           |\n
                  | Ethyl Ether                    | <1000 ppm |        |           |\n
                  | Heptane                        | <500 ppm  |        |           |\n
                  | n-Hexane                       | <30.0 ppm |        |           |\n
                  | Methanol                       | <1000 ppm |        |           |\n
                  | n-Pentane                      | <250 ppm  |        |           |\n
                  | Propane                        | <1000 ppm |        |           |\n
                  | Isopropyl Alcohol              | <1000 ppm |        |           |\n
                  | Toluene                        | <85.0 ppm |        |           |\n
                  | Xylenes (ortho-, meta-, para-) | <160 ppm  |        |           |
                  """
                "isPerfectTable" => true
                "csv" => """
                  "Analysis","Limit","Result","Pass/Fail"\n
                  "Acetone","<180 ppm","",""\n
                  "Acetonitrile","<180 ppm","",""\n
                  "n-Butane","<500 ppm","",""\n
                  "Ethanol","<1000 ppm","",""\n
                  "Ethyl Acetate","<1000 ppm","",""\n
                  "Ethyl Ether","<1000 ppm","",""\n
                  "Heptane","<500 ppm","",""\n
                  "n-Hexane","<30.0 ppm","",""\n
                  "Methanol","<1000 ppm","",""\n
                  "n-Pentane","<250 ppm","",""\n
                  "Propane","<1000 ppm","",""\n
                  "Isopropyl Alcohol","<1000 ppm","",""\n
                  "Toluene","<85.0 ppm","",""\n
                  "Xylenes (ortho-, meta-, para-)","<160 ppm","",""
                  """
              ]
              [
                "type" => "text"
                "value" => "The Pass/Fail reporting designations are relative to the limits set forth by the Bureau of Cannabis Control Title 16, Division 42. *"
                "md" => "The Pass/Fail reporting designations are relative to the limits set forth by the Bureau of Cannabis Control Title 16, Division 42. *"
              ]
              [
                "type" => "heading"
                "lvl" => 3
                "value" => "Multi-Residue Analysis for hemp products"
                "md" => "### Multi-Residue Analysis for hemp products"
              ]
              [
                "type" => "table"
                "rows" => [
                  [
                    "Analysis"
                    "Limit"
                    "Result"
                    "Pass/Fail"
                  ]
                  [
                    "Cyprodinil"
                    "<0.01 mg/kg"
                    "<0.01 mg/kg"
                    "Pass"
                  ]
                  [
                    "Dichlorvos"
                    "<0.05 mg/kg"
                    "<0.05 mg/kg"
                    "Pass"
                  ]
                  [
                    "Dimethoate"
                    "<0.01 mg/kg"
                    "<0.01 mg/kg"
                    "Pass"
                  ]
                  [
                    "Fluopyram"
                    "<0.01 mg/kg"
                    "<0.01 mg/kg"
                    "Pass"
                  ]
                ]
                "md" => """
                  | Analysis   | Limit       | Result      | Pass/Fail |\n
                  | ---------- | ----------- | ----------- | --------- |\n
                  | Cyprodinil | <0.01 mg/kg | <0.01 mg/kg | Pass      |\n
                  | Dichlorvos | <0.05 mg/kg | <0.05 mg/kg | Pass      |\n
                  | Dimethoate | <0.01 mg/kg | <0.01 mg/kg | Pass      |\n
                  | Fluopyram  | <0.01 mg/kg | <0.01 mg/kg | Pass      |
                  """
                "isPerfectTable" => true
                "csv" => """
                  "Analysis","Limit","Result","Pass/Fail"\n
                  "Cyprodinil","<0.01 mg/kg","<0.01 mg/kg","Pass"\n
                  "Dichlorvos","<0.05 mg/kg","<0.05 mg/kg","Pass"\n
                  "Dimethoate","<0.01 mg/kg","<0.01 mg/kg","Pass"\n
                  "Fluopyram","<0.01 mg/kg","<0.01 mg/kg","Pass"
                  """
              ]
              [
                "type" => "text"
                "value" => """
                  * This analysis or component is not ISO accredited.\n
                  \n
                  Printed: 25-Apr-2025 6:32 pm  \n
                  Page 3 of 9
                  """
                "md" => """
                  * This analysis or component is not ISO accredited.\n
                  \n
                  Printed: 25-Apr-2025 6:32 pm  \n
                  Page 3 of 9
                  """
              ]
            ]
            "status" => "OK"
            "originalOrientationAngle" => 0
            "links" => []
            "triggeredAutoMode" => false
            "parsingMode" => "multimodal-openai-gpt4o"
            "structuredData" => null
            "noStructuredContent" => false
            "noTextContent" => false
          ]
        ]
        "job_metadata" => [
          "credits_used" => 0
          "job_credits_usage" => 0
          "job_pages" => 1
          "job_auto_mode_triggered_pages" => 0
          "job_is_cache_hit" => false
        ]
      ]
      -labName: "Charlotte's Web, Inc."
      -sampleName: "CW 60mg Organic Orange Blossom 30mL"
      -sampleMatrix: "product"
      -internalPath: "/home/cbdextract/cbdextract.nw.agency/source/public/lab-reports/LabReportCOAPart3.jpg"
      -productType: "cannabis"
      -aILogs: Doctrine\ORM\PersistentCollection {#964 …}
      -products: Doctrine\ORM\PersistentCollection {#1018 …}
    }
    -primaryKeyName: "id"
    -primaryKeyValue: 843
    -permission: null
    -fields: EasyCorp\Bundle\EasyAdminBundle\Collection\FieldCollection {#1343 …}
    -actions: EasyCorp\Bundle\EasyAdminBundle\Collection\ActionCollection {#1719 …}
  }
  "form_tabs" => []
  "form_fieldsets" => []
]
ea_vars
EasyCorp\Bundle\EasyAdminBundle\Dto\FormVarsDto {#4043
  -fieldDto: null
  -entityDto: null
}
errors
Symfony\Component\Form\FormErrorIterator {#1829
  -errors: []
  -form: Symfony\Component\Form\Form {#1779 …}
}
form
Symfony\Component\Form\FormView {#1838 …5}
full_name
"LabReport"
help
null
help_attr
[]
help_html
false
help_translation_parameters
[]
id
"LabReport"
label
null
label_attr
[]
label_format
null
label_html
false
label_translation_parameters
[]
method
"POST"
multipart
false
name
"LabReport"
priority
0
required
true
row_attr
[]
submitted
false
translation_domain
"messages"
unique_block_prefix
"_LabReport"
valid
true
value
App\Entity\LabReport {#854
  -id: 843
  -name: "Lab Report COA Part 3"
  -externalUrl: "https://purecbdnc.com/cdn/shop/files/Charlotte_sWeb_CBDFullSpectrumTincture60mg-30ml_OrangeCOA2025-04-253_98c7426c-419c-45dc-b5c7-3f7c31fba816.jpg?v=1747428923"
  -source: null
  -type: "jpg"
  -project: Proxies\__CG__\App\Entity\Project {#903
    -id: 104
    -name: "pure cbd"
    -url: "https://purecbdnc.com/"
    -prompt: null
    -chatJson: null
    -externalLabReportsUrl: null
    -spiderSourceUrls: Doctrine\ORM\PersistentCollection {#1521 …}
    -productMatchingUrl: null
    -productUrls: Doctrine\ORM\PersistentCollection {#1556 …}
    -labReportSources: Doctrine\ORM\PersistentCollection {#1527 …}
    -labReports: Doctrine\ORM\PersistentCollection {#1558 …}
    -createdAt: DateTime @1744068184 {#1495
      date: 2025-04-07 23:23:04.0 UTC (+00:00)
    }
    -updatedAt: DateTime @1768286193 {#1485
      date: 2026-01-13 06:36:33.0 UTC (+00:00)
    }
    -spiderSourceMatchingUrls: null
    -state: "ready_to_hunt"
    -products: Doctrine\ORM\PersistentCollection {#1560 …}
    -productPages: Doctrine\ORM\PersistentCollection {#1581 …}
    -websiteFramework: "shopify"
    -debugData: "{"error":{"message":"DOMDocument::loadHTML(): Argument #1 ($source) must not be empty","trace":"#0 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Helper\/FrameworkHelper.php(346): DOMDocument->loadHTML()\n#1 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Crawler\/ProductHuntCrawlerObserver.php(134): App\\Helper\\FrameworkHelper->is_shopify_product_page()\n#2 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/CrawlObservers\/CrawlObserverCollection.php(28): App\\Crawler\\ProductHuntCrawlerObserver->crawled()\n#3 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Handlers\/CrawlRequestFulfilled.php(104): Spatie\\Crawler\\CrawlObservers\\CrawlObserverCollection->crawled()\n#4 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Handlers\/CrawlRequestFulfilled.php(70): Spatie\\Crawler\\Handlers\\CrawlRequestFulfilled->handleCrawled()\n#5 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/EachPromise.php(173): Spatie\\Crawler\\Handlers\\CrawlRequestFulfilled->__invoke()\n#6 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(209): GuzzleHttp\\Promise\\EachPromise->GuzzleHttp\\Promise\\{closure}()\n#7 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(158): GuzzleHttp\\Promise\\Promise::callHandler()\n#8 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/TaskQueue.php(52): GuzzleHttp\\Promise\\Promise::GuzzleHttp\\Promise\\{closure}()\n#9 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/guzzle\/src\/Handler\/CurlMultiHandler.php(167): GuzzleHttp\\Promise\\TaskQueue->run()\n#10 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/guzzle\/src\/Handler\/CurlMultiHandler.php(206): GuzzleHttp\\Handler\\CurlMultiHandler->tick()\n#11 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(251): GuzzleHttp\\Handler\\CurlMultiHandler->execute()\n#12 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(227): GuzzleHttp\\Promise\\Promise->invokeWaitFn()\n#13 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(272): GuzzleHttp\\Promise\\Promise->waitIfPending()\n#14 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(229): GuzzleHttp\\Promise\\Promise->invokeWaitList()\n#15 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(69): GuzzleHttp\\Promise\\Promise->waitIfPending()\n#16 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/EachPromise.php(109): GuzzleHttp\\Promise\\Promise->wait()\n#17 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(251): GuzzleHttp\\Promise\\EachPromise->GuzzleHttp\\Promise\\{closure}()\n#18 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(227): GuzzleHttp\\Promise\\Promise->invokeWaitFn()\n#19 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/guzzlehttp\/promises\/src\/Promise.php(69): GuzzleHttp\\Promise\\Promise->waitIfPending()\n#20 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Crawler.php(494): GuzzleHttp\\Promise\\Promise->wait()\n#21 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/spatie\/crawler\/src\/Crawler.php(443): Spatie\\Crawler\\Crawler->startCrawlingQueue()\n#22 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Helper\/CrawlerHelper.php(181): Spatie\\Crawler\\Crawler->startCrawling()\n#23 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Helper\/ProjectHelper.php(250): App\\Helper\\CrawlerHelper->crawlProjectProducts()\n#24 \/home\/cbdextract\/cbdextract.nw.agency\/source\/src\/Command\/Cron\/ProductHuntCommand.php(60): App\\Helper\\ProjectHelper->huntProducts()\n#25 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Command\/Command.php(279): App\\Command\\Cron\\ProductHuntCommand->execute()\n#26 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Application.php(1047): Symfony\\Component\\Console\\Command\\Command->run()\n#27 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/framework-bundle\/Console\/Application.php(123): Symfony\\Component\\Console\\Application->doRunCommand()\n#28 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Application.php(316): Symfony\\Bundle\\FrameworkBundle\\Console\\Application->doRunCommand()\n#29 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/framework-bundle\/Console\/Application.php(77): Symfony\\Component\\Console\\Application->doRun()\n#30 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/console\/Application.php(167): Symfony\\Bundle\\FrameworkBundle\\Console\\Application->doRun()\n#31 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/symfony\/runtime\/Runner\/Symfony\/ConsoleApplicationRunner.php(49): Symfony\\Component\\Console\\Application->run()\n#32 \/home\/cbdextract\/cbdextract.nw.agency\/source\/vendor\/autoload_runtime.php(29): Symfony\\Component\\Runtime\\Runner\\Symfony\\ConsoleApplicationRunner->run()\n#33 \/home\/cbdextract\/cbdextract.nw.agency\/source\/bin\/console(15): require_once('...')\n#34 {main}"}}"
    -labReportFails: Doctrine\ORM\PersistentCollection {#1609 …}
    -productExcludePaths: null
    -aILogs: Doctrine\ORM\PersistentCollection {#1586 …}
    -user: null
    -aIBatchJobs: Doctrine\ORM\PersistentCollection {#1650 …}
    -lazyObjectState: Symfony\Component\VarExporter\Internal\LazyObjectState {#906 …}
  }
  -labReportSource: null
  -createdAt: DateTime @1748152551 {#848
    date: 2025-05-25 05:55:51.0 UTC (+00:00)
  }
  -updatedAt: DateTime @1748138197 {#845
    date: 2025-05-25 01:56:37.0 UTC (+00:00)
  }
  -category: null
  -state: "processed"
  -expiryDate: "2027-04-16"
  -extractionDate: "2025-04-25"
  -thcaPercentage: "0"
  -totalThcPercentage: "0"
  -deltaNinePercentage: "0"
  -deltaNineWithThcaCombined: "0"
  -comments: null
  -internalUrl: "https://cbdextract.nw.agency/lab-reports/LabReportCOAPart3.jpg"
  -markdownContent: ""# Certificate of Analysis\n\n**Charlotte's Web, Inc.**  \n700 Tech Court  \nLouisville Colorado 80027 United States\n\n**Report Number:** 4901775-0  \n**Report Date:** 25-Apr-2025  \n**Report Status:** Final\n\n----\n\n## Sample Information\n\n| Sample Name:         | A01417 - Composite                  | Eurofins Sample:   | 15217285                         |\n| -------------------- | ----------------------------------- | ------------------ | -------------------------------- |\n| Project ID:          | CHARLO\\_WEB-20250416-0138           | Receipt Date:      | 21-Apr-2025                      |\n| PO Number:           | QC 325                              | Receipt Condition: | Ambient temperature              |\n| Sample Serving Size: | 0.5 mL                              | Login Date:        | 16-Apr-2025                      |\n| Description:         | CW 60mg Organic Orange Blossom 30mL | Date Started:      | 21-Apr-2025                      |\n|                      | 60                                  | Sampled:           | Sample results apply as received |\n| MFG:                 | April 16 2025                       | Number Composited: | 3                                |\n| EXP:                 | April 16 2027                       | Online Order:      | SO-2025-E03804                   |\n\n\n----\n\n## Analysis\n\n### Residual Solvent Analysis in Cannabis and Hemp Matrices\n\nThe ECC limit of 1 ppm for Ethylene Oxide is not achieved by this method. Reporting limit of 25 ppm is the limit recommended by the AOAC CASP. *\n\n#### Category I Residual Solvent or Processing Chemical\n\n| Analysis                       | Limit     | Result | Pass\/Fail |\n| ------------------------------ | --------- | ------ | --------- |\n| Acetone                        | <180 ppm  |        |           |\n| Acetonitrile                   | <180 ppm  |        |           |\n| n-Butane                       | <500 ppm  |        |           |\n| Ethanol                        | <1000 ppm |        |           |\n| Ethyl Acetate                  | <1000 ppm |        |           |\n| Ethyl Ether                    | <1000 ppm |        |           |\n| Heptane                        | <500 ppm  |        |           |\n| n-Hexane                       | <30.0 ppm |        |           |\n| Methanol                       | <1000 ppm |        |           |\n| n-Pentane                      | <250 ppm  |        |           |\n| Propane                        | <1000 ppm |        |           |\n| Isopropyl Alcohol              | <1000 ppm |        |           |\n| Toluene                        | <85.0 ppm |        |           |\n| Xylenes (ortho-, meta-, para-) | <160 ppm  |        |           |\n\n\nThe Pass\/Fail reporting designations are relative to the limits set forth by the Bureau of Cannabis Control Title 16, Division 42. *\n\n### Multi-Residue Analysis for hemp products\n\n| Analysis   | Limit       | Result      | Pass\/Fail |\n| ---------- | ----------- | ----------- | --------- |\n| Cyprodinil | <0.01 mg\/kg | <0.01 mg\/kg | Pass      |\n| Dichlorvos | <0.05 mg\/kg | <0.05 mg\/kg | Pass      |\n| Dimethoate | <0.01 mg\/kg | <0.01 mg\/kg | Pass      |\n| Fluopyram  | <0.01 mg\/kg | <0.01 mg\/kg | Pass      |\n\n\n* This analysis or component is not ISO accredited.\n\nPrinted: 25-Apr-2025 6:32 pm  \nPage 3 of 9""
  -debugData: null
  -jsonContent: [
    "pages" => [
      [
        "page" => 1
        "md" => """
          # Certificate of Analysis\n
          \n
          **Charlotte's Web, Inc.**  \n
          700 Tech Court  \n
          Louisville Colorado 80027 United States\n
          \n
          **Report Number:** 4901775-0  \n
          **Report Date:** 25-Apr-2025  \n
          **Report Status:** Final\n
          \n
          ----\n
          \n
          ## Sample Information\n
          \n
          | Sample Name:         | A01417 - Composite                  | Eurofins Sample:   | 15217285                         |\n
          | -------------------- | ----------------------------------- | ------------------ | -------------------------------- |\n
          | Project ID:          | CHARLO\_WEB-20250416-0138           | Receipt Date:      | 21-Apr-2025                      |\n
          | PO Number:           | QC 325                              | Receipt Condition: | Ambient temperature              |\n
          | Sample Serving Size: | 0.5 mL                              | Login Date:        | 16-Apr-2025                      |\n
          | Description:         | CW 60mg Organic Orange Blossom 30mL | Date Started:      | 21-Apr-2025                      |\n
          |                      | 60                                  | Sampled:           | Sample results apply as received |\n
          | MFG:                 | April 16 2025                       | Number Composited: | 3                                |\n
          | EXP:                 | April 16 2027                       | Online Order:      | SO-2025-E03804                   |\n
          \n
          \n
          ----\n
          \n
          ## Analysis\n
          \n
          ### Residual Solvent Analysis in Cannabis and Hemp Matrices\n
          \n
          The ECC limit of 1 ppm for Ethylene Oxide is not achieved by this method. Reporting limit of 25 ppm is the limit recommended by the AOAC CASP. *\n
          \n
          #### Category I Residual Solvent or Processing Chemical\n
          \n
          | Analysis                       | Limit     | Result | Pass/Fail |\n
          | ------------------------------ | --------- | ------ | --------- |\n
          | Acetone                        | <180 ppm  |        |           |\n
          | Acetonitrile                   | <180 ppm  |        |           |\n
          | n-Butane                       | <500 ppm  |        |           |\n
          | Ethanol                        | <1000 ppm |        |           |\n
          | Ethyl Acetate                  | <1000 ppm |        |           |\n
          | Ethyl Ether                    | <1000 ppm |        |           |\n
          | Heptane                        | <500 ppm  |        |           |\n
          | n-Hexane                       | <30.0 ppm |        |           |\n
          | Methanol                       | <1000 ppm |        |           |\n
          | n-Pentane                      | <250 ppm  |        |           |\n
          | Propane                        | <1000 ppm |        |           |\n
          | Isopropyl Alcohol              | <1000 ppm |        |           |\n
          | Toluene                        | <85.0 ppm |        |           |\n
          | Xylenes (ortho-, meta-, para-) | <160 ppm  |        |           |\n
          \n
          \n
          The Pass/Fail reporting designations are relative to the limits set forth by the Bureau of Cannabis Control Title 16, Division 42. *\n
          \n
          ### Multi-Residue Analysis for hemp products\n
          \n
          | Analysis   | Limit       | Result      | Pass/Fail |\n
          | ---------- | ----------- | ----------- | --------- |\n
          | Cyprodinil | <0.01 mg/kg | <0.01 mg/kg | Pass      |\n
          | Dichlorvos | <0.05 mg/kg | <0.05 mg/kg | Pass      |\n
          | Dimethoate | <0.01 mg/kg | <0.01 mg/kg | Pass      |\n
          | Fluopyram  | <0.01 mg/kg | <0.01 mg/kg | Pass      |\n
          \n
          \n
          * This analysis or component is not ISO accredited.\n
          \n
          Printed: 25-Apr-2025 6:32 pm  \n
          Page 3 of 9
          """
        "images" => [
          [
            "name" => "page_1.jpg"
            "height" => 0
            "width" => 0
            "x" => 0
            "y" => 0
            "type" => "full_page_screenshot"
          ]
        ]
        "charts" => []
        "items" => [
          [
            "type" => "heading"
            "lvl" => 1
            "value" => "Certificate of Analysis"
            "md" => "# Certificate of Analysis"
          ]
          [
            "type" => "text"
            "value" => """
              **Charlotte's Web, Inc.**  \n
              700 Tech Court  \n
              Louisville Colorado 80027 United States\n
              \n
              **Report Number:** 4901775-0  \n
              **Report Date:** 25-Apr-2025  \n
              **Report Status:** Final\n
              \n
              ----
              """
            "md" => """
              **Charlotte's Web, Inc.**  \n
              700 Tech Court  \n
              Louisville Colorado 80027 United States\n
              \n
              **Report Number:** 4901775-0  \n
              **Report Date:** 25-Apr-2025  \n
              **Report Status:** Final\n
              \n
              ----
              """
          ]
          [
            "type" => "heading"
            "lvl" => 2
            "value" => "Sample Information"
            "md" => "## Sample Information"
          ]
          [
            "type" => "table"
            "rows" => [
              [
                "Sample Name:"
                "A01417 - Composite"
                "Eurofins Sample:"
                "15217285"
              ]
              [
                "Project ID:"
                "CHARLO_WEB-20250416-0138"
                "Receipt Date:"
                "21-Apr-2025"
              ]
              [
                "PO Number:"
                "QC 325"
                "Receipt Condition:"
                "Ambient temperature"
              ]
              [
                "Sample Serving Size:"
                "0.5 mL"
                "Login Date:"
                "16-Apr-2025"
              ]
              [
                "Description:"
                "CW 60mg Organic Orange Blossom 30mL"
                "Date Started:"
                "21-Apr-2025"
              ]
              [
                ""
                "60"
                "Sampled:"
                "Sample results apply as received"
              ]
              [
                "MFG:"
                "April 16 2025"
                "Number Composited:"
                "3"
              ]
              [
                "EXP:"
                "April 16 2027"
                "Online Order:"
                "SO-2025-E03804"
              ]
            ]
            "md" => """
              | Sample Name:         | A01417 - Composite                  | Eurofins Sample:   | 15217285                         |\n
              | -------------------- | ----------------------------------- | ------------------ | -------------------------------- |\n
              | Project ID:          | CHARLO\_WEB-20250416-0138           | Receipt Date:      | 21-Apr-2025                      |\n
              | PO Number:           | QC 325                              | Receipt Condition: | Ambient temperature              |\n
              | Sample Serving Size: | 0.5 mL                              | Login Date:        | 16-Apr-2025                      |\n
              | Description:         | CW 60mg Organic Orange Blossom 30mL | Date Started:      | 21-Apr-2025                      |\n
              |                      | 60                                  | Sampled:           | Sample results apply as received |\n
              | MFG:                 | April 16 2025                       | Number Composited: | 3                                |\n
              | EXP:                 | April 16 2027                       | Online Order:      | SO-2025-E03804                   |
              """
            "isPerfectTable" => true
            "csv" => """
              "Sample Name:","A01417 - Composite","Eurofins Sample:","15217285"\n
              "Project ID:","CHARLO_WEB-20250416-0138","Receipt Date:","21-Apr-2025"\n
              "PO Number:","QC 325","Receipt Condition:","Ambient temperature"\n
              "Sample Serving Size:","0.5 mL","Login Date:","16-Apr-2025"\n
              "Description:","CW 60mg Organic Orange Blossom 30mL","Date Started:","21-Apr-2025"\n
              "","60","Sampled:","Sample results apply as received"\n
              "MFG:","April 16 2025","Number Composited:","3"\n
              "EXP:","April 16 2027","Online Order:","SO-2025-E03804"
              """
          ]
          [
            "type" => "text"
            "value" => "----"
            "md" => "----"
          ]
          [
            "type" => "heading"
            "lvl" => 2
            "value" => "Analysis"
            "md" => "## Analysis"
          ]
          [
            "type" => "heading"
            "lvl" => 3
            "value" => "Residual Solvent Analysis in Cannabis and Hemp Matrices"
            "md" => "### Residual Solvent Analysis in Cannabis and Hemp Matrices"
          ]
          [
            "type" => "text"
            "value" => "The ECC limit of 1 ppm for Ethylene Oxide is not achieved by this method. Reporting limit of 25 ppm is the limit recommended by the AOAC CASP. *"
            "md" => "The ECC limit of 1 ppm for Ethylene Oxide is not achieved by this method. Reporting limit of 25 ppm is the limit recommended by the AOAC CASP. *"
          ]
          [
            "type" => "heading"
            "lvl" => 4
            "value" => "Category I Residual Solvent or Processing Chemical"
            "md" => "#### Category I Residual Solvent or Processing Chemical"
          ]
          [
            "type" => "table"
            "rows" => [
              [
                "Analysis"
                "Limit"
                "Result"
                "Pass/Fail"
              ]
              [
                "Acetone"
                "<180 ppm"
                ""
                ""
              ]
              [
                "Acetonitrile"
                "<180 ppm"
                ""
                ""
              ]
              [
                "n-Butane"
                "<500 ppm"
                ""
                ""
              ]
              [
                "Ethanol"
                "<1000 ppm"
                ""
                ""
              ]
              [
                "Ethyl Acetate"
                "<1000 ppm"
                ""
                ""
              ]
              [
                "Ethyl Ether"
                "<1000 ppm"
                ""
                ""
              ]
              [
                "Heptane"
                "<500 ppm"
                ""
                ""
              ]
              [
                "n-Hexane"
                "<30.0 ppm"
                ""
                ""
              ]
              [
                "Methanol"
                "<1000 ppm"
                ""
                ""
              ]
              [
                "n-Pentane"
                "<250 ppm"
                ""
                ""
              ]
              [
                "Propane"
                "<1000 ppm"
                ""
                ""
              ]
              [
                "Isopropyl Alcohol"
                "<1000 ppm"
                ""
                ""
              ]
              [
                "Toluene"
                "<85.0 ppm"
                ""
                ""
              ]
              [
                "Xylenes (ortho-, meta-, para-)"
                "<160 ppm"
                ""
                ""
              ]
            ]
            "md" => """
              | Analysis                       | Limit     | Result | Pass/Fail |\n
              | ------------------------------ | --------- | ------ | --------- |\n
              | Acetone                        | <180 ppm  |        |           |\n
              | Acetonitrile                   | <180 ppm  |        |           |\n
              | n-Butane                       | <500 ppm  |        |           |\n
              | Ethanol                        | <1000 ppm |        |           |\n
              | Ethyl Acetate                  | <1000 ppm |        |           |\n
              | Ethyl Ether                    | <1000 ppm |        |           |\n
              | Heptane                        | <500 ppm  |        |           |\n
              | n-Hexane                       | <30.0 ppm |        |           |\n
              | Methanol                       | <1000 ppm |        |           |\n
              | n-Pentane                      | <250 ppm  |        |           |\n
              | Propane                        | <1000 ppm |        |           |\n
              | Isopropyl Alcohol              | <1000 ppm |        |           |\n
              | Toluene                        | <85.0 ppm |        |           |\n
              | Xylenes (ortho-, meta-, para-) | <160 ppm  |        |           |
              """
            "isPerfectTable" => true
            "csv" => """
              "Analysis","Limit","Result","Pass/Fail"\n
              "Acetone","<180 ppm","",""\n
              "Acetonitrile","<180 ppm","",""\n
              "n-Butane","<500 ppm","",""\n
              "Ethanol","<1000 ppm","",""\n
              "Ethyl Acetate","<1000 ppm","",""\n
              "Ethyl Ether","<1000 ppm","",""\n
              "Heptane","<500 ppm","",""\n
              "n-Hexane","<30.0 ppm","",""\n
              "Methanol","<1000 ppm","",""\n
              "n-Pentane","<250 ppm","",""\n
              "Propane","<1000 ppm","",""\n
              "Isopropyl Alcohol","<1000 ppm","",""\n
              "Toluene","<85.0 ppm","",""\n
              "Xylenes (ortho-, meta-, para-)","<160 ppm","",""
              """
          ]
          [
            "type" => "text"
            "value" => "The Pass/Fail reporting designations are relative to the limits set forth by the Bureau of Cannabis Control Title 16, Division 42. *"
            "md" => "The Pass/Fail reporting designations are relative to the limits set forth by the Bureau of Cannabis Control Title 16, Division 42. *"
          ]
          [
            "type" => "heading"
            "lvl" => 3
            "value" => "Multi-Residue Analysis for hemp products"
            "md" => "### Multi-Residue Analysis for hemp products"
          ]
          [
            "type" => "table"
            "rows" => [
              [
                "Analysis"
                "Limit"
                "Result"
                "Pass/Fail"
              ]
              [
                "Cyprodinil"
                "<0.01 mg/kg"
                "<0.01 mg/kg"
                "Pass"
              ]
              [
                "Dichlorvos"
                "<0.05 mg/kg"
                "<0.05 mg/kg"
                "Pass"
              ]
              [
                "Dimethoate"
                "<0.01 mg/kg"
                "<0.01 mg/kg"
                "Pass"
              ]
              [
                "Fluopyram"
                "<0.01 mg/kg"
                "<0.01 mg/kg"
                "Pass"
              ]
            ]
            "md" => """
              | Analysis   | Limit       | Result      | Pass/Fail |\n
              | ---------- | ----------- | ----------- | --------- |\n
              | Cyprodinil | <0.01 mg/kg | <0.01 mg/kg | Pass      |\n
              | Dichlorvos | <0.05 mg/kg | <0.05 mg/kg | Pass      |\n
              | Dimethoate | <0.01 mg/kg | <0.01 mg/kg | Pass      |\n
              | Fluopyram  | <0.01 mg/kg | <0.01 mg/kg | Pass      |
              """
            "isPerfectTable" => true
            "csv" => """
              "Analysis","Limit","Result","Pass/Fail"\n
              "Cyprodinil","<0.01 mg/kg","<0.01 mg/kg","Pass"\n
              "Dichlorvos","<0.05 mg/kg","<0.05 mg/kg","Pass"\n
              "Dimethoate","<0.01 mg/kg","<0.01 mg/kg","Pass"\n
              "Fluopyram","<0.01 mg/kg","<0.01 mg/kg","Pass"
              """
          ]
          [
            "type" => "text"
            "value" => """
              * This analysis or component is not ISO accredited.\n
              \n
              Printed: 25-Apr-2025 6:32 pm  \n
              Page 3 of 9
              """
            "md" => """
              * This analysis or component is not ISO accredited.\n
              \n
              Printed: 25-Apr-2025 6:32 pm  \n
              Page 3 of 9
              """
          ]
        ]
        "status" => "OK"
        "originalOrientationAngle" => 0
        "links" => []
        "triggeredAutoMode" => false
        "parsingMode" => "multimodal-openai-gpt4o"
        "structuredData" => null
        "noStructuredContent" => false
        "noTextContent" => false
      ]
    ]
    "job_metadata" => [
      "credits_used" => 0
      "job_credits_usage" => 0
      "job_pages" => 1
      "job_auto_mode_triggered_pages" => 0
      "job_is_cache_hit" => false
    ]
  ]
  -labName: "Charlotte's Web, Inc."
  -sampleName: "CW 60mg Organic Orange Blossom 30mL"
  -sampleMatrix: "product"
  -internalPath: "/home/cbdextract/cbdextract.nw.agency/source/public/lab-reports/LabReportCOAPart3.jpg"
  -productType: "cannabis"
  -aILogs: Doctrine\ORM\PersistentCollection {#964 …}
  -products: Doctrine\ORM\PersistentCollection {#1018 …}
}