Redirect 302 redirect from GET @admin (c19202)

Forms

  • LabReport
    • ea_form_fieldset_01KEVX1ZM5NYYH476N23KJMMK6
    • name
    • sampleName
    • sampleMatrix
    • productType
    • labName
    • externalUrl
    • internalUrl
    • category
    • type
    • project
    • state
    • debugData
    • markdownContent
    • ea_form_fieldset_close_01KEVX1ZM5NYYH476N23KJMMK7
    • _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: 662
  -name: "Lab Report Page 4"
  -externalUrl: "https://purecbdnc.com/cdn/shop/files/CBDistillery_CBD-Full-Spectrum-Relief-_-Relax-Softgels-30mgCOA4_3735d84c-d65f-49ae-9609-35e32538bb0a.jpg"
  -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 @1747758787 {#848
    date: 2025-05-20 16:33:07.0 UTC (+00:00)
  }
  -updatedAt: DateTime @1747744416 {#845
    date: 2025-05-20 12:33:36.0 UTC (+00:00)
  }
  -category: null
  -state: "processed"
  -expiryDate: ""
  -extractionDate: "2022-11-03"
  -thcaPercentage: "0"
  -totalThcPercentage: "0"
  -deltaNinePercentage: "0"
  -deltaNineWithThcaCombined: "0"
  -comments: null
  -internalUrl: "https://cbdextract.nw.agency/lab-reports/LabReportPage4.jpg"
  -markdownContent: ""# LIMITS OF QUANTITATION\n\n## Residual Solvents: ResSolv.2\n\n| Analyte                     | LoQ       | Analyte               | LoQ       |\n| --------------------------- | --------- | --------------------- | --------- |\n| (+\/-)-2-Butanol             | < 10 ppm  | Ethyl Acetate         | < 50 ppm  |\n| 1,1-Dichloroethene          | < 5 ppm   | Ethyl benzene         | < 25 ppm  |\n| 1,2-Dichloroethane          | < 2 ppm   | Ethylene Glycol       | < 100 ppm |\n| 1,4-Dioxane                 | < 25 ppm  | Ethylene Oxide        | < 50 ppm  |\n| 2,2-Dimethylbutane          | < 25 ppm  | Heptane               | < 50 ppm  |\n| 2,3-Dimethylbutane          | < 25 ppm  | Hexane                | < 10 ppm  |\n| 2-Ethoxyethanol             | < 25 ppm  | Isobutane             | < 100 ppm |\n| 2-Methylbutane (Isopentane) | < 75 ppm  | Isopropyl acetate     | < 10 ppm  |\n| 2-Methylpentane             | < 25 ppm  | Methanol              | < 50 ppm  |\n| 2-Propanol                  | < 50 ppm  | Methylene Chloride    | < 50 ppm  |\n| 3-Methylpentane             | < 25 ppm  | N,N-Dimethylformamide | < 10 ppm  |\n| Acetone                     | < 50 ppm  | n-Butane              | < 100 ppm |\n| Acetonitrile                | < 50 ppm  | Neopentane            | < 100 ppm |\n| Benzene                     | < 1 ppm   | Pentane               | < 50 ppm  |\n| Chloroform                  | < 10 ppm  | Propane               | < 100 ppm |\n| Cumene                      | < 100 ppm | Tetrahydrofuran       | < 10 ppm  |\n| Cyclohexane                 | < 50 ppm  | Toluene               | < 50 ppm  |\n| Diethyl ether               | < 50 ppm  | Trichloroethene       | < 50 ppm  |\n| Ethanol                     | < 50 ppm  | Xylenes (p-, m-, o-)  | < 50 ppm  |\n| Nitromethane                | < 25 ppm  | 1-Propanol            | < 100 ppm |\n| 1,2-Dimethoxyethane         | < 10 ppm  | 2-Methyl-1-Propanol   | < 100 ppm |\n| Pyridine                    | < 10 ppm  | 1-Butanol             | < 50 ppm  |\n| 2-Methoxyethanol            | < 50 ppm  | Propyl Acetate        | < 50 ppm  |\n| Formamide                   | < 50 ppm  | 3-Methyl-1-Butanol    | < 100 ppm |\n| N,N-Dimethylacetamide       | < 100 ppm | Isobutyl Acetate      | < 50 ppm  |\n| Ethyl Ether                 | < 100 ppm | 1-Pentanol            | < 100 ppm |\n| Methyl Acetate              | < 100 ppm | Butyl Acetate         | < 50 ppm  |\n| Tert-Butylmethyl Ether      | < 50 ppm  | Anisole               | < 50 ppm  |\n| Methylbutyl Ketone          | < 50 ppm  | N-Methylpyrrolidone   | < 50 ppm  |\n| Methylbutyl Ketone          | < 25 ppm  | Tetralin              | < 10 ppm  |\n| Methylisobutyl Ketone       | < 100 ppm | Sulfolane             | < 10 ppm  |\n""
  -debugData: null
  -jsonContent: [
    "pages" => [
      [
        "page" => 1
        "md" => """
          # LIMITS OF QUANTITATION\n
          \n
          ## Residual Solvents: ResSolv.2\n
          \n
          | Analyte                     | LoQ       | Analyte               | LoQ       |\n
          | --------------------------- | --------- | --------------------- | --------- |\n
          | (+/-)-2-Butanol             | < 10 ppm  | Ethyl Acetate         | < 50 ppm  |\n
          | 1,1-Dichloroethene          | < 5 ppm   | Ethyl benzene         | < 25 ppm  |\n
          | 1,2-Dichloroethane          | < 2 ppm   | Ethylene Glycol       | < 100 ppm |\n
          | 1,4-Dioxane                 | < 25 ppm  | Ethylene Oxide        | < 50 ppm  |\n
          | 2,2-Dimethylbutane          | < 25 ppm  | Heptane               | < 50 ppm  |\n
          | 2,3-Dimethylbutane          | < 25 ppm  | Hexane                | < 10 ppm  |\n
          | 2-Ethoxyethanol             | < 25 ppm  | Isobutane             | < 100 ppm |\n
          | 2-Methylbutane (Isopentane) | < 75 ppm  | Isopropyl acetate     | < 10 ppm  |\n
          | 2-Methylpentane             | < 25 ppm  | Methanol              | < 50 ppm  |\n
          | 2-Propanol                  | < 50 ppm  | Methylene Chloride    | < 50 ppm  |\n
          | 3-Methylpentane             | < 25 ppm  | N,N-Dimethylformamide | < 10 ppm  |\n
          | Acetone                     | < 50 ppm  | n-Butane              | < 100 ppm |\n
          | Acetonitrile                | < 50 ppm  | Neopentane            | < 100 ppm |\n
          | Benzene                     | < 1 ppm   | Pentane               | < 50 ppm  |\n
          | Chloroform                  | < 10 ppm  | Propane               | < 100 ppm |\n
          | Cumene                      | < 100 ppm | Tetrahydrofuran       | < 10 ppm  |\n
          | Cyclohexane                 | < 50 ppm  | Toluene               | < 50 ppm  |\n
          | Diethyl ether               | < 50 ppm  | Trichloroethene       | < 50 ppm  |\n
          | Ethanol                     | < 50 ppm  | Xylenes (p-, m-, o-)  | < 50 ppm  |\n
          | Nitromethane                | < 25 ppm  | 1-Propanol            | < 100 ppm |\n
          | 1,2-Dimethoxyethane         | < 10 ppm  | 2-Methyl-1-Propanol   | < 100 ppm |\n
          | Pyridine                    | < 10 ppm  | 1-Butanol             | < 50 ppm  |\n
          | 2-Methoxyethanol            | < 50 ppm  | Propyl Acetate        | < 50 ppm  |\n
          | Formamide                   | < 50 ppm  | 3-Methyl-1-Butanol    | < 100 ppm |\n
          | N,N-Dimethylacetamide       | < 100 ppm | Isobutyl Acetate      | < 50 ppm  |\n
          | Ethyl Ether                 | < 100 ppm | 1-Pentanol            | < 100 ppm |\n
          | Methyl Acetate              | < 100 ppm | Butyl Acetate         | < 50 ppm  |\n
          | Tert-Butylmethyl Ether      | < 50 ppm  | Anisole               | < 50 ppm  |\n
          | Methylbutyl Ketone          | < 50 ppm  | N-Methylpyrrolidone   | < 50 ppm  |\n
          | Methylbutyl Ketone          | < 25 ppm  | Tetralin              | < 10 ppm  |\n
          | Methylisobutyl Ketone       | < 100 ppm | Sulfolane             | < 10 ppm  |\n
          """
        "images" => [
          [
            "name" => "page_1.jpg"
            "height" => 0
            "width" => 0
            "x" => 0
            "y" => 0
            "type" => "full_page_screenshot"
          ]
        ]
        "charts" => []
        "items" => [
          [
            "type" => "heading"
            "lvl" => 1
            "value" => "LIMITS OF QUANTITATION"
            "md" => "# LIMITS OF QUANTITATION"
          ]
          [
            "type" => "heading"
            "lvl" => 2
            "value" => "Residual Solvents: ResSolv.2"
            "md" => "## Residual Solvents: ResSolv.2"
          ]
          [
            "type" => "table"
            "rows" => [
              [
                "Analyte"
                "LoQ"
                "Analyte"
                "LoQ"
              ]
              [
                "(+/-)-2-Butanol"
                "< 10 ppm"
                "Ethyl Acetate"
                "< 50 ppm"
              ]
              [
                "1,1-Dichloroethene"
                "< 5 ppm"
                "Ethyl benzene"
                "< 25 ppm"
              ]
              [
                "1,2-Dichloroethane"
                "< 2 ppm"
                "Ethylene Glycol"
                "< 100 ppm"
              ]
              [
                "1,4-Dioxane"
                "< 25 ppm"
                "Ethylene Oxide"
                "< 50 ppm"
              ]
              [
                "2,2-Dimethylbutane"
                "< 25 ppm"
                "Heptane"
                "< 50 ppm"
              ]
              [
                "2,3-Dimethylbutane"
                "< 25 ppm"
                "Hexane"
                "< 10 ppm"
              ]
              [
                "2-Ethoxyethanol"
                "< 25 ppm"
                "Isobutane"
                "< 100 ppm"
              ]
              [
                "2-Methylbutane (Isopentane)"
                "< 75 ppm"
                "Isopropyl acetate"
                "< 10 ppm"
              ]
              [
                "2-Methylpentane"
                "< 25 ppm"
                "Methanol"
                "< 50 ppm"
              ]
              [
                "2-Propanol"
                "< 50 ppm"
                "Methylene Chloride"
                "< 50 ppm"
              ]
              [
                "3-Methylpentane"
                "< 25 ppm"
                "N,N-Dimethylformamide"
                "< 10 ppm"
              ]
              [
                "Acetone"
                "< 50 ppm"
                "n-Butane"
                "< 100 ppm"
              ]
              [
                "Acetonitrile"
                "< 50 ppm"
                "Neopentane"
                "< 100 ppm"
              ]
              [
                "Benzene"
                "< 1 ppm"
                "Pentane"
                "< 50 ppm"
              ]
              [
                "Chloroform"
                "< 10 ppm"
                "Propane"
                "< 100 ppm"
              ]
              [
                "Cumene"
                "< 100 ppm"
                "Tetrahydrofuran"
                "< 10 ppm"
              ]
              [
                "Cyclohexane"
                "< 50 ppm"
                "Toluene"
                "< 50 ppm"
              ]
              [
                "Diethyl ether"
                "< 50 ppm"
                "Trichloroethene"
                "< 50 ppm"
              ]
              [
                "Ethanol"
                "< 50 ppm"
                "Xylenes (p-, m-, o-)"
                "< 50 ppm"
              ]
              [
                "Nitromethane"
                "< 25 ppm"
                "1-Propanol"
                "< 100 ppm"
              ]
              [
                "1,2-Dimethoxyethane"
                "< 10 ppm"
                "2-Methyl-1-Propanol"
                "< 100 ppm"
              ]
              [
                "Pyridine"
                "< 10 ppm"
                "1-Butanol"
                "< 50 ppm"
              ]
              [
                "2-Methoxyethanol"
                "< 50 ppm"
                "Propyl Acetate"
                "< 50 ppm"
              ]
              [
                "Formamide"
                "< 50 ppm"
                "3-Methyl-1-Butanol"
                "< 100 ppm"
              ]
              [
                "N,N-Dimethylacetamide"
                "< 100 ppm"
                "Isobutyl Acetate"
                "< 50 ppm"
              ]
              [
                "Ethyl Ether"
                "< 100 ppm"
                "1-Pentanol"
                "< 100 ppm"
              ]
              [
                "Methyl Acetate"
                "< 100 ppm"
                "Butyl Acetate"
                "< 50 ppm"
              ]
              [
                "Tert-Butylmethyl Ether"
                "< 50 ppm"
                "Anisole"
                "< 50 ppm"
              ]
              [
                "Methylbutyl Ketone"
                "< 50 ppm"
                "N-Methylpyrrolidone"
                "< 50 ppm"
              ]
              [
                "Methylbutyl Ketone"
                "< 25 ppm"
                "Tetralin"
                "< 10 ppm"
              ]
              [
                "Methylisobutyl Ketone"
                "< 100 ppm"
                "Sulfolane"
                "< 10 ppm"
              ]
            ]
            "md" => """
              | Analyte                     | LoQ       | Analyte               | LoQ       |\n
              | --------------------------- | --------- | --------------------- | --------- |\n
              | (+/-)-2-Butanol             | < 10 ppm  | Ethyl Acetate         | < 50 ppm  |\n
              | 1,1-Dichloroethene          | < 5 ppm   | Ethyl benzene         | < 25 ppm  |\n
              | 1,2-Dichloroethane          | < 2 ppm   | Ethylene Glycol       | < 100 ppm |\n
              | 1,4-Dioxane                 | < 25 ppm  | Ethylene Oxide        | < 50 ppm  |\n
              | 2,2-Dimethylbutane          | < 25 ppm  | Heptane               | < 50 ppm  |\n
              | 2,3-Dimethylbutane          | < 25 ppm  | Hexane                | < 10 ppm  |\n
              | 2-Ethoxyethanol             | < 25 ppm  | Isobutane             | < 100 ppm |\n
              | 2-Methylbutane (Isopentane) | < 75 ppm  | Isopropyl acetate     | < 10 ppm  |\n
              | 2-Methylpentane             | < 25 ppm  | Methanol              | < 50 ppm  |\n
              | 2-Propanol                  | < 50 ppm  | Methylene Chloride    | < 50 ppm  |\n
              | 3-Methylpentane             | < 25 ppm  | N,N-Dimethylformamide | < 10 ppm  |\n
              | Acetone                     | < 50 ppm  | n-Butane              | < 100 ppm |\n
              | Acetonitrile                | < 50 ppm  | Neopentane            | < 100 ppm |\n
              | Benzene                     | < 1 ppm   | Pentane               | < 50 ppm  |\n
              | Chloroform                  | < 10 ppm  | Propane               | < 100 ppm |\n
              | Cumene                      | < 100 ppm | Tetrahydrofuran       | < 10 ppm  |\n
              | Cyclohexane                 | < 50 ppm  | Toluene               | < 50 ppm  |\n
              | Diethyl ether               | < 50 ppm  | Trichloroethene       | < 50 ppm  |\n
              | Ethanol                     | < 50 ppm  | Xylenes (p-, m-, o-)  | < 50 ppm  |\n
              | Nitromethane                | < 25 ppm  | 1-Propanol            | < 100 ppm |\n
              | 1,2-Dimethoxyethane         | < 10 ppm  | 2-Methyl-1-Propanol   | < 100 ppm |\n
              | Pyridine                    | < 10 ppm  | 1-Butanol             | < 50 ppm  |\n
              | 2-Methoxyethanol            | < 50 ppm  | Propyl Acetate        | < 50 ppm  |\n
              | Formamide                   | < 50 ppm  | 3-Methyl-1-Butanol    | < 100 ppm |\n
              | N,N-Dimethylacetamide       | < 100 ppm | Isobutyl Acetate      | < 50 ppm  |\n
              | Ethyl Ether                 | < 100 ppm | 1-Pentanol            | < 100 ppm |\n
              | Methyl Acetate              | < 100 ppm | Butyl Acetate         | < 50 ppm  |\n
              | Tert-Butylmethyl Ether      | < 50 ppm  | Anisole               | < 50 ppm  |\n
              | Methylbutyl Ketone          | < 50 ppm  | N-Methylpyrrolidone   | < 50 ppm  |\n
              | Methylbutyl Ketone          | < 25 ppm  | Tetralin              | < 10 ppm  |\n
              | Methylisobutyl Ketone       | < 100 ppm | Sulfolane             | < 10 ppm  |
              """
            "isPerfectTable" => true
            "csv" => """
              "Analyte","LoQ","Analyte","LoQ"\n
              "(+/-)-2-Butanol","< 10 ppm","Ethyl Acetate","< 50 ppm"\n
              "1,1-Dichloroethene","< 5 ppm","Ethyl benzene","< 25 ppm"\n
              "1,2-Dichloroethane","< 2 ppm","Ethylene Glycol","< 100 ppm"\n
              "1,4-Dioxane","< 25 ppm","Ethylene Oxide","< 50 ppm"\n
              "2,2-Dimethylbutane","< 25 ppm","Heptane","< 50 ppm"\n
              "2,3-Dimethylbutane","< 25 ppm","Hexane","< 10 ppm"\n
              "2-Ethoxyethanol","< 25 ppm","Isobutane","< 100 ppm"\n
              "2-Methylbutane (Isopentane)","< 75 ppm","Isopropyl acetate","< 10 ppm"\n
              "2-Methylpentane","< 25 ppm","Methanol","< 50 ppm"\n
              "2-Propanol","< 50 ppm","Methylene Chloride","< 50 ppm"\n
              "3-Methylpentane","< 25 ppm","N,N-Dimethylformamide","< 10 ppm"\n
              "Acetone","< 50 ppm","n-Butane","< 100 ppm"\n
              "Acetonitrile","< 50 ppm","Neopentane","< 100 ppm"\n
              "Benzene","< 1 ppm","Pentane","< 50 ppm"\n
              "Chloroform","< 10 ppm","Propane","< 100 ppm"\n
              "Cumene","< 100 ppm","Tetrahydrofuran","< 10 ppm"\n
              "Cyclohexane","< 50 ppm","Toluene","< 50 ppm"\n
              "Diethyl ether","< 50 ppm","Trichloroethene","< 50 ppm"\n
              "Ethanol","< 50 ppm","Xylenes (p-, m-, o-)","< 50 ppm"\n
              "Nitromethane","< 25 ppm","1-Propanol","< 100 ppm"\n
              "1,2-Dimethoxyethane","< 10 ppm","2-Methyl-1-Propanol","< 100 ppm"\n
              "Pyridine","< 10 ppm","1-Butanol","< 50 ppm"\n
              "2-Methoxyethanol","< 50 ppm","Propyl Acetate","< 50 ppm"\n
              "Formamide","< 50 ppm","3-Methyl-1-Butanol","< 100 ppm"\n
              "N,N-Dimethylacetamide","< 100 ppm","Isobutyl Acetate","< 50 ppm"\n
              "Ethyl Ether","< 100 ppm","1-Pentanol","< 100 ppm"\n
              "Methyl Acetate","< 100 ppm","Butyl Acetate","< 50 ppm"\n
              "Tert-Butylmethyl Ether","< 50 ppm","Anisole","< 50 ppm"\n
              "Methylbutyl Ketone","< 50 ppm","N-Methylpyrrolidone","< 50 ppm"\n
              "Methylbutyl Ketone","< 25 ppm","Tetralin","< 10 ppm"\n
              "Methylisobutyl Ketone","< 100 ppm","Sulfolane","< 10 ppm"
              """
          ]
        ]
        "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" => 0
      "job_auto_mode_triggered_pages" => 0
      "job_is_cache_hit" => true
    ]
  ]
  -labName: "Sample Testing Laboratories Inc."
  -sampleName: "Cannabis Product XYZ"
  -sampleMatrix: "Concentrated Oil"
  -internalPath: "/home/cbdextract/cbdextract.nw.agency/source/public/lab-reports/LabReportPage4.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: 662
  -name: "Lab Report Page 4"
  -externalUrl: "https://purecbdnc.com/cdn/shop/files/CBDistillery_CBD-Full-Spectrum-Relief-_-Relax-Softgels-30mgCOA4_3735d84c-d65f-49ae-9609-35e32538bb0a.jpg"
  -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 @1747758787 {#848
    date: 2025-05-20 16:33:07.0 UTC (+00:00)
  }
  -updatedAt: DateTime @1747744416 {#845
    date: 2025-05-20 12:33:36.0 UTC (+00:00)
  }
  -category: null
  -state: "processed"
  -expiryDate: ""
  -extractionDate: "2022-11-03"
  -thcaPercentage: "0"
  -totalThcPercentage: "0"
  -deltaNinePercentage: "0"
  -deltaNineWithThcaCombined: "0"
  -comments: null
  -internalUrl: "https://cbdextract.nw.agency/lab-reports/LabReportPage4.jpg"
  -markdownContent: ""# LIMITS OF QUANTITATION\n\n## Residual Solvents: ResSolv.2\n\n| Analyte                     | LoQ       | Analyte               | LoQ       |\n| --------------------------- | --------- | --------------------- | --------- |\n| (+\/-)-2-Butanol             | < 10 ppm  | Ethyl Acetate         | < 50 ppm  |\n| 1,1-Dichloroethene          | < 5 ppm   | Ethyl benzene         | < 25 ppm  |\n| 1,2-Dichloroethane          | < 2 ppm   | Ethylene Glycol       | < 100 ppm |\n| 1,4-Dioxane                 | < 25 ppm  | Ethylene Oxide        | < 50 ppm  |\n| 2,2-Dimethylbutane          | < 25 ppm  | Heptane               | < 50 ppm  |\n| 2,3-Dimethylbutane          | < 25 ppm  | Hexane                | < 10 ppm  |\n| 2-Ethoxyethanol             | < 25 ppm  | Isobutane             | < 100 ppm |\n| 2-Methylbutane (Isopentane) | < 75 ppm  | Isopropyl acetate     | < 10 ppm  |\n| 2-Methylpentane             | < 25 ppm  | Methanol              | < 50 ppm  |\n| 2-Propanol                  | < 50 ppm  | Methylene Chloride    | < 50 ppm  |\n| 3-Methylpentane             | < 25 ppm  | N,N-Dimethylformamide | < 10 ppm  |\n| Acetone                     | < 50 ppm  | n-Butane              | < 100 ppm |\n| Acetonitrile                | < 50 ppm  | Neopentane            | < 100 ppm |\n| Benzene                     | < 1 ppm   | Pentane               | < 50 ppm  |\n| Chloroform                  | < 10 ppm  | Propane               | < 100 ppm |\n| Cumene                      | < 100 ppm | Tetrahydrofuran       | < 10 ppm  |\n| Cyclohexane                 | < 50 ppm  | Toluene               | < 50 ppm  |\n| Diethyl ether               | < 50 ppm  | Trichloroethene       | < 50 ppm  |\n| Ethanol                     | < 50 ppm  | Xylenes (p-, m-, o-)  | < 50 ppm  |\n| Nitromethane                | < 25 ppm  | 1-Propanol            | < 100 ppm |\n| 1,2-Dimethoxyethane         | < 10 ppm  | 2-Methyl-1-Propanol   | < 100 ppm |\n| Pyridine                    | < 10 ppm  | 1-Butanol             | < 50 ppm  |\n| 2-Methoxyethanol            | < 50 ppm  | Propyl Acetate        | < 50 ppm  |\n| Formamide                   | < 50 ppm  | 3-Methyl-1-Butanol    | < 100 ppm |\n| N,N-Dimethylacetamide       | < 100 ppm | Isobutyl Acetate      | < 50 ppm  |\n| Ethyl Ether                 | < 100 ppm | 1-Pentanol            | < 100 ppm |\n| Methyl Acetate              | < 100 ppm | Butyl Acetate         | < 50 ppm  |\n| Tert-Butylmethyl Ether      | < 50 ppm  | Anisole               | < 50 ppm  |\n| Methylbutyl Ketone          | < 50 ppm  | N-Methylpyrrolidone   | < 50 ppm  |\n| Methylbutyl Ketone          | < 25 ppm  | Tetralin              | < 10 ppm  |\n| Methylisobutyl Ketone       | < 100 ppm | Sulfolane             | < 10 ppm  |\n""
  -debugData: null
  -jsonContent: [
    "pages" => [
      [
        "page" => 1
        "md" => """
          # LIMITS OF QUANTITATION\n
          \n
          ## Residual Solvents: ResSolv.2\n
          \n
          | Analyte                     | LoQ       | Analyte               | LoQ       |\n
          | --------------------------- | --------- | --------------------- | --------- |\n
          | (+/-)-2-Butanol             | < 10 ppm  | Ethyl Acetate         | < 50 ppm  |\n
          | 1,1-Dichloroethene          | < 5 ppm   | Ethyl benzene         | < 25 ppm  |\n
          | 1,2-Dichloroethane          | < 2 ppm   | Ethylene Glycol       | < 100 ppm |\n
          | 1,4-Dioxane                 | < 25 ppm  | Ethylene Oxide        | < 50 ppm  |\n
          | 2,2-Dimethylbutane          | < 25 ppm  | Heptane               | < 50 ppm  |\n
          | 2,3-Dimethylbutane          | < 25 ppm  | Hexane                | < 10 ppm  |\n
          | 2-Ethoxyethanol             | < 25 ppm  | Isobutane             | < 100 ppm |\n
          | 2-Methylbutane (Isopentane) | < 75 ppm  | Isopropyl acetate     | < 10 ppm  |\n
          | 2-Methylpentane             | < 25 ppm  | Methanol              | < 50 ppm  |\n
          | 2-Propanol                  | < 50 ppm  | Methylene Chloride    | < 50 ppm  |\n
          | 3-Methylpentane             | < 25 ppm  | N,N-Dimethylformamide | < 10 ppm  |\n
          | Acetone                     | < 50 ppm  | n-Butane              | < 100 ppm |\n
          | Acetonitrile                | < 50 ppm  | Neopentane            | < 100 ppm |\n
          | Benzene                     | < 1 ppm   | Pentane               | < 50 ppm  |\n
          | Chloroform                  | < 10 ppm  | Propane               | < 100 ppm |\n
          | Cumene                      | < 100 ppm | Tetrahydrofuran       | < 10 ppm  |\n
          | Cyclohexane                 | < 50 ppm  | Toluene               | < 50 ppm  |\n
          | Diethyl ether               | < 50 ppm  | Trichloroethene       | < 50 ppm  |\n
          | Ethanol                     | < 50 ppm  | Xylenes (p-, m-, o-)  | < 50 ppm  |\n
          | Nitromethane                | < 25 ppm  | 1-Propanol            | < 100 ppm |\n
          | 1,2-Dimethoxyethane         | < 10 ppm  | 2-Methyl-1-Propanol   | < 100 ppm |\n
          | Pyridine                    | < 10 ppm  | 1-Butanol             | < 50 ppm  |\n
          | 2-Methoxyethanol            | < 50 ppm  | Propyl Acetate        | < 50 ppm  |\n
          | Formamide                   | < 50 ppm  | 3-Methyl-1-Butanol    | < 100 ppm |\n
          | N,N-Dimethylacetamide       | < 100 ppm | Isobutyl Acetate      | < 50 ppm  |\n
          | Ethyl Ether                 | < 100 ppm | 1-Pentanol            | < 100 ppm |\n
          | Methyl Acetate              | < 100 ppm | Butyl Acetate         | < 50 ppm  |\n
          | Tert-Butylmethyl Ether      | < 50 ppm  | Anisole               | < 50 ppm  |\n
          | Methylbutyl Ketone          | < 50 ppm  | N-Methylpyrrolidone   | < 50 ppm  |\n
          | Methylbutyl Ketone          | < 25 ppm  | Tetralin              | < 10 ppm  |\n
          | Methylisobutyl Ketone       | < 100 ppm | Sulfolane             | < 10 ppm  |\n
          """
        "images" => [
          [
            "name" => "page_1.jpg"
            "height" => 0
            "width" => 0
            "x" => 0
            "y" => 0
            "type" => "full_page_screenshot"
          ]
        ]
        "charts" => []
        "items" => [
          [
            "type" => "heading"
            "lvl" => 1
            "value" => "LIMITS OF QUANTITATION"
            "md" => "# LIMITS OF QUANTITATION"
          ]
          [
            "type" => "heading"
            "lvl" => 2
            "value" => "Residual Solvents: ResSolv.2"
            "md" => "## Residual Solvents: ResSolv.2"
          ]
          [
            "type" => "table"
            "rows" => [
              [
                "Analyte"
                "LoQ"
                "Analyte"
                "LoQ"
              ]
              [
                "(+/-)-2-Butanol"
                "< 10 ppm"
                "Ethyl Acetate"
                "< 50 ppm"
              ]
              [
                "1,1-Dichloroethene"
                "< 5 ppm"
                "Ethyl benzene"
                "< 25 ppm"
              ]
              [
                "1,2-Dichloroethane"
                "< 2 ppm"
                "Ethylene Glycol"
                "< 100 ppm"
              ]
              [
                "1,4-Dioxane"
                "< 25 ppm"
                "Ethylene Oxide"
                "< 50 ppm"
              ]
              [
                "2,2-Dimethylbutane"
                "< 25 ppm"
                "Heptane"
                "< 50 ppm"
              ]
              [
                "2,3-Dimethylbutane"
                "< 25 ppm"
                "Hexane"
                "< 10 ppm"
              ]
              [
                "2-Ethoxyethanol"
                "< 25 ppm"
                "Isobutane"
                "< 100 ppm"
              ]
              [
                "2-Methylbutane (Isopentane)"
                "< 75 ppm"
                "Isopropyl acetate"
                "< 10 ppm"
              ]
              [
                "2-Methylpentane"
                "< 25 ppm"
                "Methanol"
                "< 50 ppm"
              ]
              [
                "2-Propanol"
                "< 50 ppm"
                "Methylene Chloride"
                "< 50 ppm"
              ]
              [
                "3-Methylpentane"
                "< 25 ppm"
                "N,N-Dimethylformamide"
                "< 10 ppm"
              ]
              [
                "Acetone"
                "< 50 ppm"
                "n-Butane"
                "< 100 ppm"
              ]
              [
                "Acetonitrile"
                "< 50 ppm"
                "Neopentane"
                "< 100 ppm"
              ]
              [
                "Benzene"
                "< 1 ppm"
                "Pentane"
                "< 50 ppm"
              ]
              [
                "Chloroform"
                "< 10 ppm"
                "Propane"
                "< 100 ppm"
              ]
              [
                "Cumene"
                "< 100 ppm"
                "Tetrahydrofuran"
                "< 10 ppm"
              ]
              [
                "Cyclohexane"
                "< 50 ppm"
                "Toluene"
                "< 50 ppm"
              ]
              [
                "Diethyl ether"
                "< 50 ppm"
                "Trichloroethene"
                "< 50 ppm"
              ]
              [
                "Ethanol"
                "< 50 ppm"
                "Xylenes (p-, m-, o-)"
                "< 50 ppm"
              ]
              [
                "Nitromethane"
                "< 25 ppm"
                "1-Propanol"
                "< 100 ppm"
              ]
              [
                "1,2-Dimethoxyethane"
                "< 10 ppm"
                "2-Methyl-1-Propanol"
                "< 100 ppm"
              ]
              [
                "Pyridine"
                "< 10 ppm"
                "1-Butanol"
                "< 50 ppm"
              ]
              [
                "2-Methoxyethanol"
                "< 50 ppm"
                "Propyl Acetate"
                "< 50 ppm"
              ]
              [
                "Formamide"
                "< 50 ppm"
                "3-Methyl-1-Butanol"
                "< 100 ppm"
              ]
              [
                "N,N-Dimethylacetamide"
                "< 100 ppm"
                "Isobutyl Acetate"
                "< 50 ppm"
              ]
              [
                "Ethyl Ether"
                "< 100 ppm"
                "1-Pentanol"
                "< 100 ppm"
              ]
              [
                "Methyl Acetate"
                "< 100 ppm"
                "Butyl Acetate"
                "< 50 ppm"
              ]
              [
                "Tert-Butylmethyl Ether"
                "< 50 ppm"
                "Anisole"
                "< 50 ppm"
              ]
              [
                "Methylbutyl Ketone"
                "< 50 ppm"
                "N-Methylpyrrolidone"
                "< 50 ppm"
              ]
              [
                "Methylbutyl Ketone"
                "< 25 ppm"
                "Tetralin"
                "< 10 ppm"
              ]
              [
                "Methylisobutyl Ketone"
                "< 100 ppm"
                "Sulfolane"
                "< 10 ppm"
              ]
            ]
            "md" => """
              | Analyte                     | LoQ       | Analyte               | LoQ       |\n
              | --------------------------- | --------- | --------------------- | --------- |\n
              | (+/-)-2-Butanol             | < 10 ppm  | Ethyl Acetate         | < 50 ppm  |\n
              | 1,1-Dichloroethene          | < 5 ppm   | Ethyl benzene         | < 25 ppm  |\n
              | 1,2-Dichloroethane          | < 2 ppm   | Ethylene Glycol       | < 100 ppm |\n
              | 1,4-Dioxane                 | < 25 ppm  | Ethylene Oxide        | < 50 ppm  |\n
              | 2,2-Dimethylbutane          | < 25 ppm  | Heptane               | < 50 ppm  |\n
              | 2,3-Dimethylbutane          | < 25 ppm  | Hexane                | < 10 ppm  |\n
              | 2-Ethoxyethanol             | < 25 ppm  | Isobutane             | < 100 ppm |\n
              | 2-Methylbutane (Isopentane) | < 75 ppm  | Isopropyl acetate     | < 10 ppm  |\n
              | 2-Methylpentane             | < 25 ppm  | Methanol              | < 50 ppm  |\n
              | 2-Propanol                  | < 50 ppm  | Methylene Chloride    | < 50 ppm  |\n
              | 3-Methylpentane             | < 25 ppm  | N,N-Dimethylformamide | < 10 ppm  |\n
              | Acetone                     | < 50 ppm  | n-Butane              | < 100 ppm |\n
              | Acetonitrile                | < 50 ppm  | Neopentane            | < 100 ppm |\n
              | Benzene                     | < 1 ppm   | Pentane               | < 50 ppm  |\n
              | Chloroform                  | < 10 ppm  | Propane               | < 100 ppm |\n
              | Cumene                      | < 100 ppm | Tetrahydrofuran       | < 10 ppm  |\n
              | Cyclohexane                 | < 50 ppm  | Toluene               | < 50 ppm  |\n
              | Diethyl ether               | < 50 ppm  | Trichloroethene       | < 50 ppm  |\n
              | Ethanol                     | < 50 ppm  | Xylenes (p-, m-, o-)  | < 50 ppm  |\n
              | Nitromethane                | < 25 ppm  | 1-Propanol            | < 100 ppm |\n
              | 1,2-Dimethoxyethane         | < 10 ppm  | 2-Methyl-1-Propanol   | < 100 ppm |\n
              | Pyridine                    | < 10 ppm  | 1-Butanol             | < 50 ppm  |\n
              | 2-Methoxyethanol            | < 50 ppm  | Propyl Acetate        | < 50 ppm  |\n
              | Formamide                   | < 50 ppm  | 3-Methyl-1-Butanol    | < 100 ppm |\n
              | N,N-Dimethylacetamide       | < 100 ppm | Isobutyl Acetate      | < 50 ppm  |\n
              | Ethyl Ether                 | < 100 ppm | 1-Pentanol            | < 100 ppm |\n
              | Methyl Acetate              | < 100 ppm | Butyl Acetate         | < 50 ppm  |\n
              | Tert-Butylmethyl Ether      | < 50 ppm  | Anisole               | < 50 ppm  |\n
              | Methylbutyl Ketone          | < 50 ppm  | N-Methylpyrrolidone   | < 50 ppm  |\n
              | Methylbutyl Ketone          | < 25 ppm  | Tetralin              | < 10 ppm  |\n
              | Methylisobutyl Ketone       | < 100 ppm | Sulfolane             | < 10 ppm  |
              """
            "isPerfectTable" => true
            "csv" => """
              "Analyte","LoQ","Analyte","LoQ"\n
              "(+/-)-2-Butanol","< 10 ppm","Ethyl Acetate","< 50 ppm"\n
              "1,1-Dichloroethene","< 5 ppm","Ethyl benzene","< 25 ppm"\n
              "1,2-Dichloroethane","< 2 ppm","Ethylene Glycol","< 100 ppm"\n
              "1,4-Dioxane","< 25 ppm","Ethylene Oxide","< 50 ppm"\n
              "2,2-Dimethylbutane","< 25 ppm","Heptane","< 50 ppm"\n
              "2,3-Dimethylbutane","< 25 ppm","Hexane","< 10 ppm"\n
              "2-Ethoxyethanol","< 25 ppm","Isobutane","< 100 ppm"\n
              "2-Methylbutane (Isopentane)","< 75 ppm","Isopropyl acetate","< 10 ppm"\n
              "2-Methylpentane","< 25 ppm","Methanol","< 50 ppm"\n
              "2-Propanol","< 50 ppm","Methylene Chloride","< 50 ppm"\n
              "3-Methylpentane","< 25 ppm","N,N-Dimethylformamide","< 10 ppm"\n
              "Acetone","< 50 ppm","n-Butane","< 100 ppm"\n
              "Acetonitrile","< 50 ppm","Neopentane","< 100 ppm"\n
              "Benzene","< 1 ppm","Pentane","< 50 ppm"\n
              "Chloroform","< 10 ppm","Propane","< 100 ppm"\n
              "Cumene","< 100 ppm","Tetrahydrofuran","< 10 ppm"\n
              "Cyclohexane","< 50 ppm","Toluene","< 50 ppm"\n
              "Diethyl ether","< 50 ppm","Trichloroethene","< 50 ppm"\n
              "Ethanol","< 50 ppm","Xylenes (p-, m-, o-)","< 50 ppm"\n
              "Nitromethane","< 25 ppm","1-Propanol","< 100 ppm"\n
              "1,2-Dimethoxyethane","< 10 ppm","2-Methyl-1-Propanol","< 100 ppm"\n
              "Pyridine","< 10 ppm","1-Butanol","< 50 ppm"\n
              "2-Methoxyethanol","< 50 ppm","Propyl Acetate","< 50 ppm"\n
              "Formamide","< 50 ppm","3-Methyl-1-Butanol","< 100 ppm"\n
              "N,N-Dimethylacetamide","< 100 ppm","Isobutyl Acetate","< 50 ppm"\n
              "Ethyl Ether","< 100 ppm","1-Pentanol","< 100 ppm"\n
              "Methyl Acetate","< 100 ppm","Butyl Acetate","< 50 ppm"\n
              "Tert-Butylmethyl Ether","< 50 ppm","Anisole","< 50 ppm"\n
              "Methylbutyl Ketone","< 50 ppm","N-Methylpyrrolidone","< 50 ppm"\n
              "Methylbutyl Ketone","< 25 ppm","Tetralin","< 10 ppm"\n
              "Methylisobutyl Ketone","< 100 ppm","Sulfolane","< 10 ppm"
              """
          ]
        ]
        "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" => 0
      "job_auto_mode_triggered_pages" => 0
      "job_is_cache_hit" => true
    ]
  ]
  -labName: "Sample Testing Laboratories Inc."
  -sampleName: "Cannabis Product XYZ"
  -sampleMatrix: "Concentrated Oil"
  -internalPath: "/home/cbdextract/cbdextract.nw.agency/source/public/lab-reports/LabReportPage4.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: 662
    -name: "Lab Report Page 4"
    -externalUrl: "https://purecbdnc.com/cdn/shop/files/CBDistillery_CBD-Full-Spectrum-Relief-_-Relax-Softgels-30mgCOA4_3735d84c-d65f-49ae-9609-35e32538bb0a.jpg"
    -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 @1747758787 {#848
      date: 2025-05-20 16:33:07.0 UTC (+00:00)
    }
    -updatedAt: DateTime @1747744416 {#845
      date: 2025-05-20 12:33:36.0 UTC (+00:00)
    }
    -category: null
    -state: "processed"
    -expiryDate: ""
    -extractionDate: "2022-11-03"
    -thcaPercentage: "0"
    -totalThcPercentage: "0"
    -deltaNinePercentage: "0"
    -deltaNineWithThcaCombined: "0"
    -comments: null
    -internalUrl: "https://cbdextract.nw.agency/lab-reports/LabReportPage4.jpg"
    -markdownContent: ""# LIMITS OF QUANTITATION\n\n## Residual Solvents: ResSolv.2\n\n| Analyte                     | LoQ       | Analyte               | LoQ       |\n| --------------------------- | --------- | --------------------- | --------- |\n| (+\/-)-2-Butanol             | < 10 ppm  | Ethyl Acetate         | < 50 ppm  |\n| 1,1-Dichloroethene          | < 5 ppm   | Ethyl benzene         | < 25 ppm  |\n| 1,2-Dichloroethane          | < 2 ppm   | Ethylene Glycol       | < 100 ppm |\n| 1,4-Dioxane                 | < 25 ppm  | Ethylene Oxide        | < 50 ppm  |\n| 2,2-Dimethylbutane          | < 25 ppm  | Heptane               | < 50 ppm  |\n| 2,3-Dimethylbutane          | < 25 ppm  | Hexane                | < 10 ppm  |\n| 2-Ethoxyethanol             | < 25 ppm  | Isobutane             | < 100 ppm |\n| 2-Methylbutane (Isopentane) | < 75 ppm  | Isopropyl acetate     | < 10 ppm  |\n| 2-Methylpentane             | < 25 ppm  | Methanol              | < 50 ppm  |\n| 2-Propanol                  | < 50 ppm  | Methylene Chloride    | < 50 ppm  |\n| 3-Methylpentane             | < 25 ppm  | N,N-Dimethylformamide | < 10 ppm  |\n| Acetone                     | < 50 ppm  | n-Butane              | < 100 ppm |\n| Acetonitrile                | < 50 ppm  | Neopentane            | < 100 ppm |\n| Benzene                     | < 1 ppm   | Pentane               | < 50 ppm  |\n| Chloroform                  | < 10 ppm  | Propane               | < 100 ppm |\n| Cumene                      | < 100 ppm | Tetrahydrofuran       | < 10 ppm  |\n| Cyclohexane                 | < 50 ppm  | Toluene               | < 50 ppm  |\n| Diethyl ether               | < 50 ppm  | Trichloroethene       | < 50 ppm  |\n| Ethanol                     | < 50 ppm  | Xylenes (p-, m-, o-)  | < 50 ppm  |\n| Nitromethane                | < 25 ppm  | 1-Propanol            | < 100 ppm |\n| 1,2-Dimethoxyethane         | < 10 ppm  | 2-Methyl-1-Propanol   | < 100 ppm |\n| Pyridine                    | < 10 ppm  | 1-Butanol             | < 50 ppm  |\n| 2-Methoxyethanol            | < 50 ppm  | Propyl Acetate        | < 50 ppm  |\n| Formamide                   | < 50 ppm  | 3-Methyl-1-Butanol    | < 100 ppm |\n| N,N-Dimethylacetamide       | < 100 ppm | Isobutyl Acetate      | < 50 ppm  |\n| Ethyl Ether                 | < 100 ppm | 1-Pentanol            | < 100 ppm |\n| Methyl Acetate              | < 100 ppm | Butyl Acetate         | < 50 ppm  |\n| Tert-Butylmethyl Ether      | < 50 ppm  | Anisole               | < 50 ppm  |\n| Methylbutyl Ketone          | < 50 ppm  | N-Methylpyrrolidone   | < 50 ppm  |\n| Methylbutyl Ketone          | < 25 ppm  | Tetralin              | < 10 ppm  |\n| Methylisobutyl Ketone       | < 100 ppm | Sulfolane             | < 10 ppm  |\n""
    -debugData: null
    -jsonContent: [
      "pages" => [
        [
          "page" => 1
          "md" => """
            # LIMITS OF QUANTITATION\n
            \n
            ## Residual Solvents: ResSolv.2\n
            \n
            | Analyte                     | LoQ       | Analyte               | LoQ       |\n
            | --------------------------- | --------- | --------------------- | --------- |\n
            | (+/-)-2-Butanol             | < 10 ppm  | Ethyl Acetate         | < 50 ppm  |\n
            | 1,1-Dichloroethene          | < 5 ppm   | Ethyl benzene         | < 25 ppm  |\n
            | 1,2-Dichloroethane          | < 2 ppm   | Ethylene Glycol       | < 100 ppm |\n
            | 1,4-Dioxane                 | < 25 ppm  | Ethylene Oxide        | < 50 ppm  |\n
            | 2,2-Dimethylbutane          | < 25 ppm  | Heptane               | < 50 ppm  |\n
            | 2,3-Dimethylbutane          | < 25 ppm  | Hexane                | < 10 ppm  |\n
            | 2-Ethoxyethanol             | < 25 ppm  | Isobutane             | < 100 ppm |\n
            | 2-Methylbutane (Isopentane) | < 75 ppm  | Isopropyl acetate     | < 10 ppm  |\n
            | 2-Methylpentane             | < 25 ppm  | Methanol              | < 50 ppm  |\n
            | 2-Propanol                  | < 50 ppm  | Methylene Chloride    | < 50 ppm  |\n
            | 3-Methylpentane             | < 25 ppm  | N,N-Dimethylformamide | < 10 ppm  |\n
            | Acetone                     | < 50 ppm  | n-Butane              | < 100 ppm |\n
            | Acetonitrile                | < 50 ppm  | Neopentane            | < 100 ppm |\n
            | Benzene                     | < 1 ppm   | Pentane               | < 50 ppm  |\n
            | Chloroform                  | < 10 ppm  | Propane               | < 100 ppm |\n
            | Cumene                      | < 100 ppm | Tetrahydrofuran       | < 10 ppm  |\n
            | Cyclohexane                 | < 50 ppm  | Toluene               | < 50 ppm  |\n
            | Diethyl ether               | < 50 ppm  | Trichloroethene       | < 50 ppm  |\n
            | Ethanol                     | < 50 ppm  | Xylenes (p-, m-, o-)  | < 50 ppm  |\n
            | Nitromethane                | < 25 ppm  | 1-Propanol            | < 100 ppm |\n
            | 1,2-Dimethoxyethane         | < 10 ppm  | 2-Methyl-1-Propanol   | < 100 ppm |\n
            | Pyridine                    | < 10 ppm  | 1-Butanol             | < 50 ppm  |\n
            | 2-Methoxyethanol            | < 50 ppm  | Propyl Acetate        | < 50 ppm  |\n
            | Formamide                   | < 50 ppm  | 3-Methyl-1-Butanol    | < 100 ppm |\n
            | N,N-Dimethylacetamide       | < 100 ppm | Isobutyl Acetate      | < 50 ppm  |\n
            | Ethyl Ether                 | < 100 ppm | 1-Pentanol            | < 100 ppm |\n
            | Methyl Acetate              | < 100 ppm | Butyl Acetate         | < 50 ppm  |\n
            | Tert-Butylmethyl Ether      | < 50 ppm  | Anisole               | < 50 ppm  |\n
            | Methylbutyl Ketone          | < 50 ppm  | N-Methylpyrrolidone   | < 50 ppm  |\n
            | Methylbutyl Ketone          | < 25 ppm  | Tetralin              | < 10 ppm  |\n
            | Methylisobutyl Ketone       | < 100 ppm | Sulfolane             | < 10 ppm  |\n
            """
          "images" => [
            [
              "name" => "page_1.jpg"
              "height" => 0
              "width" => 0
              "x" => 0
              "y" => 0
              "type" => "full_page_screenshot"
            ]
          ]
          "charts" => []
          "items" => [
            [
              "type" => "heading"
              "lvl" => 1
              "value" => "LIMITS OF QUANTITATION"
              "md" => "# LIMITS OF QUANTITATION"
            ]
            [
              "type" => "heading"
              "lvl" => 2
              "value" => "Residual Solvents: ResSolv.2"
              "md" => "## Residual Solvents: ResSolv.2"
            ]
            [
              "type" => "table"
              "rows" => [
                [
                  "Analyte"
                  "LoQ"
                  "Analyte"
                  "LoQ"
                ]
                [
                  "(+/-)-2-Butanol"
                  "< 10 ppm"
                  "Ethyl Acetate"
                  "< 50 ppm"
                ]
                [
                  "1,1-Dichloroethene"
                  "< 5 ppm"
                  "Ethyl benzene"
                  "< 25 ppm"
                ]
                [
                  "1,2-Dichloroethane"
                  "< 2 ppm"
                  "Ethylene Glycol"
                  "< 100 ppm"
                ]
                [
                  "1,4-Dioxane"
                  "< 25 ppm"
                  "Ethylene Oxide"
                  "< 50 ppm"
                ]
                [
                  "2,2-Dimethylbutane"
                  "< 25 ppm"
                  "Heptane"
                  "< 50 ppm"
                ]
                [
                  "2,3-Dimethylbutane"
                  "< 25 ppm"
                  "Hexane"
                  "< 10 ppm"
                ]
                [
                  "2-Ethoxyethanol"
                  "< 25 ppm"
                  "Isobutane"
                  "< 100 ppm"
                ]
                [
                  "2-Methylbutane (Isopentane)"
                  "< 75 ppm"
                  "Isopropyl acetate"
                  "< 10 ppm"
                ]
                [
                  "2-Methylpentane"
                  "< 25 ppm"
                  "Methanol"
                  "< 50 ppm"
                ]
                [
                  "2-Propanol"
                  "< 50 ppm"
                  "Methylene Chloride"
                  "< 50 ppm"
                ]
                [
                  "3-Methylpentane"
                  "< 25 ppm"
                  "N,N-Dimethylformamide"
                  "< 10 ppm"
                ]
                [
                  "Acetone"
                  "< 50 ppm"
                  "n-Butane"
                  "< 100 ppm"
                ]
                [
                  "Acetonitrile"
                  "< 50 ppm"
                  "Neopentane"
                  "< 100 ppm"
                ]
                [
                  "Benzene"
                  "< 1 ppm"
                  "Pentane"
                  "< 50 ppm"
                ]
                [
                  "Chloroform"
                  "< 10 ppm"
                  "Propane"
                  "< 100 ppm"
                ]
                [
                  "Cumene"
                  "< 100 ppm"
                  "Tetrahydrofuran"
                  "< 10 ppm"
                ]
                [
                  "Cyclohexane"
                  "< 50 ppm"
                  "Toluene"
                  "< 50 ppm"
                ]
                [
                  "Diethyl ether"
                  "< 50 ppm"
                  "Trichloroethene"
                  "< 50 ppm"
                ]
                [
                  "Ethanol"
                  "< 50 ppm"
                  "Xylenes (p-, m-, o-)"
                  "< 50 ppm"
                ]
                [
                  "Nitromethane"
                  "< 25 ppm"
                  "1-Propanol"
                  "< 100 ppm"
                ]
                [
                  "1,2-Dimethoxyethane"
                  "< 10 ppm"
                  "2-Methyl-1-Propanol"
                  "< 100 ppm"
                ]
                [
                  "Pyridine"
                  "< 10 ppm"
                  "1-Butanol"
                  "< 50 ppm"
                ]
                [
                  "2-Methoxyethanol"
                  "< 50 ppm"
                  "Propyl Acetate"
                  "< 50 ppm"
                ]
                [
                  "Formamide"
                  "< 50 ppm"
                  "3-Methyl-1-Butanol"
                  "< 100 ppm"
                ]
                [
                  "N,N-Dimethylacetamide"
                  "< 100 ppm"
                  "Isobutyl Acetate"
                  "< 50 ppm"
                ]
                [
                  "Ethyl Ether"
                  "< 100 ppm"
                  "1-Pentanol"
                  "< 100 ppm"
                ]
                [
                  "Methyl Acetate"
                  "< 100 ppm"
                  "Butyl Acetate"
                  "< 50 ppm"
                ]
                [
                  "Tert-Butylmethyl Ether"
                  "< 50 ppm"
                  "Anisole"
                  "< 50 ppm"
                ]
                [
                  "Methylbutyl Ketone"
                  "< 50 ppm"
                  "N-Methylpyrrolidone"
                  "< 50 ppm"
                ]
                [
                  "Methylbutyl Ketone"
                  "< 25 ppm"
                  "Tetralin"
                  "< 10 ppm"
                ]
                [
                  "Methylisobutyl Ketone"
                  "< 100 ppm"
                  "Sulfolane"
                  "< 10 ppm"
                ]
              ]
              "md" => """
                | Analyte                     | LoQ       | Analyte               | LoQ       |\n
                | --------------------------- | --------- | --------------------- | --------- |\n
                | (+/-)-2-Butanol             | < 10 ppm  | Ethyl Acetate         | < 50 ppm  |\n
                | 1,1-Dichloroethene          | < 5 ppm   | Ethyl benzene         | < 25 ppm  |\n
                | 1,2-Dichloroethane          | < 2 ppm   | Ethylene Glycol       | < 100 ppm |\n
                | 1,4-Dioxane                 | < 25 ppm  | Ethylene Oxide        | < 50 ppm  |\n
                | 2,2-Dimethylbutane          | < 25 ppm  | Heptane               | < 50 ppm  |\n
                | 2,3-Dimethylbutane          | < 25 ppm  | Hexane                | < 10 ppm  |\n
                | 2-Ethoxyethanol             | < 25 ppm  | Isobutane             | < 100 ppm |\n
                | 2-Methylbutane (Isopentane) | < 75 ppm  | Isopropyl acetate     | < 10 ppm  |\n
                | 2-Methylpentane             | < 25 ppm  | Methanol              | < 50 ppm  |\n
                | 2-Propanol                  | < 50 ppm  | Methylene Chloride    | < 50 ppm  |\n
                | 3-Methylpentane             | < 25 ppm  | N,N-Dimethylformamide | < 10 ppm  |\n
                | Acetone                     | < 50 ppm  | n-Butane              | < 100 ppm |\n
                | Acetonitrile                | < 50 ppm  | Neopentane            | < 100 ppm |\n
                | Benzene                     | < 1 ppm   | Pentane               | < 50 ppm  |\n
                | Chloroform                  | < 10 ppm  | Propane               | < 100 ppm |\n
                | Cumene                      | < 100 ppm | Tetrahydrofuran       | < 10 ppm  |\n
                | Cyclohexane                 | < 50 ppm  | Toluene               | < 50 ppm  |\n
                | Diethyl ether               | < 50 ppm  | Trichloroethene       | < 50 ppm  |\n
                | Ethanol                     | < 50 ppm  | Xylenes (p-, m-, o-)  | < 50 ppm  |\n
                | Nitromethane                | < 25 ppm  | 1-Propanol            | < 100 ppm |\n
                | 1,2-Dimethoxyethane         | < 10 ppm  | 2-Methyl-1-Propanol   | < 100 ppm |\n
                | Pyridine                    | < 10 ppm  | 1-Butanol             | < 50 ppm  |\n
                | 2-Methoxyethanol            | < 50 ppm  | Propyl Acetate        | < 50 ppm  |\n
                | Formamide                   | < 50 ppm  | 3-Methyl-1-Butanol    | < 100 ppm |\n
                | N,N-Dimethylacetamide       | < 100 ppm | Isobutyl Acetate      | < 50 ppm  |\n
                | Ethyl Ether                 | < 100 ppm | 1-Pentanol            | < 100 ppm |\n
                | Methyl Acetate              | < 100 ppm | Butyl Acetate         | < 50 ppm  |\n
                | Tert-Butylmethyl Ether      | < 50 ppm  | Anisole               | < 50 ppm  |\n
                | Methylbutyl Ketone          | < 50 ppm  | N-Methylpyrrolidone   | < 50 ppm  |\n
                | Methylbutyl Ketone          | < 25 ppm  | Tetralin              | < 10 ppm  |\n
                | Methylisobutyl Ketone       | < 100 ppm | Sulfolane             | < 10 ppm  |
                """
              "isPerfectTable" => true
              "csv" => """
                "Analyte","LoQ","Analyte","LoQ"\n
                "(+/-)-2-Butanol","< 10 ppm","Ethyl Acetate","< 50 ppm"\n
                "1,1-Dichloroethene","< 5 ppm","Ethyl benzene","< 25 ppm"\n
                "1,2-Dichloroethane","< 2 ppm","Ethylene Glycol","< 100 ppm"\n
                "1,4-Dioxane","< 25 ppm","Ethylene Oxide","< 50 ppm"\n
                "2,2-Dimethylbutane","< 25 ppm","Heptane","< 50 ppm"\n
                "2,3-Dimethylbutane","< 25 ppm","Hexane","< 10 ppm"\n
                "2-Ethoxyethanol","< 25 ppm","Isobutane","< 100 ppm"\n
                "2-Methylbutane (Isopentane)","< 75 ppm","Isopropyl acetate","< 10 ppm"\n
                "2-Methylpentane","< 25 ppm","Methanol","< 50 ppm"\n
                "2-Propanol","< 50 ppm","Methylene Chloride","< 50 ppm"\n
                "3-Methylpentane","< 25 ppm","N,N-Dimethylformamide","< 10 ppm"\n
                "Acetone","< 50 ppm","n-Butane","< 100 ppm"\n
                "Acetonitrile","< 50 ppm","Neopentane","< 100 ppm"\n
                "Benzene","< 1 ppm","Pentane","< 50 ppm"\n
                "Chloroform","< 10 ppm","Propane","< 100 ppm"\n
                "Cumene","< 100 ppm","Tetrahydrofuran","< 10 ppm"\n
                "Cyclohexane","< 50 ppm","Toluene","< 50 ppm"\n
                "Diethyl ether","< 50 ppm","Trichloroethene","< 50 ppm"\n
                "Ethanol","< 50 ppm","Xylenes (p-, m-, o-)","< 50 ppm"\n
                "Nitromethane","< 25 ppm","1-Propanol","< 100 ppm"\n
                "1,2-Dimethoxyethane","< 10 ppm","2-Methyl-1-Propanol","< 100 ppm"\n
                "Pyridine","< 10 ppm","1-Butanol","< 50 ppm"\n
                "2-Methoxyethanol","< 50 ppm","Propyl Acetate","< 50 ppm"\n
                "Formamide","< 50 ppm","3-Methyl-1-Butanol","< 100 ppm"\n
                "N,N-Dimethylacetamide","< 100 ppm","Isobutyl Acetate","< 50 ppm"\n
                "Ethyl Ether","< 100 ppm","1-Pentanol","< 100 ppm"\n
                "Methyl Acetate","< 100 ppm","Butyl Acetate","< 50 ppm"\n
                "Tert-Butylmethyl Ether","< 50 ppm","Anisole","< 50 ppm"\n
                "Methylbutyl Ketone","< 50 ppm","N-Methylpyrrolidone","< 50 ppm"\n
                "Methylbutyl Ketone","< 25 ppm","Tetralin","< 10 ppm"\n
                "Methylisobutyl Ketone","< 100 ppm","Sulfolane","< 10 ppm"
                """
            ]
          ]
          "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" => 0
        "job_auto_mode_triggered_pages" => 0
        "job_is_cache_hit" => true
      ]
    ]
    -labName: "Sample Testing Laboratories Inc."
    -sampleName: "Cannabis Product XYZ"
    -sampleMatrix: "Concentrated Oil"
    -internalPath: "/home/cbdextract/cbdextract.nw.agency/source/public/lab-reports/LabReportPage4.jpg"
    -productType: "cannabis"
    -aILogs: Doctrine\ORM\PersistentCollection {#964 …}
    -products: Doctrine\ORM\PersistentCollection {#1018 …}
  }
  -primaryKeyName: "id"
  -primaryKeyValue: 662
  -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: 662
  -name: "Lab Report Page 4"
  -externalUrl: "https://purecbdnc.com/cdn/shop/files/CBDistillery_CBD-Full-Spectrum-Relief-_-Relax-Softgels-30mgCOA4_3735d84c-d65f-49ae-9609-35e32538bb0a.jpg"
  -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 @1747758787 {#848
    date: 2025-05-20 16:33:07.0 UTC (+00:00)
  }
  -updatedAt: DateTime @1747744416 {#845
    date: 2025-05-20 12:33:36.0 UTC (+00:00)
  }
  -category: null
  -state: "processed"
  -expiryDate: ""
  -extractionDate: "2022-11-03"
  -thcaPercentage: "0"
  -totalThcPercentage: "0"
  -deltaNinePercentage: "0"
  -deltaNineWithThcaCombined: "0"
  -comments: null
  -internalUrl: "https://cbdextract.nw.agency/lab-reports/LabReportPage4.jpg"
  -markdownContent: ""# LIMITS OF QUANTITATION\n\n## Residual Solvents: ResSolv.2\n\n| Analyte                     | LoQ       | Analyte               | LoQ       |\n| --------------------------- | --------- | --------------------- | --------- |\n| (+\/-)-2-Butanol             | < 10 ppm  | Ethyl Acetate         | < 50 ppm  |\n| 1,1-Dichloroethene          | < 5 ppm   | Ethyl benzene         | < 25 ppm  |\n| 1,2-Dichloroethane          | < 2 ppm   | Ethylene Glycol       | < 100 ppm |\n| 1,4-Dioxane                 | < 25 ppm  | Ethylene Oxide        | < 50 ppm  |\n| 2,2-Dimethylbutane          | < 25 ppm  | Heptane               | < 50 ppm  |\n| 2,3-Dimethylbutane          | < 25 ppm  | Hexane                | < 10 ppm  |\n| 2-Ethoxyethanol             | < 25 ppm  | Isobutane             | < 100 ppm |\n| 2-Methylbutane (Isopentane) | < 75 ppm  | Isopropyl acetate     | < 10 ppm  |\n| 2-Methylpentane             | < 25 ppm  | Methanol              | < 50 ppm  |\n| 2-Propanol                  | < 50 ppm  | Methylene Chloride    | < 50 ppm  |\n| 3-Methylpentane             | < 25 ppm  | N,N-Dimethylformamide | < 10 ppm  |\n| Acetone                     | < 50 ppm  | n-Butane              | < 100 ppm |\n| Acetonitrile                | < 50 ppm  | Neopentane            | < 100 ppm |\n| Benzene                     | < 1 ppm   | Pentane               | < 50 ppm  |\n| Chloroform                  | < 10 ppm  | Propane               | < 100 ppm |\n| Cumene                      | < 100 ppm | Tetrahydrofuran       | < 10 ppm  |\n| Cyclohexane                 | < 50 ppm  | Toluene               | < 50 ppm  |\n| Diethyl ether               | < 50 ppm  | Trichloroethene       | < 50 ppm  |\n| Ethanol                     | < 50 ppm  | Xylenes (p-, m-, o-)  | < 50 ppm  |\n| Nitromethane                | < 25 ppm  | 1-Propanol            | < 100 ppm |\n| 1,2-Dimethoxyethane         | < 10 ppm  | 2-Methyl-1-Propanol   | < 100 ppm |\n| Pyridine                    | < 10 ppm  | 1-Butanol             | < 50 ppm  |\n| 2-Methoxyethanol            | < 50 ppm  | Propyl Acetate        | < 50 ppm  |\n| Formamide                   | < 50 ppm  | 3-Methyl-1-Butanol    | < 100 ppm |\n| N,N-Dimethylacetamide       | < 100 ppm | Isobutyl Acetate      | < 50 ppm  |\n| Ethyl Ether                 | < 100 ppm | 1-Pentanol            | < 100 ppm |\n| Methyl Acetate              | < 100 ppm | Butyl Acetate         | < 50 ppm  |\n| Tert-Butylmethyl Ether      | < 50 ppm  | Anisole               | < 50 ppm  |\n| Methylbutyl Ketone          | < 50 ppm  | N-Methylpyrrolidone   | < 50 ppm  |\n| Methylbutyl Ketone          | < 25 ppm  | Tetralin              | < 10 ppm  |\n| Methylisobutyl Ketone       | < 100 ppm | Sulfolane             | < 10 ppm  |\n""
  -debugData: null
  -jsonContent: [
    "pages" => [
      [
        "page" => 1
        "md" => """
          # LIMITS OF QUANTITATION\n
          \n
          ## Residual Solvents: ResSolv.2\n
          \n
          | Analyte                     | LoQ       | Analyte               | LoQ       |\n
          | --------------------------- | --------- | --------------------- | --------- |\n
          | (+/-)-2-Butanol             | < 10 ppm  | Ethyl Acetate         | < 50 ppm  |\n
          | 1,1-Dichloroethene          | < 5 ppm   | Ethyl benzene         | < 25 ppm  |\n
          | 1,2-Dichloroethane          | < 2 ppm   | Ethylene Glycol       | < 100 ppm |\n
          | 1,4-Dioxane                 | < 25 ppm  | Ethylene Oxide        | < 50 ppm  |\n
          | 2,2-Dimethylbutane          | < 25 ppm  | Heptane               | < 50 ppm  |\n
          | 2,3-Dimethylbutane          | < 25 ppm  | Hexane                | < 10 ppm  |\n
          | 2-Ethoxyethanol             | < 25 ppm  | Isobutane             | < 100 ppm |\n
          | 2-Methylbutane (Isopentane) | < 75 ppm  | Isopropyl acetate     | < 10 ppm  |\n
          | 2-Methylpentane             | < 25 ppm  | Methanol              | < 50 ppm  |\n
          | 2-Propanol                  | < 50 ppm  | Methylene Chloride    | < 50 ppm  |\n
          | 3-Methylpentane             | < 25 ppm  | N,N-Dimethylformamide | < 10 ppm  |\n
          | Acetone                     | < 50 ppm  | n-Butane              | < 100 ppm |\n
          | Acetonitrile                | < 50 ppm  | Neopentane            | < 100 ppm |\n
          | Benzene                     | < 1 ppm   | Pentane               | < 50 ppm  |\n
          | Chloroform                  | < 10 ppm  | Propane               | < 100 ppm |\n
          | Cumene                      | < 100 ppm | Tetrahydrofuran       | < 10 ppm  |\n
          | Cyclohexane                 | < 50 ppm  | Toluene               | < 50 ppm  |\n
          | Diethyl ether               | < 50 ppm  | Trichloroethene       | < 50 ppm  |\n
          | Ethanol                     | < 50 ppm  | Xylenes (p-, m-, o-)  | < 50 ppm  |\n
          | Nitromethane                | < 25 ppm  | 1-Propanol            | < 100 ppm |\n
          | 1,2-Dimethoxyethane         | < 10 ppm  | 2-Methyl-1-Propanol   | < 100 ppm |\n
          | Pyridine                    | < 10 ppm  | 1-Butanol             | < 50 ppm  |\n
          | 2-Methoxyethanol            | < 50 ppm  | Propyl Acetate        | < 50 ppm  |\n
          | Formamide                   | < 50 ppm  | 3-Methyl-1-Butanol    | < 100 ppm |\n
          | N,N-Dimethylacetamide       | < 100 ppm | Isobutyl Acetate      | < 50 ppm  |\n
          | Ethyl Ether                 | < 100 ppm | 1-Pentanol            | < 100 ppm |\n
          | Methyl Acetate              | < 100 ppm | Butyl Acetate         | < 50 ppm  |\n
          | Tert-Butylmethyl Ether      | < 50 ppm  | Anisole               | < 50 ppm  |\n
          | Methylbutyl Ketone          | < 50 ppm  | N-Methylpyrrolidone   | < 50 ppm  |\n
          | Methylbutyl Ketone          | < 25 ppm  | Tetralin              | < 10 ppm  |\n
          | Methylisobutyl Ketone       | < 100 ppm | Sulfolane             | < 10 ppm  |\n
          """
        "images" => [
          [
            "name" => "page_1.jpg"
            "height" => 0
            "width" => 0
            "x" => 0
            "y" => 0
            "type" => "full_page_screenshot"
          ]
        ]
        "charts" => []
        "items" => [
          [
            "type" => "heading"
            "lvl" => 1
            "value" => "LIMITS OF QUANTITATION"
            "md" => "# LIMITS OF QUANTITATION"
          ]
          [
            "type" => "heading"
            "lvl" => 2
            "value" => "Residual Solvents: ResSolv.2"
            "md" => "## Residual Solvents: ResSolv.2"
          ]
          [
            "type" => "table"
            "rows" => [
              [
                "Analyte"
                "LoQ"
                "Analyte"
                "LoQ"
              ]
              [
                "(+/-)-2-Butanol"
                "< 10 ppm"
                "Ethyl Acetate"
                "< 50 ppm"
              ]
              [
                "1,1-Dichloroethene"
                "< 5 ppm"
                "Ethyl benzene"
                "< 25 ppm"
              ]
              [
                "1,2-Dichloroethane"
                "< 2 ppm"
                "Ethylene Glycol"
                "< 100 ppm"
              ]
              [
                "1,4-Dioxane"
                "< 25 ppm"
                "Ethylene Oxide"
                "< 50 ppm"
              ]
              [
                "2,2-Dimethylbutane"
                "< 25 ppm"
                "Heptane"
                "< 50 ppm"
              ]
              [
                "2,3-Dimethylbutane"
                "< 25 ppm"
                "Hexane"
                "< 10 ppm"
              ]
              [
                "2-Ethoxyethanol"
                "< 25 ppm"
                "Isobutane"
                "< 100 ppm"
              ]
              [
                "2-Methylbutane (Isopentane)"
                "< 75 ppm"
                "Isopropyl acetate"
                "< 10 ppm"
              ]
              [
                "2-Methylpentane"
                "< 25 ppm"
                "Methanol"
                "< 50 ppm"
              ]
              [
                "2-Propanol"
                "< 50 ppm"
                "Methylene Chloride"
                "< 50 ppm"
              ]
              [
                "3-Methylpentane"
                "< 25 ppm"
                "N,N-Dimethylformamide"
                "< 10 ppm"
              ]
              [
                "Acetone"
                "< 50 ppm"
                "n-Butane"
                "< 100 ppm"
              ]
              [
                "Acetonitrile"
                "< 50 ppm"
                "Neopentane"
                "< 100 ppm"
              ]
              [
                "Benzene"
                "< 1 ppm"
                "Pentane"
                "< 50 ppm"
              ]
              [
                "Chloroform"
                "< 10 ppm"
                "Propane"
                "< 100 ppm"
              ]
              [
                "Cumene"
                "< 100 ppm"
                "Tetrahydrofuran"
                "< 10 ppm"
              ]
              [
                "Cyclohexane"
                "< 50 ppm"
                "Toluene"
                "< 50 ppm"
              ]
              [
                "Diethyl ether"
                "< 50 ppm"
                "Trichloroethene"
                "< 50 ppm"
              ]
              [
                "Ethanol"
                "< 50 ppm"
                "Xylenes (p-, m-, o-)"
                "< 50 ppm"
              ]
              [
                "Nitromethane"
                "< 25 ppm"
                "1-Propanol"
                "< 100 ppm"
              ]
              [
                "1,2-Dimethoxyethane"
                "< 10 ppm"
                "2-Methyl-1-Propanol"
                "< 100 ppm"
              ]
              [
                "Pyridine"
                "< 10 ppm"
                "1-Butanol"
                "< 50 ppm"
              ]
              [
                "2-Methoxyethanol"
                "< 50 ppm"
                "Propyl Acetate"
                "< 50 ppm"
              ]
              [
                "Formamide"
                "< 50 ppm"
                "3-Methyl-1-Butanol"
                "< 100 ppm"
              ]
              [
                "N,N-Dimethylacetamide"
                "< 100 ppm"
                "Isobutyl Acetate"
                "< 50 ppm"
              ]
              [
                "Ethyl Ether"
                "< 100 ppm"
                "1-Pentanol"
                "< 100 ppm"
              ]
              [
                "Methyl Acetate"
                "< 100 ppm"
                "Butyl Acetate"
                "< 50 ppm"
              ]
              [
                "Tert-Butylmethyl Ether"
                "< 50 ppm"
                "Anisole"
                "< 50 ppm"
              ]
              [
                "Methylbutyl Ketone"
                "< 50 ppm"
                "N-Methylpyrrolidone"
                "< 50 ppm"
              ]
              [
                "Methylbutyl Ketone"
                "< 25 ppm"
                "Tetralin"
                "< 10 ppm"
              ]
              [
                "Methylisobutyl Ketone"
                "< 100 ppm"
                "Sulfolane"
                "< 10 ppm"
              ]
            ]
            "md" => """
              | Analyte                     | LoQ       | Analyte               | LoQ       |\n
              | --------------------------- | --------- | --------------------- | --------- |\n
              | (+/-)-2-Butanol             | < 10 ppm  | Ethyl Acetate         | < 50 ppm  |\n
              | 1,1-Dichloroethene          | < 5 ppm   | Ethyl benzene         | < 25 ppm  |\n
              | 1,2-Dichloroethane          | < 2 ppm   | Ethylene Glycol       | < 100 ppm |\n
              | 1,4-Dioxane                 | < 25 ppm  | Ethylene Oxide        | < 50 ppm  |\n
              | 2,2-Dimethylbutane          | < 25 ppm  | Heptane               | < 50 ppm  |\n
              | 2,3-Dimethylbutane          | < 25 ppm  | Hexane                | < 10 ppm  |\n
              | 2-Ethoxyethanol             | < 25 ppm  | Isobutane             | < 100 ppm |\n
              | 2-Methylbutane (Isopentane) | < 75 ppm  | Isopropyl acetate     | < 10 ppm  |\n
              | 2-Methylpentane             | < 25 ppm  | Methanol              | < 50 ppm  |\n
              | 2-Propanol                  | < 50 ppm  | Methylene Chloride    | < 50 ppm  |\n
              | 3-Methylpentane             | < 25 ppm  | N,N-Dimethylformamide | < 10 ppm  |\n
              | Acetone                     | < 50 ppm  | n-Butane              | < 100 ppm |\n
              | Acetonitrile                | < 50 ppm  | Neopentane            | < 100 ppm |\n
              | Benzene                     | < 1 ppm   | Pentane               | < 50 ppm  |\n
              | Chloroform                  | < 10 ppm  | Propane               | < 100 ppm |\n
              | Cumene                      | < 100 ppm | Tetrahydrofuran       | < 10 ppm  |\n
              | Cyclohexane                 | < 50 ppm  | Toluene               | < 50 ppm  |\n
              | Diethyl ether               | < 50 ppm  | Trichloroethene       | < 50 ppm  |\n
              | Ethanol                     | < 50 ppm  | Xylenes (p-, m-, o-)  | < 50 ppm  |\n
              | Nitromethane                | < 25 ppm  | 1-Propanol            | < 100 ppm |\n
              | 1,2-Dimethoxyethane         | < 10 ppm  | 2-Methyl-1-Propanol   | < 100 ppm |\n
              | Pyridine                    | < 10 ppm  | 1-Butanol             | < 50 ppm  |\n
              | 2-Methoxyethanol            | < 50 ppm  | Propyl Acetate        | < 50 ppm  |\n
              | Formamide                   | < 50 ppm  | 3-Methyl-1-Butanol    | < 100 ppm |\n
              | N,N-Dimethylacetamide       | < 100 ppm | Isobutyl Acetate      | < 50 ppm  |\n
              | Ethyl Ether                 | < 100 ppm | 1-Pentanol            | < 100 ppm |\n
              | Methyl Acetate              | < 100 ppm | Butyl Acetate         | < 50 ppm  |\n
              | Tert-Butylmethyl Ether      | < 50 ppm  | Anisole               | < 50 ppm  |\n
              | Methylbutyl Ketone          | < 50 ppm  | N-Methylpyrrolidone   | < 50 ppm  |\n
              | Methylbutyl Ketone          | < 25 ppm  | Tetralin              | < 10 ppm  |\n
              | Methylisobutyl Ketone       | < 100 ppm | Sulfolane             | < 10 ppm  |
              """
            "isPerfectTable" => true
            "csv" => """
              "Analyte","LoQ","Analyte","LoQ"\n
              "(+/-)-2-Butanol","< 10 ppm","Ethyl Acetate","< 50 ppm"\n
              "1,1-Dichloroethene","< 5 ppm","Ethyl benzene","< 25 ppm"\n
              "1,2-Dichloroethane","< 2 ppm","Ethylene Glycol","< 100 ppm"\n
              "1,4-Dioxane","< 25 ppm","Ethylene Oxide","< 50 ppm"\n
              "2,2-Dimethylbutane","< 25 ppm","Heptane","< 50 ppm"\n
              "2,3-Dimethylbutane","< 25 ppm","Hexane","< 10 ppm"\n
              "2-Ethoxyethanol","< 25 ppm","Isobutane","< 100 ppm"\n
              "2-Methylbutane (Isopentane)","< 75 ppm","Isopropyl acetate","< 10 ppm"\n
              "2-Methylpentane","< 25 ppm","Methanol","< 50 ppm"\n
              "2-Propanol","< 50 ppm","Methylene Chloride","< 50 ppm"\n
              "3-Methylpentane","< 25 ppm","N,N-Dimethylformamide","< 10 ppm"\n
              "Acetone","< 50 ppm","n-Butane","< 100 ppm"\n
              "Acetonitrile","< 50 ppm","Neopentane","< 100 ppm"\n
              "Benzene","< 1 ppm","Pentane","< 50 ppm"\n
              "Chloroform","< 10 ppm","Propane","< 100 ppm"\n
              "Cumene","< 100 ppm","Tetrahydrofuran","< 10 ppm"\n
              "Cyclohexane","< 50 ppm","Toluene","< 50 ppm"\n
              "Diethyl ether","< 50 ppm","Trichloroethene","< 50 ppm"\n
              "Ethanol","< 50 ppm","Xylenes (p-, m-, o-)","< 50 ppm"\n
              "Nitromethane","< 25 ppm","1-Propanol","< 100 ppm"\n
              "1,2-Dimethoxyethane","< 10 ppm","2-Methyl-1-Propanol","< 100 ppm"\n
              "Pyridine","< 10 ppm","1-Butanol","< 50 ppm"\n
              "2-Methoxyethanol","< 50 ppm","Propyl Acetate","< 50 ppm"\n
              "Formamide","< 50 ppm","3-Methyl-1-Butanol","< 100 ppm"\n
              "N,N-Dimethylacetamide","< 100 ppm","Isobutyl Acetate","< 50 ppm"\n
              "Ethyl Ether","< 100 ppm","1-Pentanol","< 100 ppm"\n
              "Methyl Acetate","< 100 ppm","Butyl Acetate","< 50 ppm"\n
              "Tert-Butylmethyl Ether","< 50 ppm","Anisole","< 50 ppm"\n
              "Methylbutyl Ketone","< 50 ppm","N-Methylpyrrolidone","< 50 ppm"\n
              "Methylbutyl Ketone","< 25 ppm","Tetralin","< 10 ppm"\n
              "Methylisobutyl Ketone","< 100 ppm","Sulfolane","< 10 ppm"
              """
          ]
        ]
        "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" => 0
      "job_auto_mode_triggered_pages" => 0
      "job_is_cache_hit" => true
    ]
  ]
  -labName: "Sample Testing Laboratories Inc."
  -sampleName: "Cannabis Product XYZ"
  -sampleMatrix: "Concentrated Oil"
  -internalPath: "/home/cbdextract/cbdextract.nw.agency/source/public/lab-reports/LabReportPage4.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: 662
    -name: "Lab Report Page 4"
    -externalUrl: "https://purecbdnc.com/cdn/shop/files/CBDistillery_CBD-Full-Spectrum-Relief-_-Relax-Softgels-30mgCOA4_3735d84c-d65f-49ae-9609-35e32538bb0a.jpg"
    -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 @1747758787 {#848
      date: 2025-05-20 16:33:07.0 UTC (+00:00)
    }
    -updatedAt: DateTime @1747744416 {#845
      date: 2025-05-20 12:33:36.0 UTC (+00:00)
    }
    -category: null
    -state: "processed"
    -expiryDate: ""
    -extractionDate: "2022-11-03"
    -thcaPercentage: "0"
    -totalThcPercentage: "0"
    -deltaNinePercentage: "0"
    -deltaNineWithThcaCombined: "0"
    -comments: null
    -internalUrl: "https://cbdextract.nw.agency/lab-reports/LabReportPage4.jpg"
    -markdownContent: ""# LIMITS OF QUANTITATION\n\n## Residual Solvents: ResSolv.2\n\n| Analyte                     | LoQ       | Analyte               | LoQ       |\n| --------------------------- | --------- | --------------------- | --------- |\n| (+\/-)-2-Butanol             | < 10 ppm  | Ethyl Acetate         | < 50 ppm  |\n| 1,1-Dichloroethene          | < 5 ppm   | Ethyl benzene         | < 25 ppm  |\n| 1,2-Dichloroethane          | < 2 ppm   | Ethylene Glycol       | < 100 ppm |\n| 1,4-Dioxane                 | < 25 ppm  | Ethylene Oxide        | < 50 ppm  |\n| 2,2-Dimethylbutane          | < 25 ppm  | Heptane               | < 50 ppm  |\n| 2,3-Dimethylbutane          | < 25 ppm  | Hexane                | < 10 ppm  |\n| 2-Ethoxyethanol             | < 25 ppm  | Isobutane             | < 100 ppm |\n| 2-Methylbutane (Isopentane) | < 75 ppm  | Isopropyl acetate     | < 10 ppm  |\n| 2-Methylpentane             | < 25 ppm  | Methanol              | < 50 ppm  |\n| 2-Propanol                  | < 50 ppm  | Methylene Chloride    | < 50 ppm  |\n| 3-Methylpentane             | < 25 ppm  | N,N-Dimethylformamide | < 10 ppm  |\n| Acetone                     | < 50 ppm  | n-Butane              | < 100 ppm |\n| Acetonitrile                | < 50 ppm  | Neopentane            | < 100 ppm |\n| Benzene                     | < 1 ppm   | Pentane               | < 50 ppm  |\n| Chloroform                  | < 10 ppm  | Propane               | < 100 ppm |\n| Cumene                      | < 100 ppm | Tetrahydrofuran       | < 10 ppm  |\n| Cyclohexane                 | < 50 ppm  | Toluene               | < 50 ppm  |\n| Diethyl ether               | < 50 ppm  | Trichloroethene       | < 50 ppm  |\n| Ethanol                     | < 50 ppm  | Xylenes (p-, m-, o-)  | < 50 ppm  |\n| Nitromethane                | < 25 ppm  | 1-Propanol            | < 100 ppm |\n| 1,2-Dimethoxyethane         | < 10 ppm  | 2-Methyl-1-Propanol   | < 100 ppm |\n| Pyridine                    | < 10 ppm  | 1-Butanol             | < 50 ppm  |\n| 2-Methoxyethanol            | < 50 ppm  | Propyl Acetate        | < 50 ppm  |\n| Formamide                   | < 50 ppm  | 3-Methyl-1-Butanol    | < 100 ppm |\n| N,N-Dimethylacetamide       | < 100 ppm | Isobutyl Acetate      | < 50 ppm  |\n| Ethyl Ether                 | < 100 ppm | 1-Pentanol            | < 100 ppm |\n| Methyl Acetate              | < 100 ppm | Butyl Acetate         | < 50 ppm  |\n| Tert-Butylmethyl Ether      | < 50 ppm  | Anisole               | < 50 ppm  |\n| Methylbutyl Ketone          | < 50 ppm  | N-Methylpyrrolidone   | < 50 ppm  |\n| Methylbutyl Ketone          | < 25 ppm  | Tetralin              | < 10 ppm  |\n| Methylisobutyl Ketone       | < 100 ppm | Sulfolane             | < 10 ppm  |\n""
    -debugData: null
    -jsonContent: [
      "pages" => [
        [
          "page" => 1
          "md" => """
            # LIMITS OF QUANTITATION\n
            \n
            ## Residual Solvents: ResSolv.2\n
            \n
            | Analyte                     | LoQ       | Analyte               | LoQ       |\n
            | --------------------------- | --------- | --------------------- | --------- |\n
            | (+/-)-2-Butanol             | < 10 ppm  | Ethyl Acetate         | < 50 ppm  |\n
            | 1,1-Dichloroethene          | < 5 ppm   | Ethyl benzene         | < 25 ppm  |\n
            | 1,2-Dichloroethane          | < 2 ppm   | Ethylene Glycol       | < 100 ppm |\n
            | 1,4-Dioxane                 | < 25 ppm  | Ethylene Oxide        | < 50 ppm  |\n
            | 2,2-Dimethylbutane          | < 25 ppm  | Heptane               | < 50 ppm  |\n
            | 2,3-Dimethylbutane          | < 25 ppm  | Hexane                | < 10 ppm  |\n
            | 2-Ethoxyethanol             | < 25 ppm  | Isobutane             | < 100 ppm |\n
            | 2-Methylbutane (Isopentane) | < 75 ppm  | Isopropyl acetate     | < 10 ppm  |\n
            | 2-Methylpentane             | < 25 ppm  | Methanol              | < 50 ppm  |\n
            | 2-Propanol                  | < 50 ppm  | Methylene Chloride    | < 50 ppm  |\n
            | 3-Methylpentane             | < 25 ppm  | N,N-Dimethylformamide | < 10 ppm  |\n
            | Acetone                     | < 50 ppm  | n-Butane              | < 100 ppm |\n
            | Acetonitrile                | < 50 ppm  | Neopentane            | < 100 ppm |\n
            | Benzene                     | < 1 ppm   | Pentane               | < 50 ppm  |\n
            | Chloroform                  | < 10 ppm  | Propane               | < 100 ppm |\n
            | Cumene                      | < 100 ppm | Tetrahydrofuran       | < 10 ppm  |\n
            | Cyclohexane                 | < 50 ppm  | Toluene               | < 50 ppm  |\n
            | Diethyl ether               | < 50 ppm  | Trichloroethene       | < 50 ppm  |\n
            | Ethanol                     | < 50 ppm  | Xylenes (p-, m-, o-)  | < 50 ppm  |\n
            | Nitromethane                | < 25 ppm  | 1-Propanol            | < 100 ppm |\n
            | 1,2-Dimethoxyethane         | < 10 ppm  | 2-Methyl-1-Propanol   | < 100 ppm |\n
            | Pyridine                    | < 10 ppm  | 1-Butanol             | < 50 ppm  |\n
            | 2-Methoxyethanol            | < 50 ppm  | Propyl Acetate        | < 50 ppm  |\n
            | Formamide                   | < 50 ppm  | 3-Methyl-1-Butanol    | < 100 ppm |\n
            | N,N-Dimethylacetamide       | < 100 ppm | Isobutyl Acetate      | < 50 ppm  |\n
            | Ethyl Ether                 | < 100 ppm | 1-Pentanol            | < 100 ppm |\n
            | Methyl Acetate              | < 100 ppm | Butyl Acetate         | < 50 ppm  |\n
            | Tert-Butylmethyl Ether      | < 50 ppm  | Anisole               | < 50 ppm  |\n
            | Methylbutyl Ketone          | < 50 ppm  | N-Methylpyrrolidone   | < 50 ppm  |\n
            | Methylbutyl Ketone          | < 25 ppm  | Tetralin              | < 10 ppm  |\n
            | Methylisobutyl Ketone       | < 100 ppm | Sulfolane             | < 10 ppm  |\n
            """
          "images" => [
            [
              "name" => "page_1.jpg"
              "height" => 0
              "width" => 0
              "x" => 0
              "y" => 0
              "type" => "full_page_screenshot"
            ]
          ]
          "charts" => []
          "items" => [
            [
              "type" => "heading"
              "lvl" => 1
              "value" => "LIMITS OF QUANTITATION"
              "md" => "# LIMITS OF QUANTITATION"
            ]
            [
              "type" => "heading"
              "lvl" => 2
              "value" => "Residual Solvents: ResSolv.2"
              "md" => "## Residual Solvents: ResSolv.2"
            ]
            [
              "type" => "table"
              "rows" => [
                [
                  "Analyte"
                  "LoQ"
                  "Analyte"
                  "LoQ"
                ]
                [
                  "(+/-)-2-Butanol"
                  "< 10 ppm"
                  "Ethyl Acetate"
                  "< 50 ppm"
                ]
                [
                  "1,1-Dichloroethene"
                  "< 5 ppm"
                  "Ethyl benzene"
                  "< 25 ppm"
                ]
                [
                  "1,2-Dichloroethane"
                  "< 2 ppm"
                  "Ethylene Glycol"
                  "< 100 ppm"
                ]
                [
                  "1,4-Dioxane"
                  "< 25 ppm"
                  "Ethylene Oxide"
                  "< 50 ppm"
                ]
                [
                  "2,2-Dimethylbutane"
                  "< 25 ppm"
                  "Heptane"
                  "< 50 ppm"
                ]
                [
                  "2,3-Dimethylbutane"
                  "< 25 ppm"
                  "Hexane"
                  "< 10 ppm"
                ]
                [
                  "2-Ethoxyethanol"
                  "< 25 ppm"
                  "Isobutane"
                  "< 100 ppm"
                ]
                [
                  "2-Methylbutane (Isopentane)"
                  "< 75 ppm"
                  "Isopropyl acetate"
                  "< 10 ppm"
                ]
                [
                  "2-Methylpentane"
                  "< 25 ppm"
                  "Methanol"
                  "< 50 ppm"
                ]
                [
                  "2-Propanol"
                  "< 50 ppm"
                  "Methylene Chloride"
                  "< 50 ppm"
                ]
                [
                  "3-Methylpentane"
                  "< 25 ppm"
                  "N,N-Dimethylformamide"
                  "< 10 ppm"
                ]
                [
                  "Acetone"
                  "< 50 ppm"
                  "n-Butane"
                  "< 100 ppm"
                ]
                [
                  "Acetonitrile"
                  "< 50 ppm"
                  "Neopentane"
                  "< 100 ppm"
                ]
                [
                  "Benzene"
                  "< 1 ppm"
                  "Pentane"
                  "< 50 ppm"
                ]
                [
                  "Chloroform"
                  "< 10 ppm"
                  "Propane"
                  "< 100 ppm"
                ]
                [
                  "Cumene"
                  "< 100 ppm"
                  "Tetrahydrofuran"
                  "< 10 ppm"
                ]
                [
                  "Cyclohexane"
                  "< 50 ppm"
                  "Toluene"
                  "< 50 ppm"
                ]
                [
                  "Diethyl ether"
                  "< 50 ppm"
                  "Trichloroethene"
                  "< 50 ppm"
                ]
                [
                  "Ethanol"
                  "< 50 ppm"
                  "Xylenes (p-, m-, o-)"
                  "< 50 ppm"
                ]
                [
                  "Nitromethane"
                  "< 25 ppm"
                  "1-Propanol"
                  "< 100 ppm"
                ]
                [
                  "1,2-Dimethoxyethane"
                  "< 10 ppm"
                  "2-Methyl-1-Propanol"
                  "< 100 ppm"
                ]
                [
                  "Pyridine"
                  "< 10 ppm"
                  "1-Butanol"
                  "< 50 ppm"
                ]
                [
                  "2-Methoxyethanol"
                  "< 50 ppm"
                  "Propyl Acetate"
                  "< 50 ppm"
                ]
                [
                  "Formamide"
                  "< 50 ppm"
                  "3-Methyl-1-Butanol"
                  "< 100 ppm"
                ]
                [
                  "N,N-Dimethylacetamide"
                  "< 100 ppm"
                  "Isobutyl Acetate"
                  "< 50 ppm"
                ]
                [
                  "Ethyl Ether"
                  "< 100 ppm"
                  "1-Pentanol"
                  "< 100 ppm"
                ]
                [
                  "Methyl Acetate"
                  "< 100 ppm"
                  "Butyl Acetate"
                  "< 50 ppm"
                ]
                [
                  "Tert-Butylmethyl Ether"
                  "< 50 ppm"
                  "Anisole"
                  "< 50 ppm"
                ]
                [
                  "Methylbutyl Ketone"
                  "< 50 ppm"
                  "N-Methylpyrrolidone"
                  "< 50 ppm"
                ]
                [
                  "Methylbutyl Ketone"
                  "< 25 ppm"
                  "Tetralin"
                  "< 10 ppm"
                ]
                [
                  "Methylisobutyl Ketone"
                  "< 100 ppm"
                  "Sulfolane"
                  "< 10 ppm"
                ]
              ]
              "md" => """
                | Analyte                     | LoQ       | Analyte               | LoQ       |\n
                | --------------------------- | --------- | --------------------- | --------- |\n
                | (+/-)-2-Butanol             | < 10 ppm  | Ethyl Acetate         | < 50 ppm  |\n
                | 1,1-Dichloroethene          | < 5 ppm   | Ethyl benzene         | < 25 ppm  |\n
                | 1,2-Dichloroethane          | < 2 ppm   | Ethylene Glycol       | < 100 ppm |\n
                | 1,4-Dioxane                 | < 25 ppm  | Ethylene Oxide        | < 50 ppm  |\n
                | 2,2-Dimethylbutane          | < 25 ppm  | Heptane               | < 50 ppm  |\n
                | 2,3-Dimethylbutane          | < 25 ppm  | Hexane                | < 10 ppm  |\n
                | 2-Ethoxyethanol             | < 25 ppm  | Isobutane             | < 100 ppm |\n
                | 2-Methylbutane (Isopentane) | < 75 ppm  | Isopropyl acetate     | < 10 ppm  |\n
                | 2-Methylpentane             | < 25 ppm  | Methanol              | < 50 ppm  |\n
                | 2-Propanol                  | < 50 ppm  | Methylene Chloride    | < 50 ppm  |\n
                | 3-Methylpentane             | < 25 ppm  | N,N-Dimethylformamide | < 10 ppm  |\n
                | Acetone                     | < 50 ppm  | n-Butane              | < 100 ppm |\n
                | Acetonitrile                | < 50 ppm  | Neopentane            | < 100 ppm |\n
                | Benzene                     | < 1 ppm   | Pentane               | < 50 ppm  |\n
                | Chloroform                  | < 10 ppm  | Propane               | < 100 ppm |\n
                | Cumene                      | < 100 ppm | Tetrahydrofuran       | < 10 ppm  |\n
                | Cyclohexane                 | < 50 ppm  | Toluene               | < 50 ppm  |\n
                | Diethyl ether               | < 50 ppm  | Trichloroethene       | < 50 ppm  |\n
                | Ethanol                     | < 50 ppm  | Xylenes (p-, m-, o-)  | < 50 ppm  |\n
                | Nitromethane                | < 25 ppm  | 1-Propanol            | < 100 ppm |\n
                | 1,2-Dimethoxyethane         | < 10 ppm  | 2-Methyl-1-Propanol   | < 100 ppm |\n
                | Pyridine                    | < 10 ppm  | 1-Butanol             | < 50 ppm  |\n
                | 2-Methoxyethanol            | < 50 ppm  | Propyl Acetate        | < 50 ppm  |\n
                | Formamide                   | < 50 ppm  | 3-Methyl-1-Butanol    | < 100 ppm |\n
                | N,N-Dimethylacetamide       | < 100 ppm | Isobutyl Acetate      | < 50 ppm  |\n
                | Ethyl Ether                 | < 100 ppm | 1-Pentanol            | < 100 ppm |\n
                | Methyl Acetate              | < 100 ppm | Butyl Acetate         | < 50 ppm  |\n
                | Tert-Butylmethyl Ether      | < 50 ppm  | Anisole               | < 50 ppm  |\n
                | Methylbutyl Ketone          | < 50 ppm  | N-Methylpyrrolidone   | < 50 ppm  |\n
                | Methylbutyl Ketone          | < 25 ppm  | Tetralin              | < 10 ppm  |\n
                | Methylisobutyl Ketone       | < 100 ppm | Sulfolane             | < 10 ppm  |
                """
              "isPerfectTable" => true
              "csv" => """
                "Analyte","LoQ","Analyte","LoQ"\n
                "(+/-)-2-Butanol","< 10 ppm","Ethyl Acetate","< 50 ppm"\n
                "1,1-Dichloroethene","< 5 ppm","Ethyl benzene","< 25 ppm"\n
                "1,2-Dichloroethane","< 2 ppm","Ethylene Glycol","< 100 ppm"\n
                "1,4-Dioxane","< 25 ppm","Ethylene Oxide","< 50 ppm"\n
                "2,2-Dimethylbutane","< 25 ppm","Heptane","< 50 ppm"\n
                "2,3-Dimethylbutane","< 25 ppm","Hexane","< 10 ppm"\n
                "2-Ethoxyethanol","< 25 ppm","Isobutane","< 100 ppm"\n
                "2-Methylbutane (Isopentane)","< 75 ppm","Isopropyl acetate","< 10 ppm"\n
                "2-Methylpentane","< 25 ppm","Methanol","< 50 ppm"\n
                "2-Propanol","< 50 ppm","Methylene Chloride","< 50 ppm"\n
                "3-Methylpentane","< 25 ppm","N,N-Dimethylformamide","< 10 ppm"\n
                "Acetone","< 50 ppm","n-Butane","< 100 ppm"\n
                "Acetonitrile","< 50 ppm","Neopentane","< 100 ppm"\n
                "Benzene","< 1 ppm","Pentane","< 50 ppm"\n
                "Chloroform","< 10 ppm","Propane","< 100 ppm"\n
                "Cumene","< 100 ppm","Tetrahydrofuran","< 10 ppm"\n
                "Cyclohexane","< 50 ppm","Toluene","< 50 ppm"\n
                "Diethyl ether","< 50 ppm","Trichloroethene","< 50 ppm"\n
                "Ethanol","< 50 ppm","Xylenes (p-, m-, o-)","< 50 ppm"\n
                "Nitromethane","< 25 ppm","1-Propanol","< 100 ppm"\n
                "1,2-Dimethoxyethane","< 10 ppm","2-Methyl-1-Propanol","< 100 ppm"\n
                "Pyridine","< 10 ppm","1-Butanol","< 50 ppm"\n
                "2-Methoxyethanol","< 50 ppm","Propyl Acetate","< 50 ppm"\n
                "Formamide","< 50 ppm","3-Methyl-1-Butanol","< 100 ppm"\n
                "N,N-Dimethylacetamide","< 100 ppm","Isobutyl Acetate","< 50 ppm"\n
                "Ethyl Ether","< 100 ppm","1-Pentanol","< 100 ppm"\n
                "Methyl Acetate","< 100 ppm","Butyl Acetate","< 50 ppm"\n
                "Tert-Butylmethyl Ether","< 50 ppm","Anisole","< 50 ppm"\n
                "Methylbutyl Ketone","< 50 ppm","N-Methylpyrrolidone","< 50 ppm"\n
                "Methylbutyl Ketone","< 25 ppm","Tetralin","< 10 ppm"\n
                "Methylisobutyl Ketone","< 100 ppm","Sulfolane","< 10 ppm"
                """
            ]
          ]
          "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" => 0
        "job_auto_mode_triggered_pages" => 0
        "job_is_cache_hit" => true
      ]
    ]
    -labName: "Sample Testing Laboratories Inc."
    -sampleName: "Cannabis Product XYZ"
    -sampleMatrix: "Concentrated Oil"
    -internalPath: "/home/cbdextract/cbdextract.nw.agency/source/public/lab-reports/LabReportPage4.jpg"
    -productType: "cannabis"
    -aILogs: Doctrine\ORM\PersistentCollection {#964 …}
    -products: Doctrine\ORM\PersistentCollection {#1018 …}
  }
  -primaryKeyName: "id"
  -primaryKeyValue: 662
  -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: 662
  -name: "Lab Report Page 4"
  -externalUrl: "https://purecbdnc.com/cdn/shop/files/CBDistillery_CBD-Full-Spectrum-Relief-_-Relax-Softgels-30mgCOA4_3735d84c-d65f-49ae-9609-35e32538bb0a.jpg"
  -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 @1747758787 {#848
    date: 2025-05-20 16:33:07.0 UTC (+00:00)
  }
  -updatedAt: DateTime @1747744416 {#845
    date: 2025-05-20 12:33:36.0 UTC (+00:00)
  }
  -category: null
  -state: "processed"
  -expiryDate: ""
  -extractionDate: "2022-11-03"
  -thcaPercentage: "0"
  -totalThcPercentage: "0"
  -deltaNinePercentage: "0"
  -deltaNineWithThcaCombined: "0"
  -comments: null
  -internalUrl: "https://cbdextract.nw.agency/lab-reports/LabReportPage4.jpg"
  -markdownContent: ""# LIMITS OF QUANTITATION\n\n## Residual Solvents: ResSolv.2\n\n| Analyte                     | LoQ       | Analyte               | LoQ       |\n| --------------------------- | --------- | --------------------- | --------- |\n| (+\/-)-2-Butanol             | < 10 ppm  | Ethyl Acetate         | < 50 ppm  |\n| 1,1-Dichloroethene          | < 5 ppm   | Ethyl benzene         | < 25 ppm  |\n| 1,2-Dichloroethane          | < 2 ppm   | Ethylene Glycol       | < 100 ppm |\n| 1,4-Dioxane                 | < 25 ppm  | Ethylene Oxide        | < 50 ppm  |\n| 2,2-Dimethylbutane          | < 25 ppm  | Heptane               | < 50 ppm  |\n| 2,3-Dimethylbutane          | < 25 ppm  | Hexane                | < 10 ppm  |\n| 2-Ethoxyethanol             | < 25 ppm  | Isobutane             | < 100 ppm |\n| 2-Methylbutane (Isopentane) | < 75 ppm  | Isopropyl acetate     | < 10 ppm  |\n| 2-Methylpentane             | < 25 ppm  | Methanol              | < 50 ppm  |\n| 2-Propanol                  | < 50 ppm  | Methylene Chloride    | < 50 ppm  |\n| 3-Methylpentane             | < 25 ppm  | N,N-Dimethylformamide | < 10 ppm  |\n| Acetone                     | < 50 ppm  | n-Butane              | < 100 ppm |\n| Acetonitrile                | < 50 ppm  | Neopentane            | < 100 ppm |\n| Benzene                     | < 1 ppm   | Pentane               | < 50 ppm  |\n| Chloroform                  | < 10 ppm  | Propane               | < 100 ppm |\n| Cumene                      | < 100 ppm | Tetrahydrofuran       | < 10 ppm  |\n| Cyclohexane                 | < 50 ppm  | Toluene               | < 50 ppm  |\n| Diethyl ether               | < 50 ppm  | Trichloroethene       | < 50 ppm  |\n| Ethanol                     | < 50 ppm  | Xylenes (p-, m-, o-)  | < 50 ppm  |\n| Nitromethane                | < 25 ppm  | 1-Propanol            | < 100 ppm |\n| 1,2-Dimethoxyethane         | < 10 ppm  | 2-Methyl-1-Propanol   | < 100 ppm |\n| Pyridine                    | < 10 ppm  | 1-Butanol             | < 50 ppm  |\n| 2-Methoxyethanol            | < 50 ppm  | Propyl Acetate        | < 50 ppm  |\n| Formamide                   | < 50 ppm  | 3-Methyl-1-Butanol    | < 100 ppm |\n| N,N-Dimethylacetamide       | < 100 ppm | Isobutyl Acetate      | < 50 ppm  |\n| Ethyl Ether                 | < 100 ppm | 1-Pentanol            | < 100 ppm |\n| Methyl Acetate              | < 100 ppm | Butyl Acetate         | < 50 ppm  |\n| Tert-Butylmethyl Ether      | < 50 ppm  | Anisole               | < 50 ppm  |\n| Methylbutyl Ketone          | < 50 ppm  | N-Methylpyrrolidone   | < 50 ppm  |\n| Methylbutyl Ketone          | < 25 ppm  | Tetralin              | < 10 ppm  |\n| Methylisobutyl Ketone       | < 100 ppm | Sulfolane             | < 10 ppm  |\n""
  -debugData: null
  -jsonContent: [
    "pages" => [
      [
        "page" => 1
        "md" => """
          # LIMITS OF QUANTITATION\n
          \n
          ## Residual Solvents: ResSolv.2\n
          \n
          | Analyte                     | LoQ       | Analyte               | LoQ       |\n
          | --------------------------- | --------- | --------------------- | --------- |\n
          | (+/-)-2-Butanol             | < 10 ppm  | Ethyl Acetate         | < 50 ppm  |\n
          | 1,1-Dichloroethene          | < 5 ppm   | Ethyl benzene         | < 25 ppm  |\n
          | 1,2-Dichloroethane          | < 2 ppm   | Ethylene Glycol       | < 100 ppm |\n
          | 1,4-Dioxane                 | < 25 ppm  | Ethylene Oxide        | < 50 ppm  |\n
          | 2,2-Dimethylbutane          | < 25 ppm  | Heptane               | < 50 ppm  |\n
          | 2,3-Dimethylbutane          | < 25 ppm  | Hexane                | < 10 ppm  |\n
          | 2-Ethoxyethanol             | < 25 ppm  | Isobutane             | < 100 ppm |\n
          | 2-Methylbutane (Isopentane) | < 75 ppm  | Isopropyl acetate     | < 10 ppm  |\n
          | 2-Methylpentane             | < 25 ppm  | Methanol              | < 50 ppm  |\n
          | 2-Propanol                  | < 50 ppm  | Methylene Chloride    | < 50 ppm  |\n
          | 3-Methylpentane             | < 25 ppm  | N,N-Dimethylformamide | < 10 ppm  |\n
          | Acetone                     | < 50 ppm  | n-Butane              | < 100 ppm |\n
          | Acetonitrile                | < 50 ppm  | Neopentane            | < 100 ppm |\n
          | Benzene                     | < 1 ppm   | Pentane               | < 50 ppm  |\n
          | Chloroform                  | < 10 ppm  | Propane               | < 100 ppm |\n
          | Cumene                      | < 100 ppm | Tetrahydrofuran       | < 10 ppm  |\n
          | Cyclohexane                 | < 50 ppm  | Toluene               | < 50 ppm  |\n
          | Diethyl ether               | < 50 ppm  | Trichloroethene       | < 50 ppm  |\n
          | Ethanol                     | < 50 ppm  | Xylenes (p-, m-, o-)  | < 50 ppm  |\n
          | Nitromethane                | < 25 ppm  | 1-Propanol            | < 100 ppm |\n
          | 1,2-Dimethoxyethane         | < 10 ppm  | 2-Methyl-1-Propanol   | < 100 ppm |\n
          | Pyridine                    | < 10 ppm  | 1-Butanol             | < 50 ppm  |\n
          | 2-Methoxyethanol            | < 50 ppm  | Propyl Acetate        | < 50 ppm  |\n
          | Formamide                   | < 50 ppm  | 3-Methyl-1-Butanol    | < 100 ppm |\n
          | N,N-Dimethylacetamide       | < 100 ppm | Isobutyl Acetate      | < 50 ppm  |\n
          | Ethyl Ether                 | < 100 ppm | 1-Pentanol            | < 100 ppm |\n
          | Methyl Acetate              | < 100 ppm | Butyl Acetate         | < 50 ppm  |\n
          | Tert-Butylmethyl Ether      | < 50 ppm  | Anisole               | < 50 ppm  |\n
          | Methylbutyl Ketone          | < 50 ppm  | N-Methylpyrrolidone   | < 50 ppm  |\n
          | Methylbutyl Ketone          | < 25 ppm  | Tetralin              | < 10 ppm  |\n
          | Methylisobutyl Ketone       | < 100 ppm | Sulfolane             | < 10 ppm  |\n
          """
        "images" => [
          [
            "name" => "page_1.jpg"
            "height" => 0
            "width" => 0
            "x" => 0
            "y" => 0
            "type" => "full_page_screenshot"
          ]
        ]
        "charts" => []
        "items" => [
          [
            "type" => "heading"
            "lvl" => 1
            "value" => "LIMITS OF QUANTITATION"
            "md" => "# LIMITS OF QUANTITATION"
          ]
          [
            "type" => "heading"
            "lvl" => 2
            "value" => "Residual Solvents: ResSolv.2"
            "md" => "## Residual Solvents: ResSolv.2"
          ]
          [
            "type" => "table"
            "rows" => [
              [
                "Analyte"
                "LoQ"
                "Analyte"
                "LoQ"
              ]
              [
                "(+/-)-2-Butanol"
                "< 10 ppm"
                "Ethyl Acetate"
                "< 50 ppm"
              ]
              [
                "1,1-Dichloroethene"
                "< 5 ppm"
                "Ethyl benzene"
                "< 25 ppm"
              ]
              [
                "1,2-Dichloroethane"
                "< 2 ppm"
                "Ethylene Glycol"
                "< 100 ppm"
              ]
              [
                "1,4-Dioxane"
                "< 25 ppm"
                "Ethylene Oxide"
                "< 50 ppm"
              ]
              [
                "2,2-Dimethylbutane"
                "< 25 ppm"
                "Heptane"
                "< 50 ppm"
              ]
              [
                "2,3-Dimethylbutane"
                "< 25 ppm"
                "Hexane"
                "< 10 ppm"
              ]
              [
                "2-Ethoxyethanol"
                "< 25 ppm"
                "Isobutane"
                "< 100 ppm"
              ]
              [
                "2-Methylbutane (Isopentane)"
                "< 75 ppm"
                "Isopropyl acetate"
                "< 10 ppm"
              ]
              [
                "2-Methylpentane"
                "< 25 ppm"
                "Methanol"
                "< 50 ppm"
              ]
              [
                "2-Propanol"
                "< 50 ppm"
                "Methylene Chloride"
                "< 50 ppm"
              ]
              [
                "3-Methylpentane"
                "< 25 ppm"
                "N,N-Dimethylformamide"
                "< 10 ppm"
              ]
              [
                "Acetone"
                "< 50 ppm"
                "n-Butane"
                "< 100 ppm"
              ]
              [
                "Acetonitrile"
                "< 50 ppm"
                "Neopentane"
                "< 100 ppm"
              ]
              [
                "Benzene"
                "< 1 ppm"
                "Pentane"
                "< 50 ppm"
              ]
              [
                "Chloroform"
                "< 10 ppm"
                "Propane"
                "< 100 ppm"
              ]
              [
                "Cumene"
                "< 100 ppm"
                "Tetrahydrofuran"
                "< 10 ppm"
              ]
              [
                "Cyclohexane"
                "< 50 ppm"
                "Toluene"
                "< 50 ppm"
              ]
              [
                "Diethyl ether"
                "< 50 ppm"
                "Trichloroethene"
                "< 50 ppm"
              ]
              [
                "Ethanol"
                "< 50 ppm"
                "Xylenes (p-, m-, o-)"
                "< 50 ppm"
              ]
              [
                "Nitromethane"
                "< 25 ppm"
                "1-Propanol"
                "< 100 ppm"
              ]
              [
                "1,2-Dimethoxyethane"
                "< 10 ppm"
                "2-Methyl-1-Propanol"
                "< 100 ppm"
              ]
              [
                "Pyridine"
                "< 10 ppm"
                "1-Butanol"
                "< 50 ppm"
              ]
              [
                "2-Methoxyethanol"
                "< 50 ppm"
                "Propyl Acetate"
                "< 50 ppm"
              ]
              [
                "Formamide"
                "< 50 ppm"
                "3-Methyl-1-Butanol"
                "< 100 ppm"
              ]
              [
                "N,N-Dimethylacetamide"
                "< 100 ppm"
                "Isobutyl Acetate"
                "< 50 ppm"
              ]
              [
                "Ethyl Ether"
                "< 100 ppm"
                "1-Pentanol"
                "< 100 ppm"
              ]
              [
                "Methyl Acetate"
                "< 100 ppm"
                "Butyl Acetate"
                "< 50 ppm"
              ]
              [
                "Tert-Butylmethyl Ether"
                "< 50 ppm"
                "Anisole"
                "< 50 ppm"
              ]
              [
                "Methylbutyl Ketone"
                "< 50 ppm"
                "N-Methylpyrrolidone"
                "< 50 ppm"
              ]
              [
                "Methylbutyl Ketone"
                "< 25 ppm"
                "Tetralin"
                "< 10 ppm"
              ]
              [
                "Methylisobutyl Ketone"
                "< 100 ppm"
                "Sulfolane"
                "< 10 ppm"
              ]
            ]
            "md" => """
              | Analyte                     | LoQ       | Analyte               | LoQ       |\n
              | --------------------------- | --------- | --------------------- | --------- |\n
              | (+/-)-2-Butanol             | < 10 ppm  | Ethyl Acetate         | < 50 ppm  |\n
              | 1,1-Dichloroethene          | < 5 ppm   | Ethyl benzene         | < 25 ppm  |\n
              | 1,2-Dichloroethane          | < 2 ppm   | Ethylene Glycol       | < 100 ppm |\n
              | 1,4-Dioxane                 | < 25 ppm  | Ethylene Oxide        | < 50 ppm  |\n
              | 2,2-Dimethylbutane          | < 25 ppm  | Heptane               | < 50 ppm  |\n
              | 2,3-Dimethylbutane          | < 25 ppm  | Hexane                | < 10 ppm  |\n
              | 2-Ethoxyethanol             | < 25 ppm  | Isobutane             | < 100 ppm |\n
              | 2-Methylbutane (Isopentane) | < 75 ppm  | Isopropyl acetate     | < 10 ppm  |\n
              | 2-Methylpentane             | < 25 ppm  | Methanol              | < 50 ppm  |\n
              | 2-Propanol                  | < 50 ppm  | Methylene Chloride    | < 50 ppm  |\n
              | 3-Methylpentane             | < 25 ppm  | N,N-Dimethylformamide | < 10 ppm  |\n
              | Acetone                     | < 50 ppm  | n-Butane              | < 100 ppm |\n
              | Acetonitrile                | < 50 ppm  | Neopentane            | < 100 ppm |\n
              | Benzene                     | < 1 ppm   | Pentane               | < 50 ppm  |\n
              | Chloroform                  | < 10 ppm  | Propane               | < 100 ppm |\n
              | Cumene                      | < 100 ppm | Tetrahydrofuran       | < 10 ppm  |\n
              | Cyclohexane                 | < 50 ppm  | Toluene               | < 50 ppm  |\n
              | Diethyl ether               | < 50 ppm  | Trichloroethene       | < 50 ppm  |\n
              | Ethanol                     | < 50 ppm  | Xylenes (p-, m-, o-)  | < 50 ppm  |\n
              | Nitromethane                | < 25 ppm  | 1-Propanol            | < 100 ppm |\n
              | 1,2-Dimethoxyethane         | < 10 ppm  | 2-Methyl-1-Propanol   | < 100 ppm |\n
              | Pyridine                    | < 10 ppm  | 1-Butanol             | < 50 ppm  |\n
              | 2-Methoxyethanol            | < 50 ppm  | Propyl Acetate        | < 50 ppm  |\n
              | Formamide                   | < 50 ppm  | 3-Methyl-1-Butanol    | < 100 ppm |\n
              | N,N-Dimethylacetamide       | < 100 ppm | Isobutyl Acetate      | < 50 ppm  |\n
              | Ethyl Ether                 | < 100 ppm | 1-Pentanol            | < 100 ppm |\n
              | Methyl Acetate              | < 100 ppm | Butyl Acetate         | < 50 ppm  |\n
              | Tert-Butylmethyl Ether      | < 50 ppm  | Anisole               | < 50 ppm  |\n
              | Methylbutyl Ketone          | < 50 ppm  | N-Methylpyrrolidone   | < 50 ppm  |\n
              | Methylbutyl Ketone          | < 25 ppm  | Tetralin              | < 10 ppm  |\n
              | Methylisobutyl Ketone       | < 100 ppm | Sulfolane             | < 10 ppm  |
              """
            "isPerfectTable" => true
            "csv" => """
              "Analyte","LoQ","Analyte","LoQ"\n
              "(+/-)-2-Butanol","< 10 ppm","Ethyl Acetate","< 50 ppm"\n
              "1,1-Dichloroethene","< 5 ppm","Ethyl benzene","< 25 ppm"\n
              "1,2-Dichloroethane","< 2 ppm","Ethylene Glycol","< 100 ppm"\n
              "1,4-Dioxane","< 25 ppm","Ethylene Oxide","< 50 ppm"\n
              "2,2-Dimethylbutane","< 25 ppm","Heptane","< 50 ppm"\n
              "2,3-Dimethylbutane","< 25 ppm","Hexane","< 10 ppm"\n
              "2-Ethoxyethanol","< 25 ppm","Isobutane","< 100 ppm"\n
              "2-Methylbutane (Isopentane)","< 75 ppm","Isopropyl acetate","< 10 ppm"\n
              "2-Methylpentane","< 25 ppm","Methanol","< 50 ppm"\n
              "2-Propanol","< 50 ppm","Methylene Chloride","< 50 ppm"\n
              "3-Methylpentane","< 25 ppm","N,N-Dimethylformamide","< 10 ppm"\n
              "Acetone","< 50 ppm","n-Butane","< 100 ppm"\n
              "Acetonitrile","< 50 ppm","Neopentane","< 100 ppm"\n
              "Benzene","< 1 ppm","Pentane","< 50 ppm"\n
              "Chloroform","< 10 ppm","Propane","< 100 ppm"\n
              "Cumene","< 100 ppm","Tetrahydrofuran","< 10 ppm"\n
              "Cyclohexane","< 50 ppm","Toluene","< 50 ppm"\n
              "Diethyl ether","< 50 ppm","Trichloroethene","< 50 ppm"\n
              "Ethanol","< 50 ppm","Xylenes (p-, m-, o-)","< 50 ppm"\n
              "Nitromethane","< 25 ppm","1-Propanol","< 100 ppm"\n
              "1,2-Dimethoxyethane","< 10 ppm","2-Methyl-1-Propanol","< 100 ppm"\n
              "Pyridine","< 10 ppm","1-Butanol","< 50 ppm"\n
              "2-Methoxyethanol","< 50 ppm","Propyl Acetate","< 50 ppm"\n
              "Formamide","< 50 ppm","3-Methyl-1-Butanol","< 100 ppm"\n
              "N,N-Dimethylacetamide","< 100 ppm","Isobutyl Acetate","< 50 ppm"\n
              "Ethyl Ether","< 100 ppm","1-Pentanol","< 100 ppm"\n
              "Methyl Acetate","< 100 ppm","Butyl Acetate","< 50 ppm"\n
              "Tert-Butylmethyl Ether","< 50 ppm","Anisole","< 50 ppm"\n
              "Methylbutyl Ketone","< 50 ppm","N-Methylpyrrolidone","< 50 ppm"\n
              "Methylbutyl Ketone","< 25 ppm","Tetralin","< 10 ppm"\n
              "Methylisobutyl Ketone","< 100 ppm","Sulfolane","< 10 ppm"
              """
          ]
        ]
        "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" => 0
      "job_auto_mode_triggered_pages" => 0
      "job_is_cache_hit" => true
    ]
  ]
  -labName: "Sample Testing Laboratories Inc."
  -sampleName: "Cannabis Product XYZ"
  -sampleMatrix: "Concentrated Oil"
  -internalPath: "/home/cbdextract/cbdextract.nw.agency/source/public/lab-reports/LabReportPage4.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: 662
      -name: "Lab Report Page 4"
      -externalUrl: "https://purecbdnc.com/cdn/shop/files/CBDistillery_CBD-Full-Spectrum-Relief-_-Relax-Softgels-30mgCOA4_3735d84c-d65f-49ae-9609-35e32538bb0a.jpg"
      -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 @1747758787 {#848
        date: 2025-05-20 16:33:07.0 UTC (+00:00)
      }
      -updatedAt: DateTime @1747744416 {#845
        date: 2025-05-20 12:33:36.0 UTC (+00:00)
      }
      -category: null
      -state: "processed"
      -expiryDate: ""
      -extractionDate: "2022-11-03"
      -thcaPercentage: "0"
      -totalThcPercentage: "0"
      -deltaNinePercentage: "0"
      -deltaNineWithThcaCombined: "0"
      -comments: null
      -internalUrl: "https://cbdextract.nw.agency/lab-reports/LabReportPage4.jpg"
      -markdownContent: ""# LIMITS OF QUANTITATION\n\n## Residual Solvents: ResSolv.2\n\n| Analyte                     | LoQ       | Analyte               | LoQ       |\n| --------------------------- | --------- | --------------------- | --------- |\n| (+\/-)-2-Butanol             | < 10 ppm  | Ethyl Acetate         | < 50 ppm  |\n| 1,1-Dichloroethene          | < 5 ppm   | Ethyl benzene         | < 25 ppm  |\n| 1,2-Dichloroethane          | < 2 ppm   | Ethylene Glycol       | < 100 ppm |\n| 1,4-Dioxane                 | < 25 ppm  | Ethylene Oxide        | < 50 ppm  |\n| 2,2-Dimethylbutane          | < 25 ppm  | Heptane               | < 50 ppm  |\n| 2,3-Dimethylbutane          | < 25 ppm  | Hexane                | < 10 ppm  |\n| 2-Ethoxyethanol             | < 25 ppm  | Isobutane             | < 100 ppm |\n| 2-Methylbutane (Isopentane) | < 75 ppm  | Isopropyl acetate     | < 10 ppm  |\n| 2-Methylpentane             | < 25 ppm  | Methanol              | < 50 ppm  |\n| 2-Propanol                  | < 50 ppm  | Methylene Chloride    | < 50 ppm  |\n| 3-Methylpentane             | < 25 ppm  | N,N-Dimethylformamide | < 10 ppm  |\n| Acetone                     | < 50 ppm  | n-Butane              | < 100 ppm |\n| Acetonitrile                | < 50 ppm  | Neopentane            | < 100 ppm |\n| Benzene                     | < 1 ppm   | Pentane               | < 50 ppm  |\n| Chloroform                  | < 10 ppm  | Propane               | < 100 ppm |\n| Cumene                      | < 100 ppm | Tetrahydrofuran       | < 10 ppm  |\n| Cyclohexane                 | < 50 ppm  | Toluene               | < 50 ppm  |\n| Diethyl ether               | < 50 ppm  | Trichloroethene       | < 50 ppm  |\n| Ethanol                     | < 50 ppm  | Xylenes (p-, m-, o-)  | < 50 ppm  |\n| Nitromethane                | < 25 ppm  | 1-Propanol            | < 100 ppm |\n| 1,2-Dimethoxyethane         | < 10 ppm  | 2-Methyl-1-Propanol   | < 100 ppm |\n| Pyridine                    | < 10 ppm  | 1-Butanol             | < 50 ppm  |\n| 2-Methoxyethanol            | < 50 ppm  | Propyl Acetate        | < 50 ppm  |\n| Formamide                   | < 50 ppm  | 3-Methyl-1-Butanol    | < 100 ppm |\n| N,N-Dimethylacetamide       | < 100 ppm | Isobutyl Acetate      | < 50 ppm  |\n| Ethyl Ether                 | < 100 ppm | 1-Pentanol            | < 100 ppm |\n| Methyl Acetate              | < 100 ppm | Butyl Acetate         | < 50 ppm  |\n| Tert-Butylmethyl Ether      | < 50 ppm  | Anisole               | < 50 ppm  |\n| Methylbutyl Ketone          | < 50 ppm  | N-Methylpyrrolidone   | < 50 ppm  |\n| Methylbutyl Ketone          | < 25 ppm  | Tetralin              | < 10 ppm  |\n| Methylisobutyl Ketone       | < 100 ppm | Sulfolane             | < 10 ppm  |\n""
      -debugData: null
      -jsonContent: [
        "pages" => [
          [
            "page" => 1
            "md" => """
              # LIMITS OF QUANTITATION\n
              \n
              ## Residual Solvents: ResSolv.2\n
              \n
              | Analyte                     | LoQ       | Analyte               | LoQ       |\n
              | --------------------------- | --------- | --------------------- | --------- |\n
              | (+/-)-2-Butanol             | < 10 ppm  | Ethyl Acetate         | < 50 ppm  |\n
              | 1,1-Dichloroethene          | < 5 ppm   | Ethyl benzene         | < 25 ppm  |\n
              | 1,2-Dichloroethane          | < 2 ppm   | Ethylene Glycol       | < 100 ppm |\n
              | 1,4-Dioxane                 | < 25 ppm  | Ethylene Oxide        | < 50 ppm  |\n
              | 2,2-Dimethylbutane          | < 25 ppm  | Heptane               | < 50 ppm  |\n
              | 2,3-Dimethylbutane          | < 25 ppm  | Hexane                | < 10 ppm  |\n
              | 2-Ethoxyethanol             | < 25 ppm  | Isobutane             | < 100 ppm |\n
              | 2-Methylbutane (Isopentane) | < 75 ppm  | Isopropyl acetate     | < 10 ppm  |\n
              | 2-Methylpentane             | < 25 ppm  | Methanol              | < 50 ppm  |\n
              | 2-Propanol                  | < 50 ppm  | Methylene Chloride    | < 50 ppm  |\n
              | 3-Methylpentane             | < 25 ppm  | N,N-Dimethylformamide | < 10 ppm  |\n
              | Acetone                     | < 50 ppm  | n-Butane              | < 100 ppm |\n
              | Acetonitrile                | < 50 ppm  | Neopentane            | < 100 ppm |\n
              | Benzene                     | < 1 ppm   | Pentane               | < 50 ppm  |\n
              | Chloroform                  | < 10 ppm  | Propane               | < 100 ppm |\n
              | Cumene                      | < 100 ppm | Tetrahydrofuran       | < 10 ppm  |\n
              | Cyclohexane                 | < 50 ppm  | Toluene               | < 50 ppm  |\n
              | Diethyl ether               | < 50 ppm  | Trichloroethene       | < 50 ppm  |\n
              | Ethanol                     | < 50 ppm  | Xylenes (p-, m-, o-)  | < 50 ppm  |\n
              | Nitromethane                | < 25 ppm  | 1-Propanol            | < 100 ppm |\n
              | 1,2-Dimethoxyethane         | < 10 ppm  | 2-Methyl-1-Propanol   | < 100 ppm |\n
              | Pyridine                    | < 10 ppm  | 1-Butanol             | < 50 ppm  |\n
              | 2-Methoxyethanol            | < 50 ppm  | Propyl Acetate        | < 50 ppm  |\n
              | Formamide                   | < 50 ppm  | 3-Methyl-1-Butanol    | < 100 ppm |\n
              | N,N-Dimethylacetamide       | < 100 ppm | Isobutyl Acetate      | < 50 ppm  |\n
              | Ethyl Ether                 | < 100 ppm | 1-Pentanol            | < 100 ppm |\n
              | Methyl Acetate              | < 100 ppm | Butyl Acetate         | < 50 ppm  |\n
              | Tert-Butylmethyl Ether      | < 50 ppm  | Anisole               | < 50 ppm  |\n
              | Methylbutyl Ketone          | < 50 ppm  | N-Methylpyrrolidone   | < 50 ppm  |\n
              | Methylbutyl Ketone          | < 25 ppm  | Tetralin              | < 10 ppm  |\n
              | Methylisobutyl Ketone       | < 100 ppm | Sulfolane             | < 10 ppm  |\n
              """
            "images" => [
              [
                "name" => "page_1.jpg"
                "height" => 0
                "width" => 0
                "x" => 0
                "y" => 0
                "type" => "full_page_screenshot"
              ]
            ]
            "charts" => []
            "items" => [
              [
                "type" => "heading"
                "lvl" => 1
                "value" => "LIMITS OF QUANTITATION"
                "md" => "# LIMITS OF QUANTITATION"
              ]
              [
                "type" => "heading"
                "lvl" => 2
                "value" => "Residual Solvents: ResSolv.2"
                "md" => "## Residual Solvents: ResSolv.2"
              ]
              [
                "type" => "table"
                "rows" => [
                  [
                    "Analyte"
                    "LoQ"
                    "Analyte"
                    "LoQ"
                  ]
                  [
                    "(+/-)-2-Butanol"
                    "< 10 ppm"
                    "Ethyl Acetate"
                    "< 50 ppm"
                  ]
                  [
                    "1,1-Dichloroethene"
                    "< 5 ppm"
                    "Ethyl benzene"
                    "< 25 ppm"
                  ]
                  [
                    "1,2-Dichloroethane"
                    "< 2 ppm"
                    "Ethylene Glycol"
                    "< 100 ppm"
                  ]
                  [
                    "1,4-Dioxane"
                    "< 25 ppm"
                    "Ethylene Oxide"
                    "< 50 ppm"
                  ]
                  [
                    "2,2-Dimethylbutane"
                    "< 25 ppm"
                    "Heptane"
                    "< 50 ppm"
                  ]
                  [
                    "2,3-Dimethylbutane"
                    "< 25 ppm"
                    "Hexane"
                    "< 10 ppm"
                  ]
                  [
                    "2-Ethoxyethanol"
                    "< 25 ppm"
                    "Isobutane"
                    "< 100 ppm"
                  ]
                  [
                    "2-Methylbutane (Isopentane)"
                    "< 75 ppm"
                    "Isopropyl acetate"
                    "< 10 ppm"
                  ]
                  [
                    "2-Methylpentane"
                    "< 25 ppm"
                    "Methanol"
                    "< 50 ppm"
                  ]
                  [
                    "2-Propanol"
                    "< 50 ppm"
                    "Methylene Chloride"
                    "< 50 ppm"
                  ]
                  [
                    "3-Methylpentane"
                    "< 25 ppm"
                    "N,N-Dimethylformamide"
                    "< 10 ppm"
                  ]
                  [
                    "Acetone"
                    "< 50 ppm"
                    "n-Butane"
                    "< 100 ppm"
                  ]
                  [
                    "Acetonitrile"
                    "< 50 ppm"
                    "Neopentane"
                    "< 100 ppm"
                  ]
                  [
                    "Benzene"
                    "< 1 ppm"
                    "Pentane"
                    "< 50 ppm"
                  ]
                  [
                    "Chloroform"
                    "< 10 ppm"
                    "Propane"
                    "< 100 ppm"
                  ]
                  [
                    "Cumene"
                    "< 100 ppm"
                    "Tetrahydrofuran"
                    "< 10 ppm"
                  ]
                  [
                    "Cyclohexane"
                    "< 50 ppm"
                    "Toluene"
                    "< 50 ppm"
                  ]
                  [
                    "Diethyl ether"
                    "< 50 ppm"
                    "Trichloroethene"
                    "< 50 ppm"
                  ]
                  [
                    "Ethanol"
                    "< 50 ppm"
                    "Xylenes (p-, m-, o-)"
                    "< 50 ppm"
                  ]
                  [
                    "Nitromethane"
                    "< 25 ppm"
                    "1-Propanol"
                    "< 100 ppm"
                  ]
                  [
                    "1,2-Dimethoxyethane"
                    "< 10 ppm"
                    "2-Methyl-1-Propanol"
                    "< 100 ppm"
                  ]
                  [
                    "Pyridine"
                    "< 10 ppm"
                    "1-Butanol"
                    "< 50 ppm"
                  ]
                  [
                    "2-Methoxyethanol"
                    "< 50 ppm"
                    "Propyl Acetate"
                    "< 50 ppm"
                  ]
                  [
                    "Formamide"
                    "< 50 ppm"
                    "3-Methyl-1-Butanol"
                    "< 100 ppm"
                  ]
                  [
                    "N,N-Dimethylacetamide"
                    "< 100 ppm"
                    "Isobutyl Acetate"
                    "< 50 ppm"
                  ]
                  [
                    "Ethyl Ether"
                    "< 100 ppm"
                    "1-Pentanol"
                    "< 100 ppm"
                  ]
                  [
                    "Methyl Acetate"
                    "< 100 ppm"
                    "Butyl Acetate"
                    "< 50 ppm"
                  ]
                  [
                    "Tert-Butylmethyl Ether"
                    "< 50 ppm"
                    "Anisole"
                    "< 50 ppm"
                  ]
                  [
                    "Methylbutyl Ketone"
                    "< 50 ppm"
                    "N-Methylpyrrolidone"
                    "< 50 ppm"
                  ]
                  [
                    "Methylbutyl Ketone"
                    "< 25 ppm"
                    "Tetralin"
                    "< 10 ppm"
                  ]
                  [
                    "Methylisobutyl Ketone"
                    "< 100 ppm"
                    "Sulfolane"
                    "< 10 ppm"
                  ]
                ]
                "md" => """
                  | Analyte                     | LoQ       | Analyte               | LoQ       |\n
                  | --------------------------- | --------- | --------------------- | --------- |\n
                  | (+/-)-2-Butanol             | < 10 ppm  | Ethyl Acetate         | < 50 ppm  |\n
                  | 1,1-Dichloroethene          | < 5 ppm   | Ethyl benzene         | < 25 ppm  |\n
                  | 1,2-Dichloroethane          | < 2 ppm   | Ethylene Glycol       | < 100 ppm |\n
                  | 1,4-Dioxane                 | < 25 ppm  | Ethylene Oxide        | < 50 ppm  |\n
                  | 2,2-Dimethylbutane          | < 25 ppm  | Heptane               | < 50 ppm  |\n
                  | 2,3-Dimethylbutane          | < 25 ppm  | Hexane                | < 10 ppm  |\n
                  | 2-Ethoxyethanol             | < 25 ppm  | Isobutane             | < 100 ppm |\n
                  | 2-Methylbutane (Isopentane) | < 75 ppm  | Isopropyl acetate     | < 10 ppm  |\n
                  | 2-Methylpentane             | < 25 ppm  | Methanol              | < 50 ppm  |\n
                  | 2-Propanol                  | < 50 ppm  | Methylene Chloride    | < 50 ppm  |\n
                  | 3-Methylpentane             | < 25 ppm  | N,N-Dimethylformamide | < 10 ppm  |\n
                  | Acetone                     | < 50 ppm  | n-Butane              | < 100 ppm |\n
                  | Acetonitrile                | < 50 ppm  | Neopentane            | < 100 ppm |\n
                  | Benzene                     | < 1 ppm   | Pentane               | < 50 ppm  |\n
                  | Chloroform                  | < 10 ppm  | Propane               | < 100 ppm |\n
                  | Cumene                      | < 100 ppm | Tetrahydrofuran       | < 10 ppm  |\n
                  | Cyclohexane                 | < 50 ppm  | Toluene               | < 50 ppm  |\n
                  | Diethyl ether               | < 50 ppm  | Trichloroethene       | < 50 ppm  |\n
                  | Ethanol                     | < 50 ppm  | Xylenes (p-, m-, o-)  | < 50 ppm  |\n
                  | Nitromethane                | < 25 ppm  | 1-Propanol            | < 100 ppm |\n
                  | 1,2-Dimethoxyethane         | < 10 ppm  | 2-Methyl-1-Propanol   | < 100 ppm |\n
                  | Pyridine                    | < 10 ppm  | 1-Butanol             | < 50 ppm  |\n
                  | 2-Methoxyethanol            | < 50 ppm  | Propyl Acetate        | < 50 ppm  |\n
                  | Formamide                   | < 50 ppm  | 3-Methyl-1-Butanol    | < 100 ppm |\n
                  | N,N-Dimethylacetamide       | < 100 ppm | Isobutyl Acetate      | < 50 ppm  |\n
                  | Ethyl Ether                 | < 100 ppm | 1-Pentanol            | < 100 ppm |\n
                  | Methyl Acetate              | < 100 ppm | Butyl Acetate         | < 50 ppm  |\n
                  | Tert-Butylmethyl Ether      | < 50 ppm  | Anisole               | < 50 ppm  |\n
                  | Methylbutyl Ketone          | < 50 ppm  | N-Methylpyrrolidone   | < 50 ppm  |\n
                  | Methylbutyl Ketone          | < 25 ppm  | Tetralin              | < 10 ppm  |\n
                  | Methylisobutyl Ketone       | < 100 ppm | Sulfolane             | < 10 ppm  |
                  """
                "isPerfectTable" => true
                "csv" => """
                  "Analyte","LoQ","Analyte","LoQ"\n
                  "(+/-)-2-Butanol","< 10 ppm","Ethyl Acetate","< 50 ppm"\n
                  "1,1-Dichloroethene","< 5 ppm","Ethyl benzene","< 25 ppm"\n
                  "1,2-Dichloroethane","< 2 ppm","Ethylene Glycol","< 100 ppm"\n
                  "1,4-Dioxane","< 25 ppm","Ethylene Oxide","< 50 ppm"\n
                  "2,2-Dimethylbutane","< 25 ppm","Heptane","< 50 ppm"\n
                  "2,3-Dimethylbutane","< 25 ppm","Hexane","< 10 ppm"\n
                  "2-Ethoxyethanol","< 25 ppm","Isobutane","< 100 ppm"\n
                  "2-Methylbutane (Isopentane)","< 75 ppm","Isopropyl acetate","< 10 ppm"\n
                  "2-Methylpentane","< 25 ppm","Methanol","< 50 ppm"\n
                  "2-Propanol","< 50 ppm","Methylene Chloride","< 50 ppm"\n
                  "3-Methylpentane","< 25 ppm","N,N-Dimethylformamide","< 10 ppm"\n
                  "Acetone","< 50 ppm","n-Butane","< 100 ppm"\n
                  "Acetonitrile","< 50 ppm","Neopentane","< 100 ppm"\n
                  "Benzene","< 1 ppm","Pentane","< 50 ppm"\n
                  "Chloroform","< 10 ppm","Propane","< 100 ppm"\n
                  "Cumene","< 100 ppm","Tetrahydrofuran","< 10 ppm"\n
                  "Cyclohexane","< 50 ppm","Toluene","< 50 ppm"\n
                  "Diethyl ether","< 50 ppm","Trichloroethene","< 50 ppm"\n
                  "Ethanol","< 50 ppm","Xylenes (p-, m-, o-)","< 50 ppm"\n
                  "Nitromethane","< 25 ppm","1-Propanol","< 100 ppm"\n
                  "1,2-Dimethoxyethane","< 10 ppm","2-Methyl-1-Propanol","< 100 ppm"\n
                  "Pyridine","< 10 ppm","1-Butanol","< 50 ppm"\n
                  "2-Methoxyethanol","< 50 ppm","Propyl Acetate","< 50 ppm"\n
                  "Formamide","< 50 ppm","3-Methyl-1-Butanol","< 100 ppm"\n
                  "N,N-Dimethylacetamide","< 100 ppm","Isobutyl Acetate","< 50 ppm"\n
                  "Ethyl Ether","< 100 ppm","1-Pentanol","< 100 ppm"\n
                  "Methyl Acetate","< 100 ppm","Butyl Acetate","< 50 ppm"\n
                  "Tert-Butylmethyl Ether","< 50 ppm","Anisole","< 50 ppm"\n
                  "Methylbutyl Ketone","< 50 ppm","N-Methylpyrrolidone","< 50 ppm"\n
                  "Methylbutyl Ketone","< 25 ppm","Tetralin","< 10 ppm"\n
                  "Methylisobutyl Ketone","< 100 ppm","Sulfolane","< 10 ppm"
                  """
              ]
            ]
            "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" => 0
          "job_auto_mode_triggered_pages" => 0
          "job_is_cache_hit" => true
        ]
      ]
      -labName: "Sample Testing Laboratories Inc."
      -sampleName: "Cannabis Product XYZ"
      -sampleMatrix: "Concentrated Oil"
      -internalPath: "/home/cbdextract/cbdextract.nw.agency/source/public/lab-reports/LabReportPage4.jpg"
      -productType: "cannabis"
      -aILogs: Doctrine\ORM\PersistentCollection {#964 …}
      -products: Doctrine\ORM\PersistentCollection {#1018 …}
    }
    -primaryKeyName: "id"
    -primaryKeyValue: 662
    -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: 662
  -name: "Lab Report Page 4"
  -externalUrl: "https://purecbdnc.com/cdn/shop/files/CBDistillery_CBD-Full-Spectrum-Relief-_-Relax-Softgels-30mgCOA4_3735d84c-d65f-49ae-9609-35e32538bb0a.jpg"
  -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 @1747758787 {#848
    date: 2025-05-20 16:33:07.0 UTC (+00:00)
  }
  -updatedAt: DateTime @1747744416 {#845
    date: 2025-05-20 12:33:36.0 UTC (+00:00)
  }
  -category: null
  -state: "processed"
  -expiryDate: ""
  -extractionDate: "2022-11-03"
  -thcaPercentage: "0"
  -totalThcPercentage: "0"
  -deltaNinePercentage: "0"
  -deltaNineWithThcaCombined: "0"
  -comments: null
  -internalUrl: "https://cbdextract.nw.agency/lab-reports/LabReportPage4.jpg"
  -markdownContent: ""# LIMITS OF QUANTITATION\n\n## Residual Solvents: ResSolv.2\n\n| Analyte                     | LoQ       | Analyte               | LoQ       |\n| --------------------------- | --------- | --------------------- | --------- |\n| (+\/-)-2-Butanol             | < 10 ppm  | Ethyl Acetate         | < 50 ppm  |\n| 1,1-Dichloroethene          | < 5 ppm   | Ethyl benzene         | < 25 ppm  |\n| 1,2-Dichloroethane          | < 2 ppm   | Ethylene Glycol       | < 100 ppm |\n| 1,4-Dioxane                 | < 25 ppm  | Ethylene Oxide        | < 50 ppm  |\n| 2,2-Dimethylbutane          | < 25 ppm  | Heptane               | < 50 ppm  |\n| 2,3-Dimethylbutane          | < 25 ppm  | Hexane                | < 10 ppm  |\n| 2-Ethoxyethanol             | < 25 ppm  | Isobutane             | < 100 ppm |\n| 2-Methylbutane (Isopentane) | < 75 ppm  | Isopropyl acetate     | < 10 ppm  |\n| 2-Methylpentane             | < 25 ppm  | Methanol              | < 50 ppm  |\n| 2-Propanol                  | < 50 ppm  | Methylene Chloride    | < 50 ppm  |\n| 3-Methylpentane             | < 25 ppm  | N,N-Dimethylformamide | < 10 ppm  |\n| Acetone                     | < 50 ppm  | n-Butane              | < 100 ppm |\n| Acetonitrile                | < 50 ppm  | Neopentane            | < 100 ppm |\n| Benzene                     | < 1 ppm   | Pentane               | < 50 ppm  |\n| Chloroform                  | < 10 ppm  | Propane               | < 100 ppm |\n| Cumene                      | < 100 ppm | Tetrahydrofuran       | < 10 ppm  |\n| Cyclohexane                 | < 50 ppm  | Toluene               | < 50 ppm  |\n| Diethyl ether               | < 50 ppm  | Trichloroethene       | < 50 ppm  |\n| Ethanol                     | < 50 ppm  | Xylenes (p-, m-, o-)  | < 50 ppm  |\n| Nitromethane                | < 25 ppm  | 1-Propanol            | < 100 ppm |\n| 1,2-Dimethoxyethane         | < 10 ppm  | 2-Methyl-1-Propanol   | < 100 ppm |\n| Pyridine                    | < 10 ppm  | 1-Butanol             | < 50 ppm  |\n| 2-Methoxyethanol            | < 50 ppm  | Propyl Acetate        | < 50 ppm  |\n| Formamide                   | < 50 ppm  | 3-Methyl-1-Butanol    | < 100 ppm |\n| N,N-Dimethylacetamide       | < 100 ppm | Isobutyl Acetate      | < 50 ppm  |\n| Ethyl Ether                 | < 100 ppm | 1-Pentanol            | < 100 ppm |\n| Methyl Acetate              | < 100 ppm | Butyl Acetate         | < 50 ppm  |\n| Tert-Butylmethyl Ether      | < 50 ppm  | Anisole               | < 50 ppm  |\n| Methylbutyl Ketone          | < 50 ppm  | N-Methylpyrrolidone   | < 50 ppm  |\n| Methylbutyl Ketone          | < 25 ppm  | Tetralin              | < 10 ppm  |\n| Methylisobutyl Ketone       | < 100 ppm | Sulfolane             | < 10 ppm  |\n""
  -debugData: null
  -jsonContent: [
    "pages" => [
      [
        "page" => 1
        "md" => """
          # LIMITS OF QUANTITATION\n
          \n
          ## Residual Solvents: ResSolv.2\n
          \n
          | Analyte                     | LoQ       | Analyte               | LoQ       |\n
          | --------------------------- | --------- | --------------------- | --------- |\n
          | (+/-)-2-Butanol             | < 10 ppm  | Ethyl Acetate         | < 50 ppm  |\n
          | 1,1-Dichloroethene          | < 5 ppm   | Ethyl benzene         | < 25 ppm  |\n
          | 1,2-Dichloroethane          | < 2 ppm   | Ethylene Glycol       | < 100 ppm |\n
          | 1,4-Dioxane                 | < 25 ppm  | Ethylene Oxide        | < 50 ppm  |\n
          | 2,2-Dimethylbutane          | < 25 ppm  | Heptane               | < 50 ppm  |\n
          | 2,3-Dimethylbutane          | < 25 ppm  | Hexane                | < 10 ppm  |\n
          | 2-Ethoxyethanol             | < 25 ppm  | Isobutane             | < 100 ppm |\n
          | 2-Methylbutane (Isopentane) | < 75 ppm  | Isopropyl acetate     | < 10 ppm  |\n
          | 2-Methylpentane             | < 25 ppm  | Methanol              | < 50 ppm  |\n
          | 2-Propanol                  | < 50 ppm  | Methylene Chloride    | < 50 ppm  |\n
          | 3-Methylpentane             | < 25 ppm  | N,N-Dimethylformamide | < 10 ppm  |\n
          | Acetone                     | < 50 ppm  | n-Butane              | < 100 ppm |\n
          | Acetonitrile                | < 50 ppm  | Neopentane            | < 100 ppm |\n
          | Benzene                     | < 1 ppm   | Pentane               | < 50 ppm  |\n
          | Chloroform                  | < 10 ppm  | Propane               | < 100 ppm |\n
          | Cumene                      | < 100 ppm | Tetrahydrofuran       | < 10 ppm  |\n
          | Cyclohexane                 | < 50 ppm  | Toluene               | < 50 ppm  |\n
          | Diethyl ether               | < 50 ppm  | Trichloroethene       | < 50 ppm  |\n
          | Ethanol                     | < 50 ppm  | Xylenes (p-, m-, o-)  | < 50 ppm  |\n
          | Nitromethane                | < 25 ppm  | 1-Propanol            | < 100 ppm |\n
          | 1,2-Dimethoxyethane         | < 10 ppm  | 2-Methyl-1-Propanol   | < 100 ppm |\n
          | Pyridine                    | < 10 ppm  | 1-Butanol             | < 50 ppm  |\n
          | 2-Methoxyethanol            | < 50 ppm  | Propyl Acetate        | < 50 ppm  |\n
          | Formamide                   | < 50 ppm  | 3-Methyl-1-Butanol    | < 100 ppm |\n
          | N,N-Dimethylacetamide       | < 100 ppm | Isobutyl Acetate      | < 50 ppm  |\n
          | Ethyl Ether                 | < 100 ppm | 1-Pentanol            | < 100 ppm |\n
          | Methyl Acetate              | < 100 ppm | Butyl Acetate         | < 50 ppm  |\n
          | Tert-Butylmethyl Ether      | < 50 ppm  | Anisole               | < 50 ppm  |\n
          | Methylbutyl Ketone          | < 50 ppm  | N-Methylpyrrolidone   | < 50 ppm  |\n
          | Methylbutyl Ketone          | < 25 ppm  | Tetralin              | < 10 ppm  |\n
          | Methylisobutyl Ketone       | < 100 ppm | Sulfolane             | < 10 ppm  |\n
          """
        "images" => [
          [
            "name" => "page_1.jpg"
            "height" => 0
            "width" => 0
            "x" => 0
            "y" => 0
            "type" => "full_page_screenshot"
          ]
        ]
        "charts" => []
        "items" => [
          [
            "type" => "heading"
            "lvl" => 1
            "value" => "LIMITS OF QUANTITATION"
            "md" => "# LIMITS OF QUANTITATION"
          ]
          [
            "type" => "heading"
            "lvl" => 2
            "value" => "Residual Solvents: ResSolv.2"
            "md" => "## Residual Solvents: ResSolv.2"
          ]
          [
            "type" => "table"
            "rows" => [
              [
                "Analyte"
                "LoQ"
                "Analyte"
                "LoQ"
              ]
              [
                "(+/-)-2-Butanol"
                "< 10 ppm"
                "Ethyl Acetate"
                "< 50 ppm"
              ]
              [
                "1,1-Dichloroethene"
                "< 5 ppm"
                "Ethyl benzene"
                "< 25 ppm"
              ]
              [
                "1,2-Dichloroethane"
                "< 2 ppm"
                "Ethylene Glycol"
                "< 100 ppm"
              ]
              [
                "1,4-Dioxane"
                "< 25 ppm"
                "Ethylene Oxide"
                "< 50 ppm"
              ]
              [
                "2,2-Dimethylbutane"
                "< 25 ppm"
                "Heptane"
                "< 50 ppm"
              ]
              [
                "2,3-Dimethylbutane"
                "< 25 ppm"
                "Hexane"
                "< 10 ppm"
              ]
              [
                "2-Ethoxyethanol"
                "< 25 ppm"
                "Isobutane"
                "< 100 ppm"
              ]
              [
                "2-Methylbutane (Isopentane)"
                "< 75 ppm"
                "Isopropyl acetate"
                "< 10 ppm"
              ]
              [
                "2-Methylpentane"
                "< 25 ppm"
                "Methanol"
                "< 50 ppm"
              ]
              [
                "2-Propanol"
                "< 50 ppm"
                "Methylene Chloride"
                "< 50 ppm"
              ]
              [
                "3-Methylpentane"
                "< 25 ppm"
                "N,N-Dimethylformamide"
                "< 10 ppm"
              ]
              [
                "Acetone"
                "< 50 ppm"
                "n-Butane"
                "< 100 ppm"
              ]
              [
                "Acetonitrile"
                "< 50 ppm"
                "Neopentane"
                "< 100 ppm"
              ]
              [
                "Benzene"
                "< 1 ppm"
                "Pentane"
                "< 50 ppm"
              ]
              [
                "Chloroform"
                "< 10 ppm"
                "Propane"
                "< 100 ppm"
              ]
              [
                "Cumene"
                "< 100 ppm"
                "Tetrahydrofuran"
                "< 10 ppm"
              ]
              [
                "Cyclohexane"
                "< 50 ppm"
                "Toluene"
                "< 50 ppm"
              ]
              [
                "Diethyl ether"
                "< 50 ppm"
                "Trichloroethene"
                "< 50 ppm"
              ]
              [
                "Ethanol"
                "< 50 ppm"
                "Xylenes (p-, m-, o-)"
                "< 50 ppm"
              ]
              [
                "Nitromethane"
                "< 25 ppm"
                "1-Propanol"
                "< 100 ppm"
              ]
              [
                "1,2-Dimethoxyethane"
                "< 10 ppm"
                "2-Methyl-1-Propanol"
                "< 100 ppm"
              ]
              [
                "Pyridine"
                "< 10 ppm"
                "1-Butanol"
                "< 50 ppm"
              ]
              [
                "2-Methoxyethanol"
                "< 50 ppm"
                "Propyl Acetate"
                "< 50 ppm"
              ]
              [
                "Formamide"
                "< 50 ppm"
                "3-Methyl-1-Butanol"
                "< 100 ppm"
              ]
              [
                "N,N-Dimethylacetamide"
                "< 100 ppm"
                "Isobutyl Acetate"
                "< 50 ppm"
              ]
              [
                "Ethyl Ether"
                "< 100 ppm"
                "1-Pentanol"
                "< 100 ppm"
              ]
              [
                "Methyl Acetate"
                "< 100 ppm"
                "Butyl Acetate"
                "< 50 ppm"
              ]
              [
                "Tert-Butylmethyl Ether"
                "< 50 ppm"
                "Anisole"
                "< 50 ppm"
              ]
              [
                "Methylbutyl Ketone"
                "< 50 ppm"
                "N-Methylpyrrolidone"
                "< 50 ppm"
              ]
              [
                "Methylbutyl Ketone"
                "< 25 ppm"
                "Tetralin"
                "< 10 ppm"
              ]
              [
                "Methylisobutyl Ketone"
                "< 100 ppm"
                "Sulfolane"
                "< 10 ppm"
              ]
            ]
            "md" => """
              | Analyte                     | LoQ       | Analyte               | LoQ       |\n
              | --------------------------- | --------- | --------------------- | --------- |\n
              | (+/-)-2-Butanol             | < 10 ppm  | Ethyl Acetate         | < 50 ppm  |\n
              | 1,1-Dichloroethene          | < 5 ppm   | Ethyl benzene         | < 25 ppm  |\n
              | 1,2-Dichloroethane          | < 2 ppm   | Ethylene Glycol       | < 100 ppm |\n
              | 1,4-Dioxane                 | < 25 ppm  | Ethylene Oxide        | < 50 ppm  |\n
              | 2,2-Dimethylbutane          | < 25 ppm  | Heptane               | < 50 ppm  |\n
              | 2,3-Dimethylbutane          | < 25 ppm  | Hexane                | < 10 ppm  |\n
              | 2-Ethoxyethanol             | < 25 ppm  | Isobutane             | < 100 ppm |\n
              | 2-Methylbutane (Isopentane) | < 75 ppm  | Isopropyl acetate     | < 10 ppm  |\n
              | 2-Methylpentane             | < 25 ppm  | Methanol              | < 50 ppm  |\n
              | 2-Propanol                  | < 50 ppm  | Methylene Chloride    | < 50 ppm  |\n
              | 3-Methylpentane             | < 25 ppm  | N,N-Dimethylformamide | < 10 ppm  |\n
              | Acetone                     | < 50 ppm  | n-Butane              | < 100 ppm |\n
              | Acetonitrile                | < 50 ppm  | Neopentane            | < 100 ppm |\n
              | Benzene                     | < 1 ppm   | Pentane               | < 50 ppm  |\n
              | Chloroform                  | < 10 ppm  | Propane               | < 100 ppm |\n
              | Cumene                      | < 100 ppm | Tetrahydrofuran       | < 10 ppm  |\n
              | Cyclohexane                 | < 50 ppm  | Toluene               | < 50 ppm  |\n
              | Diethyl ether               | < 50 ppm  | Trichloroethene       | < 50 ppm  |\n
              | Ethanol                     | < 50 ppm  | Xylenes (p-, m-, o-)  | < 50 ppm  |\n
              | Nitromethane                | < 25 ppm  | 1-Propanol            | < 100 ppm |\n
              | 1,2-Dimethoxyethane         | < 10 ppm  | 2-Methyl-1-Propanol   | < 100 ppm |\n
              | Pyridine                    | < 10 ppm  | 1-Butanol             | < 50 ppm  |\n
              | 2-Methoxyethanol            | < 50 ppm  | Propyl Acetate        | < 50 ppm  |\n
              | Formamide                   | < 50 ppm  | 3-Methyl-1-Butanol    | < 100 ppm |\n
              | N,N-Dimethylacetamide       | < 100 ppm | Isobutyl Acetate      | < 50 ppm  |\n
              | Ethyl Ether                 | < 100 ppm | 1-Pentanol            | < 100 ppm |\n
              | Methyl Acetate              | < 100 ppm | Butyl Acetate         | < 50 ppm  |\n
              | Tert-Butylmethyl Ether      | < 50 ppm  | Anisole               | < 50 ppm  |\n
              | Methylbutyl Ketone          | < 50 ppm  | N-Methylpyrrolidone   | < 50 ppm  |\n
              | Methylbutyl Ketone          | < 25 ppm  | Tetralin              | < 10 ppm  |\n
              | Methylisobutyl Ketone       | < 100 ppm | Sulfolane             | < 10 ppm  |
              """
            "isPerfectTable" => true
            "csv" => """
              "Analyte","LoQ","Analyte","LoQ"\n
              "(+/-)-2-Butanol","< 10 ppm","Ethyl Acetate","< 50 ppm"\n
              "1,1-Dichloroethene","< 5 ppm","Ethyl benzene","< 25 ppm"\n
              "1,2-Dichloroethane","< 2 ppm","Ethylene Glycol","< 100 ppm"\n
              "1,4-Dioxane","< 25 ppm","Ethylene Oxide","< 50 ppm"\n
              "2,2-Dimethylbutane","< 25 ppm","Heptane","< 50 ppm"\n
              "2,3-Dimethylbutane","< 25 ppm","Hexane","< 10 ppm"\n
              "2-Ethoxyethanol","< 25 ppm","Isobutane","< 100 ppm"\n
              "2-Methylbutane (Isopentane)","< 75 ppm","Isopropyl acetate","< 10 ppm"\n
              "2-Methylpentane","< 25 ppm","Methanol","< 50 ppm"\n
              "2-Propanol","< 50 ppm","Methylene Chloride","< 50 ppm"\n
              "3-Methylpentane","< 25 ppm","N,N-Dimethylformamide","< 10 ppm"\n
              "Acetone","< 50 ppm","n-Butane","< 100 ppm"\n
              "Acetonitrile","< 50 ppm","Neopentane","< 100 ppm"\n
              "Benzene","< 1 ppm","Pentane","< 50 ppm"\n
              "Chloroform","< 10 ppm","Propane","< 100 ppm"\n
              "Cumene","< 100 ppm","Tetrahydrofuran","< 10 ppm"\n
              "Cyclohexane","< 50 ppm","Toluene","< 50 ppm"\n
              "Diethyl ether","< 50 ppm","Trichloroethene","< 50 ppm"\n
              "Ethanol","< 50 ppm","Xylenes (p-, m-, o-)","< 50 ppm"\n
              "Nitromethane","< 25 ppm","1-Propanol","< 100 ppm"\n
              "1,2-Dimethoxyethane","< 10 ppm","2-Methyl-1-Propanol","< 100 ppm"\n
              "Pyridine","< 10 ppm","1-Butanol","< 50 ppm"\n
              "2-Methoxyethanol","< 50 ppm","Propyl Acetate","< 50 ppm"\n
              "Formamide","< 50 ppm","3-Methyl-1-Butanol","< 100 ppm"\n
              "N,N-Dimethylacetamide","< 100 ppm","Isobutyl Acetate","< 50 ppm"\n
              "Ethyl Ether","< 100 ppm","1-Pentanol","< 100 ppm"\n
              "Methyl Acetate","< 100 ppm","Butyl Acetate","< 50 ppm"\n
              "Tert-Butylmethyl Ether","< 50 ppm","Anisole","< 50 ppm"\n
              "Methylbutyl Ketone","< 50 ppm","N-Methylpyrrolidone","< 50 ppm"\n
              "Methylbutyl Ketone","< 25 ppm","Tetralin","< 10 ppm"\n
              "Methylisobutyl Ketone","< 100 ppm","Sulfolane","< 10 ppm"
              """
          ]
        ]
        "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" => 0
      "job_auto_mode_triggered_pages" => 0
      "job_is_cache_hit" => true
    ]
  ]
  -labName: "Sample Testing Laboratories Inc."
  -sampleName: "Cannabis Product XYZ"
  -sampleMatrix: "Concentrated Oil"
  -internalPath: "/home/cbdextract/cbdextract.nw.agency/source/public/lab-reports/LabReportPage4.jpg"
  -productType: "cannabis"
  -aILogs: Doctrine\ORM\PersistentCollection {#964 …}
  -products: Doctrine\ORM\PersistentCollection {#1018 …}
}